16#ifdef WITH_CXX_GUARDEDALLOC
40 _curvatures =
nullptr;
65 _curvatures->
Kr = 0.0;
81#ifdef WITH_CXX_GUARDEDALLOC
82 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WXVertex")
129 _nature = iBrother.
nature();
130 _front = iBrother._front;
131 _order = iBrother._order;
144 _nature = _nature & ~Nature::SILHOUETTE;
145 _nature = _nature & ~Nature::SUGGESTIVE_CONTOUR;
177 _nature = _nature | iNature;
185#ifdef WITH_CXX_GUARDEDALLOC
186 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WXEdge")
245 inline float ta()
const
250 inline float tb()
const
296#ifdef WITH_CXX_GUARDEDALLOC
297 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WXSmoothEdge")
353 if (!
_DotP.empty()) {
362 inline const float dotP(
int i)
const
417 if (!
_DotP.empty()) {
441 inline void setDotP(
const vector<float> &iDotP)
448 _DotP.push_back(iDotP);
459 _DotP[index] = newDotP;
467 for (vector<float>::iterator d =
_DotP.begin(), dend =
_DotP.end(); d != dend; ++d) {
477#ifdef WITH_CXX_GUARDEDALLOC
478 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WXFaceLayer")
505 for (vector<WXFaceLayer *>::iterator wxf = iBrother.
_SmoothLayers.begin(),
523 for (vector<WXFaceLayer *>::iterator wxf =
_SmoothLayers.begin(),
563 for (vector<WXFaceLayer *>::const_iterator wxf =
_SmoothLayers.begin(),
568 if ((*wxf)->hasSmoothEdge()) {
587 if ((*wxf)->hasSmoothEdge() && ((*wxf)->_Nature & iNature)) {
588 oSmoothEdges.push_back((*wxf)->_pSmoothEdge);
599 if ((*wxf)->hasSmoothEdge() && ((*wxf)->_Nature & iNature)) {
600 oSmoothEdgesLayers.push_back((*wxf));
611 if ((*wxf)->_Nature & iNature) {
612 oSmoothLayers.push_back(*wxf);
653 vector<WXFaceLayer *> layersToKeep;
658 if ((*wxf)->isViewDependant()) {
662 layersToKeep.push_back(*wxf);
687 (*wxf)->userdata =
nullptr;
691#ifdef WITH_CXX_GUARDEDALLOC
692 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WXFace")
759 vector<bool> &iFaceEdgeMarksList,
760 uint iMaterialIndex);
781 vector<Vec3f> &iNormalsList,
782 vector<Vec2f> &iTexCoordsList,
783 vector<bool> &iFaceEdgeMarksList,
784 uint iMaterialIndex);
791 for (vector<WEdge *>::iterator we = wedges.begin(), weend = wedges.end(); we != weend; ++we) {
797 for (vector<WFace *>::iterator wf = wfaces.begin(), wfend = wfaces.end(); wf != wfend; ++wf) {
803#ifdef WITH_CXX_GUARDEDALLOC
804 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WXShape")
824 vector<WEdge *> &vedges =
GetEdges();
825 for (vector<WEdge *>::iterator ve = vedges.begin(), vend = vedges.end(); ve != vend; ++ve) {
831 if ((counter == 1) || (counter > 2)) {
GTS - Library for the manipulation of triangulated surfaces.
Read Guarded memory(de)allocation.
Different natures for both vertices and edges.
Classes to define a Winged Edge data structure.
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE const btScalar & z() const
Return the z value.
virtual void ResetUserData()
vector< WEdge * > & getEdgeList()
vector< WFace * > & GetFaceList()
vector< WEdge * > & GetEdges()
WXEdge(WOEdge *iaOEdge, WOEdge *ibOEdge)
void setNature(WXNature iNature)
void AddNature(WXNature iNature)
virtual WEdge * duplicate()
void setFront(bool iFront)
bool hasSmoothEdge() const
const float dotP(int i) const
void setClosestPointIndex(int iIndex)
WXFaceLayer(const WXFaceLayer &iBrother)
void ReplaceDotP(uint index, float newDotP)
WXSmoothEdge * getSmoothEdge()
void PushDotP(float iDotP)
WXFaceLayer(WXFace *iFace, WXNature iNature, bool viewDependant)
void setDotP(const vector< float > &iDotP)
void RetrieveCuspEdgesIndices(vector< int > &oCuspEdges)
uint Get0VertexIndex() const
int closestPointIndex() const
uint GetSmoothEdgeIndex() const
bool isViewDependant() const
WXSmoothEdge * BuildSmoothEdge()
WXSmoothEdge * _pSmoothEdge
void setDotP(float iDotP)
virtual void ResetUserData()
vector< WXFaceLayer * > _SmoothLayers
void retrieveSmoothLayers(WXNature iNature, vector< WXFaceLayer * > &oSmoothLayers)
virtual WFace * duplicate()
void setFront(bool iFront)
void setCenter(const Vec3f &iCenter)
virtual WEdge * instanciateEdge() const
void retrieveSmoothEdgesLayers(WXNature iNature, vector< WXFaceLayer * > &oSmoothEdgesLayers)
void AddSmoothLayer(WXFaceLayer *iLayer)
bool hasSmoothEdges() const
void retrieveSmoothEdges(WXNature iNature, vector< WXSmoothEdge * > &oSmoothEdges)
vector< WXFaceLayer * > & getSmoothLayers()
bool _computeViewIndependent
bool getComputeViewIndependentFlag() const
virtual WFace * instanciateFace() const
virtual WFace * MakeFace(vector< WVertex * > &iVertexList, vector< bool > &iFaceEdgeMarksList, uint iMaterialIndex)
virtual WShape * duplicate()
WXShape(WXShape &iBrother)
void setComputeViewIndependentFlag(bool iFlag)
void setWOeA(WOEdge *iwoea)
void setWOeB(WOEdge *iwoeb)
Configuration configuration() const
WXSmoothEdge(const WXSmoothEdge &iBrother)
static const Configuration VERTEX_EDGE
void setConfiguration(Configuration iConf)
void setFront(bool iFront)
static const Configuration EDGE_VERTEX
static const Configuration EDGE_EDGE
virtual WVertex * duplicate()
void setCurvatures(CurvatureInfo *ci)
WXVertex(WXVertex &iBrother)
CurvatureInfo * curvatures()
static const EdgeNature NO_FEATURE
Nature::EdgeNature WXNature