Path: blob/devel/ElmerGUI/netgen/libsrc/csg/edgeflw.hpp
3206 views
#ifndef FILE_EDGEFLW1#define FILE_EDGEFLW23/**************************************************************************/4/* File: edgeflw.hh */5/* Author: Joachim Schoeberl */6/* Date: 01. Okt. 95 */7/**************************************************************************/89/*1011Edge - following function and12Projection to edge of implicitly given edge1314*/151617/**18Calculates edges.19The edges of a solid geometry are computed. Special20points have to be given.21*/22extern void CalcEdges (const CSGeometry & geometry,23const ARRAY<SpecialPoint> & specpoints,24double h, Mesh & mesh);252627282930class EdgeCalculation31{32const CSGeometry & geometry;33ARRAY<SpecialPoint> & specpoints;34Point3dTree * searchtree;35Point3dTree * meshpoint_tree;36int cntedge;3738double ideps;3940public:41EdgeCalculation (const CSGeometry & ageometry,42ARRAY<SpecialPoint> & aspecpoints);4344~EdgeCalculation();4546void SetIdEps(const double epsin) {ideps = epsin;}4748void Calc(double h, Mesh & mesh);495051private:52void CalcEdges1 (double h, Mesh & mesh);535455void FollowEdge (int pi1, int & ep, int & pos,56// const ARRAY<SpecialPoint> & hsp,57const ARRAY<int> & hsp,58double h, const Mesh & mesh,59ARRAY<Point<3> > & edgepoints,60ARRAY<double> & curvelength);616263void AnalyzeEdge (int s1, int s2, int s1_rep, int s2_rep, int pos, int layer,64const ARRAY<Point<3> > & edgepoints,65ARRAY<Segment> & refedges,66ARRAY<bool> & refedgesinv);6768void StoreEdge (const ARRAY<Segment> & refedges,69const ARRAY<bool> & refedgesinv,70const ARRAY<Point<3> > & edgepoints,71const ARRAY<double> & curvelength,72int layer,73Mesh & mesh);7475void StoreShortEdge (const ARRAY<Segment> & refedges,76const ARRAY<bool> & refedgesinv,77const ARRAY<Point<3> > & edgepoints,78const ARRAY<double> & curvelength,79int layer,80Mesh & mesh);8182void CopyEdge (const ARRAY<Segment> & refedges,83const ARRAY<bool> & refedgesinv,84int copyfromedge,85const Point<3> & fromstart, const Point<3> & fromend,86const Point<3> & tostart, const Point<3> & toend,87int copyedgeidentification,88int layer,89Mesh & mesh);909192void SplitEqualOneSegEdges (Mesh & mesh);93void FindClosedSurfaces (double h, Mesh & mesh);949596public:97bool point_on_edge_problem;9899};100101102103#endif104105106