MeshAlgos.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 _MeshAlgos_h_
00025 #define _MeshAlgos_h_
00026
00027 #ifdef FC_USE_GTS
00028 # include <gts.h>
00029 #endif
00030
00031 #include <vector>
00032
00033 #include <Base/Vector3D.h>
00034
00035 #include "CurveProjector.h"
00036
00037 class TopoDS_Edge;
00038 class TopoDS_Shape;
00039
00040 namespace MeshCore
00041 {
00042 class MeshKernel;
00043 };
00044
00045 using MeshCore::MeshKernel;
00046
00047 namespace MeshPart
00048 {
00049
00052 class MeshPartExport MeshAlgos
00053 {
00054 public:
00057 static void offset(MeshCore::MeshKernel* Mesh, float fSize);
00058 static void offsetSpecial2(MeshCore::MeshKernel* Mesh, float fSize);
00059 static void offsetSpecial(MeshCore::MeshKernel* Mesh, float fSize, float zmax, float zmin);
00060
00063 static void coarsen(MeshCore::MeshKernel* Mesh, float f);
00064
00068 static MeshCore::MeshKernel* boolean(MeshCore::MeshKernel* Mesh1, MeshCore::MeshKernel* Mesh2, MeshCore::MeshKernel* pResult, int Type=0);
00069
00070 #ifdef FC_USE_GTS
00071
00074 static GtsSurface* createGTSSurface(MeshCore::MeshKernel* Mesh);
00075
00079 static void fillMeshFromGTSSurface(MeshCore::MeshKernel* pMesh, GtsSurface* pSurface);
00080 #endif
00081
00082 static void cutByShape(const TopoDS_Shape &aShape,const MeshCore::MeshKernel* pMesh,MeshCore::MeshKernel* pToolMesh);
00083
00085 static void GetSampledCurves( const TopoDS_Edge& aEdge, std::vector<Base::Vector3f>& rclPoints, unsigned long ulNbOfPoints = 30);
00086
00088 static void LoftOnCurve(MeshCore::MeshKernel &ResultMesh,const TopoDS_Shape &Shape, const std::vector<Base::Vector3f> &poly,
00089 const Base::Vector3f & up = Base::Vector3f(0,0,1), float MaxSize = 0.1);
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101
00102
00103 static void cutByCurve(MeshCore::MeshKernel* pMesh,const std::vector<CurveProjector::FaceSplitEdge> &vSplitEdges);
00104
00105
00106
00107
00108 };
00109
00110 }
00111
00112 #endif