Geom Software - C++ Programming and Geometry Libraries
WOF Documentation pages v1.11
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 
78 CLASS_DECLSPEC
79 MeshPtr reconstruct_auto(std::vector<Point3>& vPoints,bool bAllowSmoothing,double sfactor=2.0);
80 
99 CLASS_DECLSPEC
100 MeshPtr reconstruct_abs(std::vector<Point3>& vPoints,bool bAllowSmoothing,double spacingAbs);
101 
102 
114 CLASS_DECLSPEC
115 void toCloud( std::vector<Point3>& vCornersIn,
116  double length,
117  double featureThresh,
118  std::vector<Point3>& vCloudOut
119  );
120 
121 
122 
132 CLASS_DECLSPEC
133 void edgeFlips(MeshPtr pMesh);
134 
146 CLASS_DECLSPEC
147 void edgeFlipsSimA(MeshPtr pMesh);
148 
159 CLASS_DECLSPEC
160 void laplacianSmoothing(MeshPtr pMesh,int numIterations);
161 
173 CLASS_DECLSPEC
174 int reduce(MeshPtr pMesh,double targetLen=DBL_MAX,double maxDev=2.0);
175 
179 CLASS_DECLSPEC
180 void findHoles(MeshPtr pMesh);
181 
188 CLASS_DECLSPEC
189 double estimateAvgSpacing(std::vector<Point3>& vPoints);
190 
200 CLASS_DECLSPEC
201 void subscribe(ProgressBase* pProgressBase);
202 
203 
204 
207 CLASS_DECLSPEC
208 void setLic(
209  const char* l1,
210  const char* l2,
211  const char* dt,
212  const char* s1,
213  const char* s2_
214  );
215 
216 
217 } // NAMESPACE
218 
219 
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 reconstruct_abs(std::vector< Point3 > &vPoints, bool bAllowSmoothing, double spacingAbs)
Reconstruct with an absolute spacing value.
MeshPtr melt(std::vector< Point3 > &vInputCorners, double avgLength, double featureThresh=15.0)
Remesh (melt) a triangle mesh.
MeshPtr reconstruct_auto(std::vector< Point3 > &vPoints, bool bAllowSmoothing, double sfactor=2.0)
Reconstruct with an automatic spacing value.
void edgeFlips(MeshPtr pMesh)
Flip edges.
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.
std::shared_ptr< Mesh > MeshPtr
Definition: Mesh.h:27