00001 
00002 #ifndef  __JBXL_TRI_BREP_H_
00003 #define  __JBXL_TRI_BREP_H_
00004 
00005 
00016 #include "STL.h"
00017 
00018 
00019 namespace jbxl {
00020 
00021 
00022 DllExport BREP_CONTOUR* CreateContourByVector(BREP_FACET* facet, Vector<double>* vect, Vector<double>* nrml=NULL, UVMap<double>* uv=NULL, bool dupli=false);
00023 DllExport BREP_CONTOUR* CreateContourByVertex(BREP_FACET* facet, BREP_VERTEX** vect);
00024 
00025 DllExport void   CreateContoursList(BREP_SOLID* solid);
00026 DllExport void   CreateWingsList(BREP_SOLID* solid);
00027 DllExport void   CreateSurplusContoursList(BREP_SOLID* solid);
00028 DllExport void   CreateShortageWingsList(BREP_SOLID* solid);
00029 
00030 DllExport void   DeleteSurplusContours(BREP_SOLID* solid);
00031 DllExport void   DeleteStraightEdges(BREP_SOLID* solid);
00032 DllExport void   DeleteShortageWings(BREP_SOLID* solid) ;
00033 
00034 DllExport void   FillShortageWings(BREP_SOLID* solid, int method, bool mode);
00035 DllExport int    FillShortageWings_Next(BREP_SOLID* solid, bool mode);
00036 DllExport int    FillShortageWings_Near(BREP_SOLID* solid, bool mode);
00037 DllExport bool   PatchupContour(BREP_SHELL* shell, BREP_VERTEX** vert, bool mode);
00038 
00039 DllExport void   JoinShortageWings(BREP_SOLID* solid);
00040 
00041 DllExport void   SetMinVertex(BREP_VERTEX_LIST* list, BREP_VERTEX* vrtx);
00042 DllExport bool   IsIncludeCompleteEdge(BREP_WING* wing);
00043 DllExport BREP_VERTEX*  FindConnectEdgeVertex(BREP_VERTEX* vert);
00044 
00045 DllExport int    DupEdgeNumber(BREP_CONTOUR* contour);
00046 DllExport void   ReverseContours(BREP_SOLID* solid);
00047 DllExport void   SetDeletableContoursByEdge(BREP_EDGE* edge);
00048 DllExport void   FastDeleteFacet(BREP_FACET* facet);
00049 
00050 DllExport int    IsAtLine(BREP_VERTEX** v);
00051 DllExport bool   IsForbiddenEdge(BREP_VERTEX** vert);
00052 
00053 DllExport bool   IsCollisionContours(BREP_SOLID* solid, BREP_CONTOUR* contour, BREP_CONTOUR** collision);
00054 DllExport bool   CollisionTriContour3D(BREP_CONTOUR* contour1, BREP_CONTOUR* contour2);
00055 DllExport bool   CollisionTriContour2D(BREP_CONTOUR* contour1, BREP_CONTOUR* contour2);
00056 DllExport bool   IsInTriangle(BREP_CONTOUR* contour1, BREP_CONTOUR* contour2);
00057 
00058 DllExport int    CommonVertex(BREP_CONTOUR* contour1, BREP_CONTOUR* contour2);
00059 DllExport bool   SamePlaneContour(BREP_CONTOUR* contour1, BREP_CONTOUR* contour2, int& lineno);
00060 
00061 DllExport int    CreateTriSolidFromSTL(BREP_SOLID* solid, STLData* stldata, int fno, bool check=true);
00062 DllExport int    CreateTriSolidFromVector(BREP_SOLID* solid, int vno, Vector<double>* v, Vector<double>* n=NULL, UVMap<double>* uv=NULL, bool dupli=false, bool check=true);
00063 
00064 DllExport void   AddVector2TriSolid(BREP_SOLID* solid, BREP_SHELL* shell, Vector<double>* v, Vector<double>* n=NULL, UVMap<double>* uv=NULL, bool dupli=false);
00065 DllExport int    CloseTriSolid(BREP_SOLID* solid, bool check=true, CVCounter* counter=NULL);
00066 
00067 DllExport bool   IsConnectEdges(BREP_WING* wing1, BREP_WING* wing2);
00068 
00069 
00070 }       
00071 
00072 
00073 #endif
00074