Geom Software - C++ Programming and Geometry Libraries
WOF Documentation pages v1.12
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 
83 CLASS_DECLSPEC
84 MeshPtr reconstruct_auto(std::vector<Point3>& vPoints,bool bAllowSmoothing,double sfactor=2.0,int numGrowSteps=10);
85 
108 CLASS_DECLSPEC
109 MeshPtr reconstruct_abs(std::vector<Point3>& vPoints,bool bAllowSmoothing,double spacingAbs,int numGrowSteps=10);
110 
111 
123 CLASS_DECLSPEC
124 void toCloud( std::vector<Point3>& vCornersIn,
125  double length,
126  double featureThresh,
127  std::vector<Point3>& vCloudOut
128  );
129 
130 
131 
141 CLASS_DECLSPEC
142 void edgeFlips(MeshPtr pMesh);
143 
155 CLASS_DECLSPEC
156 void edgeFlipsSimA(MeshPtr pMesh);
157 
168 CLASS_DECLSPEC
169 void laplacianSmoothing(MeshPtr pMesh,int numIterations);
170 
182 CLASS_DECLSPEC
183 int reduce(MeshPtr pMesh,double targetLen=DBL_MAX,double maxDev=2.0);
184 
188 CLASS_DECLSPEC
189 void findHoles(MeshPtr pMesh);
190 
197 CLASS_DECLSPEC
198 double estimateAvgSpacing(std::vector<Point3>& vPoints);
199 
209 CLASS_DECLSPEC
210 void subscribe(ProgressBase* pProgressBase);
211 
212 
213 
216 CLASS_DECLSPEC
217 void setLic(
218  const char* l1,
219  const char* l2,
220  const char* dt,
221  const char* s1,
222  const char* s2_
223  );
224 
225 
226 } // NAMESPACE
227 
228 
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.
MeshPtr reconstruct_abs(std::vector< Point3 > &vPoints, bool bAllowSmoothing, double spacingAbs, int numGrowSteps=10)
Reconstruct with an absolute spacing value.
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.
void edgeFlips(MeshPtr pMesh)
Flip edges.
void toCloud(std::vector< Point3 > &vCornersIn, double length, double featureThresh, std::vector< Point3 > &vCloudOut)
Mesh-to-Cloud.
MeshPtr reconstruct_auto(std::vector< Point3 > &vPoints, bool bAllowSmoothing, double sfactor=2.0, int numGrowSteps=10)
Reconstruct with an automatic spacing value.
Definition: Point3.h:23
void subscribe(ProgressBase *pProgressBase)
Subscribe to progress updates.
std::shared_ptr< Mesh > MeshPtr
Definition: Mesh.h:27