27 #include "../scene_graph/LineRep.h"
28 #include "../scene_graph/NodeGroup.h"
29 #include "../scene_graph/NodeShape.h"
30 #include "../scene_graph/OrientedLineRep.h"
31 #include "../scene_graph/VertexRep.h"
33 #include "../winged_edge/WEdge.h"
35 #ifdef WITH_CXX_GUARDEDALLOC
52 _overloadFrsMaterial =
false;
66 template<
class ViewEdgesIterator>
79 _FrsMaterial = iMaterial;
80 _overloadFrsMaterial =
true;
99 bool _overloadFrsMaterial;
101 #ifdef WITH_CXX_GUARDEDALLOC
102 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:ViewMapTesselator")
122 #ifdef WITH_CXX_GUARDEDALLOC
123 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:ViewMapTesselator2D")
143 #ifdef WITH_CXX_GUARDEDALLOC
144 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:ViewMapTesselator3D")
153 template<
class ViewEdgesIterator>
165 FEdge *nextFEdge, *currentEdge;
170 for (ViewEdgesIterator
c = begin, cend = end;
c != cend;
c++) {
172 if ((*c)->qi() > 0) {
175 if (!((*c)->nature() & (_nature))) {
179 firstEdge = (*c)->fedgeA();
188 if (_overloadFrsMaterial) {
193 if (0 == (firstEdge)->nextEdge()) {
204 nextFEdge = firstEdge;
205 currentEdge = firstEdge;
209 currentEdge = nextFEdge;
211 }
while ((nextFEdge !=
NULL) && (nextFEdge != firstEdge));
217 line->
setId((*c)->getId().getFirst());
Read Guarded memory(de)allocation.
Classes to define a silhouette structure.
Classes to define a View Map (ViewVertex, ViewEdge, etc.)
ATTR_WARN_UNUSED_RESULT const BMVert * v
void setDiffuse(const float r, const float g, const float b, const float a)
void AddVertex(const Vec3r &iVertex)
void setStyle(const LINES_STYLE iStyle)
virtual void ComputeBBox()
virtual void AddChild(Node *iChild)
virtual void AddRep(Rep *iRep)
void setFrsMaterial(const FrsMaterial &iMaterial)
void setFrsMaterial(const FrsMaterial &iMaterial)
virtual void AddVertexToLine(LineRep *iLine, SVertex *v)
virtual ~ViewMapTesselator2D()
virtual ~ViewMapTesselator3D()
virtual void AddVertexToLine(LineRep *iLine, SVertex *v)
Nature::EdgeNature nature()
NodeGroup * Tesselate(WShape *iWShape)
void setFrsMaterial(const FrsMaterial &iMaterial)
void setNature(Nature::EdgeNature iNature)
virtual void AddVertexToLine(LineRep *iLine, SVertex *v)=0
const FrsMaterial & frs_material() const
NodeGroup * Tesselate(ViewMap *iViewMap)
virtual ~ViewMapTesselator()
static const EdgeNature BORDER
unsigned short EdgeNature
static const EdgeNature CREASE
static const EdgeNature SILHOUETTE