MeVisLab Toolbox Reference
WEMFaceOp.h
Go to the documentation of this file.
1 /*************************************************************************************
2 **
3 ** Copyright 2007, MeVis Medical Solutions AG
4 **
5 ** The user may use this file in accordance with the license agreement provided with
6 ** the Software or, alternatively, in accordance with the terms contained in a
7 ** written agreement between the user and MeVis Medical Solutions AG.
8 **
9 ** For further information use the contact form at https://www.mevislab.de/contact
10 **
11 **************************************************************************************/
12 
13 #pragma once
14 
17 #include "WEMBase/WEMIndexedFace.h"
18 
19 ML_START_NAMESPACE
20 
22 
24 namespace WEMFaceOp
25 {
29  WEMVector<WEMFaceCut> *faceCuts,
30  WEMPatch *wemPatch,
31  WEMVector<WEMIndexedFace> *cutFaces,
32  bool traversedTrue,
33  WEMNode **nodeTable,
34  WEMVector<WEMNode> **edgeTable1,
35  int *hitEdgeTable1,
36  WEMVector<WEMNode> **edgeTable2,
37  int *hitEdgeTable2,
38  unsigned int intersectingFlag);
39 
43  WEMVector<WEMFaceCut> *faceCuts,
44  WEMPatch *wemPatch,
45  WEMVector<WEMIndexedFace> *cutFaces,
46  bool traversedTrue,
47  WEMNode **nodeTable,
48  WEMVector<WEMNode> **edgeTable,
49  int *hitEdgeTable,
50  unsigned int intersectingFlag);
51 
53  MLWEM_EXPORT void smoothFaceNormals(WEMPatch* wemPatch, unsigned int numSmoothingPasses, ProgressField* progressFld=nullptr);
54 
57  WEMFace *face2, WEMVector<WEMPartialFaceCut> *partialCuts2);
58 
59 
60  // Methods below are not exported to simulate their former private status
61 
63  void _addFaceCut(WEMFace *face,
64  WEMFaceCut *faceCut,
65  WEMIndexedFace *nFace,
66  WEMPatch *wemPatch,
67  bool reverse,
68  WEMVector<WEMNode> **edgeTable1,
69  int *hitEdgeTable1,
70  WEMVector<WEMNode> **edgeTable2,
71  int *hitEdgeTable2);
72 
74  void _addFaceCut(WEMFace *face,
75  WEMFaceCut *faceCut,
76  WEMIndexedFace *nFace,
77  WEMPatch *wemPatch,
78  bool reverse,
79  WEMVector<WEMNode> **edgeTable,
80  int *hitEdgeTable);
81 
83  void _addStab(WEMFace *face,
84  WEMFaceCut *faceCut,
85  WEMIndexedFace *nFace,
86  WEMPatch *wemPatch,
87  WEMVector<WEMNode> **edgeTable2,
88  int *hitEdgeTable2);
89 
91  void _addStab(WEMFace *face,
92  WEMFaceCut *faceCut,
93  WEMIndexedFace *nFace,
94  WEMPatch *wemPatch);
95 
98  WEMFaceCut *faceCut,
99  int start,
100  int end,
101  WEMIndexedFace *nFace,
102  WEMPatch *wemPatch,
103  WEMVector<WEMNode> **edgeTable2,
104  int *hitEdgeTable2);
105 
108  WEMFaceCut *faceCut,
109  int start,
110  int end,
111  WEMIndexedFace *nFace,
112  WEMPatch *wemPatch);
113 };
114 
116 
117 ML_END_NAMESPACE
#define MLWEM_EXPORT
Definition: MLWEMSystem.h:18
Field to encapsulate an increasing float value from range [0,1].
Definition: mlFields.h:744
Helper class for performing a cutting on a face.
Definition: WEMFaceCut.h:31
Defines the mesh component: face.
Definition: WEMFace.h:30
Defines the mesh component: an face holding a list of up to 100 indices.
Defines the mesh component: node.
Definition: WEMNode.h:33
Base class for triangle and quad patches.
Definition: WEMPatch.h:48
Dynamic templated vector.
Definition: WEMVector.h:28
void _addFaceCut(WEMFace *face, WEMFaceCut *faceCut, WEMIndexedFace *nFace, WEMPatch *wemPatch, bool reverse, WEMVector< WEMNode > **edgeTable, int *hitEdgeTable)
Adds the given face cut to nFace (selectRegion version).
MLWEM_EXPORT bool cutFace(WEMFace *face, WEMVector< WEMFaceCut > *faceCuts, WEMPatch *wemPatch, WEMVector< WEMIndexedFace > *cutFaces, bool traversedTrue, WEMNode **nodeTable, WEMVector< WEMNode > **edgeTable, int *hitEdgeTable, unsigned int intersectingFlag)
Applies the given cuts to the given face (selectRegion version).
void _addStab(WEMFace *face, WEMFaceCut *faceCut, WEMIndexedFace *nFace, WEMPatch *wemPatch)
Adds the given face cut (stab) to nFace (selectRegion version).
MLWEM_EXPORT bool intersectFaces(WEMFace *face1, WEMVector< WEMPartialFaceCut > *partialCuts1, WEMFace *face2, WEMVector< WEMPartialFaceCut > *partialCuts2)
Intersects the two given faces and outputs the partial cuts to the given lists.
void _addPartialStab(WEMFace *face, WEMFaceCut *faceCut, int start, int end, WEMIndexedFace *nFace, WEMPatch *wemPatch)
Adds the given face cut (stab) to nFace, partially between given indices (selectRegion version).
MLWEM_EXPORT void smoothFaceNormals(WEMPatch *wemPatch, unsigned int numSmoothingPasses, ProgressField *progressFld=nullptr)
Smooths all face normals.