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
20
22
24namespace WEMFaceOp
25{
32 bool traversedTrue,
35 int *hitEdgeTable1,
37 int *hitEdgeTable2,
38 unsigned int intersectingFlag);
39
46 bool traversedTrue,
49 int *hitEdgeTable,
50 unsigned int intersectingFlag);
51
53 MLWEM_EXPORT void smoothFaceNormals(WEMPatch* wemPatch, unsigned int numSmoothingPasses, ProgressField* progressFld=nullptr);
54
58
59
60 // Methods below are not exported to simulate their former private status
61
67 bool reverse,
69 int *hitEdgeTable1,
71 int *hitEdgeTable2);
72
78 bool reverse,
80 int *hitEdgeTable);
81
88 int *hitEdgeTable2);
89
95
99 int start,
100 int end,
104 int *hitEdgeTable2);
105
109 int start,
110 int end,
113};
114
116
#define MLWEM_EXPORT
Definition MLWEMSystem.h:18
Field to encapsulate an increasing float value from range [0,1].
Definition mlFields.h:491
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
Target mlrange_cast(Source arg)
Generic version of checked ML casts.
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.