Geom Software - C++ Programming and Geometry Libraries
WOF Documentation pages v1.16
wof_api_functions.h
Go to the documentation of this file.
1 // Copyright (C) Geom Software e.U, Bernhard Kornberger, Graz/Austria
2 //
3 // This file is part of the WOF software. WOF is commercial software.
4 // Users holding a license may use this file in accordance with the
5 // License Agreement.
6 //
7 // This software is provided AS IS with NO WARRANTY OF ANY KIND,
8 // INCLUDING THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS
9 // FOR A PARTICULAR PURPOSE.
10 //
11 // Please contact the author if any conditions of this licensing are
12 // not clear to you.
13 //
14 // Author: Bernhard Kornberger, bkorn (at) geom.at
15 // http://www.geom.at
17 #pragma once
18 
19 #include <vector>
20 #include <float.h>
21 #include "Point3.h"
22 #include "Mesh.h"
23 
24 namespace GEOM_WOF {
25 
26 struct Dat; // FWD
27 
55 CLASS_DECLSPEC
56 MeshPtr melt( std::vector<Point3>& vInputCorners,
57  double avgLength,
58  double featureThresh=15.0
59  );
60 
61 
81 CLASS_DECLSPEC
82 MeshPtr reconstruct_auto(std::vector<Point3>& vPoints,double sfactor=2.0,int numGrowSteps=10);
83 
104 CLASS_DECLSPEC
105 MeshPtr reconstruct_abs(std::vector<Point3>& vPoints,double spacingAbs,int numGrowSteps=10);
106 
107 
119 CLASS_DECLSPEC
120 void toCloud( std::vector<Point3>& vCornersIn,
121  double length,
122  double featureThresh,
123  std::vector<Point3>& vCloudOut
124  );
125 
126 
127 
137 CLASS_DECLSPEC
138 void edgeFlips(MeshPtr pMesh);
139 
151 CLASS_DECLSPEC
152 void edgeFlipsSimA(MeshPtr pMesh);
153 
164 CLASS_DECLSPEC
165 void laplacianSmoothing(MeshPtr pMesh,int numIterations);
166 
178 CLASS_DECLSPEC
179 int reduce(MeshPtr pMesh,double targetLen=DBL_MAX,double maxDev=2.0);
180 
184 CLASS_DECLSPEC
185 void findHoles(MeshPtr pMesh);
186 
193 CLASS_DECLSPEC
194 double estimateAvgSpacing(std::vector<Point3>& vPoints);
195 
209 CLASS_DECLSPEC
210 void autoOffset(std::vector<Point3>& vPoints,double& xoff,double& yoff,double& zoff);
211 
212 
219 CLASS_DECLSPEC
220 void subscribe(ProgressBase* pProgressBase);
221 
222 
223 
226 CLASS_DECLSPEC
227 void setLic(
228  const char* l1,
229  const char* l2,
230  const char* dt,
231  const char* s1,
232  const char* s2_,
233  bool bOverride=false
234  );
235 
238 CLASS_DECLSPEC
239 void destroySingletons();
240 
241 } // NAMESPACE
242 
243 
Base class for progress subscribers.
Definition: wof_api_definitions.h:107
void laplacianSmoothing(MeshPtr pMesh, int numIterations)
Laplacian smoothing.
void edgeFlipsSimA(MeshPtr pMesh)
Flip edges - simulated annealing.
int reduce(MeshPtr pMesh, double targetLen=DBL_MAX, double maxDev=2.0)
Reduce.
MeshPtr melt(std::vector< Point3 > &vInputCorners, double avgLength, double featureThresh=15.0)
Remesh (melt) a triangle mesh.
MeshPtr reconstruct_abs(std::vector< Point3 > &vPoints, double spacingAbs, int numGrowSteps=10)
Reconstruct with an absolute spacing value.
void edgeFlips(MeshPtr pMesh)
Flip edges.
MeshPtr reconstruct_auto(std::vector< Point3 > &vPoints, double sfactor=2.0, int numGrowSteps=10)
Reconstruct with an automatic spacing value.
void toCloud(std::vector< Point3 > &vCornersIn, double length, double featureThresh, std::vector< Point3 > &vCloudOut)
Mesh-to-Cloud.
Definition: Point3.h:23
void subscribe(ProgressBase *pProgressBase)
Subscribe to progress updates.
void autoOffset(std::vector< Point3 > &vPoints, double &xoff, double &yoff, double &zoff)
Automatic offset.
std::shared_ptr< Mesh > MeshPtr
Definition: Mesh.h:27