Path: blob/devel/ElmerGUI/netgen/libsrc/stlgeom/meshstlsurface.hpp
3206 views
#ifndef FILE_MESHSTLSURF1#define FILE_MESHSTLSURF23/* *************************************************************************/4/* File: meshstlsurf.hpp */5/* Author: Johannes Gerstmayr, Joachim Schoeberl */6/* Date: 01. Aug. 99 */7/* *************************************************************************/89/*1011The interface between mesh generation and stl geometry1213*/141516///17class MeshingSTLSurface : public Meshing218{19///20STLGeometry & geom;21///22int transformationtrig;23public:24///25MeshingSTLSurface (STLGeometry & ageom);2627protected:28///29virtual void DefineTransformation (const Point3d & p1, const Point3d & p2,30const PointGeomInfo * geominfo1,31const PointGeomInfo * geominfo2);32///33virtual void TransformToPlain (const Point3d & locpoint, const MultiPointGeomInfo & geominfo,34Point2d & plainpoint, double h, int & zone);35///36virtual int TransformFromPlain (Point2d & plainpoint,37Point3d & locpoint,38PointGeomInfo & gi,39double h);40///41virtual int BelongsToActiveChart (const Point3d & p,42const PointGeomInfo & gi);4344///45virtual int ComputePointGeomInfo (const Point3d & p, PointGeomInfo & gi);46///47virtual int ChooseChartPointGeomInfo (const MultiPointGeomInfo & mpgi,48PointGeomInfo & pgi);4950///51virtual int IsLineVertexOnChart (const Point3d & p1, const Point3d & p2,52int endpoint, const PointGeomInfo & gi);5354virtual void GetChartBoundary (ARRAY<Point2d > & points,55ARRAY<Point3d > & poitns3d,56ARRAY<INDEX_2> & lines, double h) const;5758///59virtual double CalcLocalH (const Point3d & p, double gh) const;6061///62virtual double Area () const;63};64656667///68class MeshOptimizeSTLSurface : public MeshOptimize2d69{70///71STLGeometry & geom;7273public:74///75MeshOptimizeSTLSurface (STLGeometry & ageom);7677///78virtual void SelectSurfaceOfPoint (const Point<3> & p,79const PointGeomInfo & gi);80///81virtual void ProjectPoint (INDEX surfind, Point<3> & p) const;82///83virtual void ProjectPoint2 (INDEX surfind, INDEX surfind2, Point<3> & p) const;84///85virtual int CalcPointGeomInfo(PointGeomInfo& gi, const Point<3> & p3) const;86///87virtual void GetNormalVector(INDEX surfind, const Point<3> & p, Vec<3> & n) const;88};8990919293class RefinementSTLGeometry : public Refinement94{95const STLGeometry & geom;9697public:98RefinementSTLGeometry (const STLGeometry & ageom);99virtual ~RefinementSTLGeometry ();100101virtual void PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,102int surfi,103const PointGeomInfo & gi1,104const PointGeomInfo & gi2,105Point<3> & newp, PointGeomInfo & newgi);106107virtual void PointBetween (const Point<3> & p1, const Point<3> & p2, double secpoint,108int surfi1, int surfi2,109const EdgePointGeomInfo & ap1,110const EdgePointGeomInfo & ap2,111Point<3> & newp, EdgePointGeomInfo & newgi);112113virtual void ProjectToSurface (Point<3> & p, int surfi);114virtual void ProjectToSurface (Point<3> & p, int surfi, PointGeomInfo & gi);115};116117118119#endif120121122123