Geom Software - C++ Programming and Geometry Libraries
WOF Documentation pages v1.17
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,int numGrowSteps);
83 
106 CLASS_DECLSPEC
107 MeshPtr reconstruct_abs(std::vector<Point3>& vPoints,double spacingAbs,int numGrowSteps);
108 
109 
121 CLASS_DECLSPEC
122 void toCloud( std::vector<Point3>& vCornersIn,
123  double length,
124  double featureThresh,
125  std::vector<Point3>& vCloudOut
126  );
127 
128 
129 
139 CLASS_DECLSPEC
140 void edgeFlips(MeshPtr pMesh);
141 
153 CLASS_DECLSPEC
154 void edgeFlipsSimA(MeshPtr pMesh);
155 
166 CLASS_DECLSPEC
167 void laplacianSmoothing(MeshPtr pMesh,int numIterations);
168 
180 CLASS_DECLSPEC
181 int reduce(MeshPtr pMesh,double targetLen=DBL_MAX,double maxDev=2.0);
182 
186 CLASS_DECLSPEC
187 void findHoles(MeshPtr pMesh);
188 
195 CLASS_DECLSPEC
196 double estimateAvgSpacing(std::vector<Point3>& vPoints);
197 
211 CLASS_DECLSPEC
212 void autoOffset(std::vector<Point3>& vPoints,double& xoff,double& yoff,double& zoff);
213 
214 
221 CLASS_DECLSPEC
222 void subscribe(ProgressBase* pProgressBase);
223 
224 
231 CLASS_DECLSPEC
232 void setGlobalNumCPU(int numCPU);
233 
239 
240 
241 
244 CLASS_DECLSPEC
245 void setLic(
246  const char* l1,
247  const char* l2,
248  const char* dt,
249  const char* s1,
250  const char* s2_,
251  bool bOverride=false
252  );
253 
256 CLASS_DECLSPEC
257 void destroySingletons();
258 
259 } // NAMESPACE
260 
261 
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_auto(std::vector< Point3 > &vPoints, double sfactor, int numGrowSteps)
Reconstruct with an automatic spacing value.
void edgeFlips(MeshPtr pMesh)
Flip edges.
MeshPtr reconstruct_abs(std::vector< Point3 > &vPoints, double spacingAbs, int numGrowSteps)
Reconstruct with an absolute spacing value.
void toCloud(std::vector< Point3 > &vCornersIn, double length, double featureThresh, std::vector< Point3 > &vCloudOut)
Mesh-to-Cloud.
Definition: Point3.h:23
int getGlobalNumCPU()
getGlobalNumCPU
void setGlobalNumCPU(int numCPU)
setGlobalNumCPU
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