MeVisLabToolboxReference
|
00001 // **InsertLicense** code 00002 //---------------------------------------------------------------------------------- 00004 00011 #ifndef __WEMFaceOp_H 00012 #define __WEMFaceOp_H 00013 00014 #include "WEMTools/WEMToolsIncludes.h" 00015 #include "WEMTools/WEMCutOp/WEMCutOp.h" 00016 #include "WEMBase/WEMIndexedFace.h" 00017 00018 ML_START_NAMESPACE 00019 00021 00023 namespace WEMFaceOp 00024 { 00026 MLWEM_EXPORT void cutFace(WEMFace *face, 00027 WEMVector<WEMFaceCut> *faceCuts, 00028 WEMPatch *wemPatch, 00029 WEMVector<WEMIndexedFace> *cutFaces, 00030 bool traversedTrue, 00031 WEMNode **nodeTable, 00032 WEMVector<WEMNode> **edgeTable1, 00033 int *hitEdgeTable1, 00034 WEMVector<WEMNode> **edgeTable2, 00035 int *hitEdgeTable2, 00036 unsigned int intersectingFlag); 00037 00039 MLWEM_EXPORT void cutFace(WEMFace *face, 00040 WEMVector<WEMFaceCut> *faceCuts, 00041 WEMPatch *wemPatch, 00042 WEMVector<WEMIndexedFace> *cutFaces, 00043 bool traversedTrue, 00044 WEMNode **nodeTable, 00045 WEMVector<WEMNode> **edgeTable, 00046 int *hitEdgeTable, 00047 unsigned int intersectingFlag); 00048 00050 MLWEM_EXPORT void smoothFaceNormals(WEMPatch* wemPatch, unsigned int numSmoothingPasses, ProgressField* progressFld=NULL); 00051 00053 MLWEM_EXPORT bool intersectFaces(WEMFace *face1, WEMVector<WEMPartialFaceCut> *partialCuts1, 00054 WEMFace *face2, WEMVector<WEMPartialFaceCut> *partialCuts2); 00055 00056 00057 // Methods below are not exported to simulate their former private status 00058 00060 void _addFaceCut(WEMFace *face, 00061 WEMFaceCut *faceCut, 00062 WEMIndexedFace *nFace, 00063 WEMPatch *wemPatch, 00064 bool reverse, 00065 WEMVector<WEMNode> **edgeTable1, 00066 int *hitEdgeTable1, 00067 WEMVector<WEMNode> **edgeTable2, 00068 int *hitEdgeTable2); 00069 00071 void _addFaceCut(WEMFace *face, 00072 WEMFaceCut *faceCut, 00073 WEMIndexedFace *nFace, 00074 WEMPatch *wemPatch, 00075 bool reverse, 00076 WEMVector<WEMNode> **edgeTable, 00077 int *hitEdgeTable); 00078 00080 void _addStab(WEMFace *face, 00081 WEMFaceCut *faceCut, 00082 WEMIndexedFace *nFace, 00083 WEMPatch *wemPatch, 00084 WEMVector<WEMNode> **edgeTable2, 00085 int *hitEdgeTable2); 00086 00088 void _addStab(WEMFace *face, 00089 WEMFaceCut *faceCut, 00090 WEMIndexedFace *nFace, 00091 WEMPatch *wemPatch); 00092 00094 void _addPartialStab(WEMFace *face, 00095 WEMFaceCut *faceCut, 00096 int start, 00097 int end, 00098 WEMIndexedFace *nFace, 00099 WEMPatch *wemPatch, 00100 WEMVector<WEMNode> **edgeTable2, 00101 int *hitEdgeTable2); 00102 00104 void _addPartialStab(WEMFace *face, 00105 WEMFaceCut *faceCut, 00106 int start, 00107 int end, 00108 WEMIndexedFace *nFace, 00109 WEMPatch *wemPatch); 00110 00111 }; 00112 00114 00115 ML_END_NAMESPACE 00116 00117 #endif // __WEMFaceOp_H