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
18
19ML_START_NAMESPACE
20
22
24namespace WEMFaceOp
25{
29 WEMVector<WEMFaceCut> *faceCuts,
30 WEMPatch *wemPatch,
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,
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
117ML_END_NAMESPACE
#define MLWEM_EXPORT
Definition MLWEMSystem.h:18
Field to encapsulate an increasing float value from range [0,1].
Definition mlFields.h:451
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:61
Dynamic templated vector.
Definition WEMVector.h:28
void _addStab(WEMFace *face, WEMFaceCut *faceCut, WEMIndexedFace *nFace, WEMPatch *wemPatch, WEMVector< WEMNode > **edgeTable2, int *hitEdgeTable2)
Adds the given face cut (stab) to nFace (boolOp version).
MLWEM_EXPORT bool cutFace(WEMFace *face, WEMVector< WEMFaceCut > *faceCuts, WEMPatch *wemPatch, WEMVector< WEMIndexedFace > *cutFaces, bool traversedTrue, WEMNode **nodeTable, WEMVector< WEMNode > **edgeTable1, int *hitEdgeTable1, WEMVector< WEMNode > **edgeTable2, int *hitEdgeTable2, unsigned int intersectingFlag)
Applies the given cuts to the given face (boolOp version).
void _addPartialStab(WEMFace *face, WEMFaceCut *faceCut, int start, int end, WEMIndexedFace *nFace, WEMPatch *wemPatch, WEMVector< WEMNode > **edgeTable2, int *hitEdgeTable2)
Adds the given face cut (stab) to nFace, partially between given indices (boolOp version).
void _addFaceCut(WEMFace *face, WEMFaceCut *faceCut, WEMIndexedFace *nFace, WEMPatch *wemPatch, bool reverse, WEMVector< WEMNode > **edgeTable1, int *hitEdgeTable1, WEMVector< WEMNode > **edgeTable2, int *hitEdgeTable2)
Adds the given face cut to nFace (boolOp 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.
MLWEM_EXPORT void smoothFaceNormals(WEMPatch *wemPatch, unsigned int numSmoothingPasses, ProgressField *progressFld=nullptr)
Smooths all face normals.