Projection.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef MESH_PROJECTION_H
00025 #define MESH_PROJECTION_H
00026
00027 #include <vector>
00028
00029 #include <Base/Vector3D.h>
00030 #ifdef FC_USE_OCC
00031 using Base::Vector3f;
00032
00033 class TopoDS_Edge;
00034 class TopoDS_Shape;
00035
00036 namespace MeshCore
00037 {
00038
00039 class MeshFacetGrid;
00040 class MeshKernel;
00041 class MeshGeomFacet;
00042
00044 struct SplitEdge
00045 {
00046 unsigned long uE0, uE1;
00047 Base::Vector3f cPt;
00048 };
00049
00054 class MeshExport MeshProjection
00055 {
00056 public:
00058 MeshProjection( const MeshKernel& rMesh);
00060 ~MeshProjection();
00061
00067 void projectToMesh ( const TopoDS_Shape &aShape, float fMaxDist, std::vector<SplitEdge>& rSplitEdges ) const;
00072 void splitMeshByShape ( const TopoDS_Shape &aShape, float fMaxDist ) const;
00073
00074 protected:
00075 void projectEdgeToEdge( const TopoDS_Edge &aCurve, float fMaxDist, const MeshFacetGrid& rGrid,
00076 std::vector<SplitEdge>& rSplitEdges ) const;
00077
00078 private:
00079 const MeshKernel& _rcMesh;
00080 };
00081
00082 }
00083 #endif
00084
00085 #endif // MESH_PROJECTION_H