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