MeVisLabToolboxReference
MeVisLab/Standard/Sources/ML/MLWEM/WEMTools/WEMFaceOp/WEMFaceOp.h
Go to the documentation of this file.
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