Changes in src/tesselation.hpp [7dea7c:7c14ec]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/tesselation.hpp
r7dea7c r7c14ec 34 34 class PointCloud; 35 35 class Tesselation; 36 37 #define DoTecplotOutput 138 #define DoRaster3DOutput 139 #define DoVRMLOutput 140 #define TecplotSuffix ".dat"41 #define Raster3DSuffix ".r3d"42 #define VRMLSUffix ".wrl"43 36 44 37 // ======================================================= some template functions ========================================= … … 122 115 123 116 void GetNormalVector(Vector &NormalVector); 124 void GetCenter(Vector *center);125 117 bool GetIntersectionInsideTriangle(ofstream *out, Vector *MolCenter, Vector *x, Vector *Intersection); 126 118 bool ContainsBoundaryLine(class BoundaryLineSet *line); 127 119 bool ContainsBoundaryPoint(class BoundaryPointSet *point); 128 bool ContainsBoundaryPoint(class TesselPoint *point);129 120 class BoundaryPointSet *GetThirdEndpoint(class BoundaryLineSet *line); 130 121 bool IsPresentTupel(class BoundaryPointSet *Points[3]); 131 bool IsPresentTupel(class BoundaryTriangleSet *T);122 void GetCenter(Vector *center); 132 123 133 124 class BoundaryPointSet *endpoints[3]; … … 205 196 void AlwaysAddTesselationTriangleLine(class BoundaryPointSet *a, class BoundaryPointSet *b, int n); 206 197 void AddTesselationTriangle(); 207 void AddTesselationTriangle(int nr);208 198 void RemoveTesselationTriangle(class BoundaryTriangleSet *triangle); 209 199 void RemoveTesselationLine(class BoundaryLineSet *line); 210 200 void RemoveTesselationPoint(class BoundaryPointSet *point); 211 201 202 bool IsInside(Vector *pointer); 212 203 class BoundaryPointSet *GetCommonEndpoint(class BoundaryLineSet * line1, class BoundaryLineSet * line2); 213 204 214 205 // concave envelope 215 206 void FindStartingTriangle(ofstream *out, const double RADIUS, class LinkedCell *LC); 216 void FindSecondPointForTesselation(class TesselPoint* a, Vector Oben, class TesselPoint*& OptCandidate, double Storage[3], double RADIUS, class LinkedCell *LC);207 void FindSecondPointForTesselation(class TesselPoint* a, class TesselPoint* Candidate, Vector Oben, class TesselPoint*& OptCandidate, double Storage[3], double RADIUS, class LinkedCell *LC); 217 208 void FindThirdPointForTesselation(Vector NormalVector, Vector SearchDirection, Vector OldSphereCenter, class BoundaryLineSet *BaseLine, class TesselPoint *ThirdNode, CandidateList* &candidates, double *ShortestAngle, const double RADIUS, class LinkedCell *LC); 218 bool FindNextSuitableTriangle(ofstream *out, BoundaryLineSet &Line, BoundaryTriangleSet &T, const double& RADIUS, LinkedCell *LC);209 bool FindNextSuitableTriangle(ofstream *out, BoundaryLineSet &Line, BoundaryTriangleSet &T, const double& RADIUS, int N, LinkedCell *LC); 219 210 int CheckPresenceOfTriangle(ofstream *out, class TesselPoint *Candidates[3]); 220 class BoundaryTriangleSet * GetPresentTriangle(ofstream *out, TesselPoint *Candidates[3]);221 211 222 212 // convex envelope … … 225 215 bool InsertStraddlingPoints(ofstream *out, PointCloud *cloud, LinkedCell *LC); 226 216 double RemovePointFromTesselatedSurface(ofstream *out, class BoundaryPointSet *point); 227 class BoundaryLineSet *FlipBaseline(ofstream *out, class BoundaryLineSet *Base);228 doublePickFarthestofTwoBaselines(ofstream *out, class BoundaryLineSet *Base);217 bool FlipBaseline(ofstream *out, class BoundaryLineSet *Base); 218 bool PickFarthestofTwoBaselines(ofstream *out, class BoundaryLineSet *Base); 229 219 class BoundaryPointSet *IsConvexRectangle(ofstream *out, class BoundaryLineSet *Base); 230 map<int, int> * FindAllDegeneratedTriangles(); 231 map<int, int> * FindAllDegeneratedLines(); 220 map<int, int> FindAllDegeneratedTriangles(); 232 221 void RemoveDegeneratedTriangles(); 233 void AddBoundaryPointByDegeneratedTriangle(ofstream *out, class TesselPoint *point, LinkedCell *LC); 234 235 set<TesselPoint*> * GetAllConnectedPoints(ofstream *out, TesselPoint* Point); 236 set<BoundaryTriangleSet*> *GetAllTriangles(ofstream *out, class BoundaryPointSet *Point); 237 list<list<TesselPoint*> *> * GetPathsOfConnectedPoints(ofstream *out, TesselPoint* Point); 238 list<list<TesselPoint*> *> * GetClosedPathsOfConnectedPoints(ofstream *out, TesselPoint* Point); 239 list<TesselPoint*> * GetCircleOfConnectedPoints(ofstream *out, TesselPoint* Point, Vector *Reference = NULL); 222 223 list<TesselPoint*> * GetCircleOfConnectedPoints(ofstream *out, TesselPoint* Point); 224 list<TesselPoint*> * GetNeighboursOnCircleOfConnectedPoints(ofstream *out, list<TesselPoint*> *connectedPoints, TesselPoint* Point, Vector* Reference); 240 225 list<BoundaryTriangleSet*> *FindTriangles(TesselPoint* Points[3]); 241 226 list<BoundaryTriangleSet*> * FindClosestTrianglesToPoint(ofstream *out, Vector *x, LinkedCell* LC); … … 244 229 bool IsInnerPoint(ofstream *out, TesselPoint *Point, LinkedCell* LC); 245 230 bool AddBoundaryPoint(TesselPoint *Walker, int n); 246 247 // print for debugging248 void PrintAllBoundaryPoints(ofstream *out);249 void PrintAllBoundaryLines(ofstream *out);250 void PrintAllBoundaryTriangles(ofstream *out);251 252 // store envelope in file253 void Output(ofstream *out, const char *filename, PointCloud *cloud);254 231 255 232 PointMap PointsOnBoundary; … … 274 251 class BoundaryLineSet *BLS[3]; 275 252 class BoundaryTriangleSet *BTS; 276 class BoundaryTriangleSet *LastTriangle;277 int TriangleFilesWritten;278 253 279 254 private: … … 283 258 }; 284 259 260 bool CheckLineCriteriaForDegeneratedTriangle(class BoundaryPointSet *nodes[3]); 261 bool SortCandidates(class CandidateForTesselation* candidate1, class CandidateForTesselation* candidate2); 262 TesselPoint* FindClosestPoint(const Vector* Point, TesselPoint *&SecondPoint, LinkedCell* LC); 263 TesselPoint* FindSecondClosestPoint(const Vector*, LinkedCell*); 264 double GetAngle(const Vector &point, const Vector &reference, const Vector OrthogonalVector); 265 Vector * GetClosestPointBetweenLine(ofstream *out, class BoundaryLineSet *Base, class BoundaryLineSet *OtherBase); 285 266 286 267 #endif /* TESSELATION_HPP_ */
Note:
See TracChangeset
for help on using the changeset viewer.