23#ifdef WITH_CXX_GUARDEDALLOC
106 inline void setEdges(
const vector<WEdge *> &iEdgeList)
176 _vertex = iBrother._vertex;
177 _begin = iBrother._begin;
178 _current = iBrother._current;
201 return ((_current) != (
b._current));
206 return ((_current) == (
b._current));
215#ifdef WITH_CXX_GUARDEDALLOC
216 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WVertex:incoming_edge_iterator")
245 _edge_it = iBrother._edge_it;
268 return ((_edge_it) != (
b._edge_it));
273 return ((_edge_it) == (
b._edge_it));
286#ifdef WITH_CXX_GUARDEDALLOC
287 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WVertex:face_iterator")
306#ifdef WITH_CXX_GUARDEDALLOC
307 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WVertex")
347 _paCCWEdge =
nullptr;
348 _pbCCWEdge =
nullptr;
366 inline WOEdge *GetaCWEdge()
371 inline WOEdge *GetbCWEdge()
376 inline WOEdge *GetaCCWEdge()
381 inline WOEdge *GetbCCWEdge()
424 inline void SetaCWEdge(
WOEdge *pe)
429 inline void SetbCWEdge(
WOEdge *pe)
434 inline void SetaCCWEdge(
WOEdge *pe)
439 inline void SetbCCCWEdge(
WOEdge *pe)
487#ifdef WITH_CXX_GUARDEDALLOC
488 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WOEdge")
557 if (!iEdge1 || !iEdge2) {
566 if ((wv1 == wv3) || (wv1 == wv4)) {
569 else if ((wv2 == wv3) || (wv2 == wv4)) {
676#ifdef WITH_CXX_GUARDEDALLOC
677 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WEdge")
769 if ((*woe)->GetaVertex() == iVertex) {
783 oVertices.push_back((*woe)->GetaVertex());
794 if ((af = (*woe)->GetaFace())) {
795 oWFaces.push_back(af);
846 if ((*woe)->GetaVertex() == iVertex) {
859 vector<WOEdge *>::iterator woe, woend, woefirst;
861 for (woe = woefirst, woend =
_OEdgeList.end(); woe != woend; ++woe) {
866 if ((*woe) == iOEdge) {
898 if ((*woe)->GetOwner()->GetbOEdge() == 0) {
975#ifdef WITH_CXX_GUARDEDALLOC
976 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WFace")
1003 float _meanEdgeSize;
1023 vector<WEdge *>::iterator
e;
1031 vector<WVertex *>::iterator
v;
1039 vector<WFace *>::iterator f;
1087 inline const float getMeanEdgeSize()
const
1089 return _meanEdgeSize;
1173 vector<bool> &iFaceEdgeMarksList,
1174 uint iMaterialIndex);
1188 vector<Vec3f> &iNormalsList,
1189 vector<Vec2f> &iTexCoordsList,
1190 vector<bool> &iFaceEdgeMarksList,
1191 uint iMaterialIndex);
1214 (*v)->ResetUserData();
1218 (*e)->ResetUserData();
1220 WOEdge *oe = (*e)->GetaOEdge();
1224 oe = (*e)->GetbOEdge();
1230 for (vector<WFace *>::iterator f =
_FaceList.begin(), fend =
_FaceList.end(); f != fend; f++) {
1231 (*f)->ResetUserData();
1236 inline void ComputeBBox()
1246 for (
uint i = 0; i < 3; i++) {
1247 v = (*wv)->GetVertex();
1248 if (
v[i] < _min[i]) {
1251 if (
v[i] > _max[i]) {
1262 _meanEdgeSize = _meanEdgeSize /
_EdgeList.size();
1263 return _meanEdgeSize;
1284 uint iMaterialIndex,
1287#ifdef WITH_CXX_GUARDEDALLOC
1288 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WShape")
1314 for (vector<WShape *>::iterator it = _wshapes.begin(); it != _wshapes.end(); it++) {
1323 _wshapes.push_back(wshape);
1338 vector<WShape *> _wshapes;
1341#ifdef WITH_CXX_GUARDEDALLOC
1342 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:WingedEdge")
1360 WOEdge *currentOEdge =
this;
1363 oEdges.push_back(nextOEdge->
GetOwner());
Configuration definitions.
Class used to handle materials.
Vectors and Matrices (useful type definitions)
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT const BMVert * v2
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v
short GetNumberOfOEdges()
WEdge(WOEdge *iaOEdge, WOEdge *ibOEdge)
virtual void ResetUserData()
WOEdge * GetOtherOEdge(WOEdge *iOEdge)
void setaOEdge(WOEdge *iEdge)
virtual WEdge * duplicate()
void setbOEdge(WOEdge *iEdge)
void setNumberOfOEdges(short n)
void AddOEdge(WOEdge *iEdge)
static WVertex * CommonVertex(WEdge *iEdge1, WEdge *iEdge2)
const vector< WOEdge * > & getEdgeList()
vector< Vec2f > _VerticesTexCoords
vector< Vec2f > & GetPerVertexTexCoords()
void RetrieveBorderFaces(vector< const WFace * > &oWFaces)
void setNormal(const Vec3f &iNormal)
WFace * GetBordingFace(int index)
void AddEdge(WOEdge *iEdge)
int numberOfEdges() const
const FrsMaterial & frs_material()
WOEdge * GetNextOEdge(WOEdge *iOEdge)
vector< WOEdge * > _OEdgeList
Vec3f & GetVertexNormal(WVertex *iVertex)
WOEdge * GetPrevOEdge(WOEdge *iOEdge)
virtual WOEdge * MakeEdge(WVertex *v1, WVertex *v2)
int numberOfVertices() const
virtual WFace * duplicate()
void setEdgeList(const vector< WOEdge * > &iEdgeList)
Vec2f & GetVertexTexCoords(int index)
virtual void ResetUserData()
bool getOppositeEdge(const WVertex *v, WOEdge *&e)
Vec3f & GetVertexNormal(int index)
WFace * GetBordingFace(WOEdge *iOEdge)
void setNormalList(const vector< Vec3f > &iNormalsList)
void setFrsMaterialIndex(uint iMaterialIndex)
virtual WEdge * instanciateEdge() const
void setTexCoordsList(const vector< Vec2f > &iTexCoordsList)
vector< Vec3f > & GetPerVertexNormals()
uint frs_materialIndex() const
void RetrieveVertexList(vector< WVertex * > &oVertices)
vector< Vec3f > _VerticesNormals
WVertex * GetVertex(uint index)
int GetIndex(WVertex *iVertex)
void setbVertex(WVertex *pv)
void RetrieveCWOrderedEdges(vector< WEdge * > &oEdges)
virtual WOEdge * duplicate()
void setaVertex(WVertex *pv)
virtual void ResetUserData()
void setFrsMaterials(const vector< FrsMaterial > &iMaterials)
vector< WVertex * > & getVertexList()
real ComputeMeanEdgeSize() const
void setVertexList(const vector< WVertex * > &iVertexList)
vector< FrsMaterial > _FrsMaterials
void setEdgeList(const vector< WEdge * > &iEdgeList)
void setFrsMaterial(const FrsMaterial &frs_material, uint i)
vector< WEdge * > & getEdgeList()
const string & getLibraryPath() const
void setName(const string &name)
virtual WShape * duplicate()
const string & getName() const
void setLibraryPath(const string &path)
static void setCurrentId(const uint id)
virtual WFace * MakeFace(vector< WVertex * > &iVertexList, vector< bool > &iFaceEdgeMarksList, uint iMaterialIndex)
void setFaceList(const vector< WFace * > &iFaceList)
void AddVertex(WVertex *iVertex)
vector< WFace * > _FaceList
const FrsMaterial & frs_material(uint i) const
vector< WVertex * > _VertexList
void AddEdge(WEdge *iEdge)
void AddFace(WFace *iFace)
vector< WFace * > & GetFaceList()
static uint _SceneCurrentId
const vector< FrsMaterial > & frs_materials() const
vector< WEdge * > _EdgeList
virtual WFace * instanciateFace() const
face_iterator(incoming_edge_iterator it)
virtual WFace * operator*()
face_iterator(const face_iterator &iBrother)
virtual bool operator!=(const face_iterator &b) const
ptrdiff_t difference_type
virtual ~face_iterator()=default
virtual face_iterator & operator++()
virtual face_iterator operator++(int)
input_iterator_tag iterator_category
virtual bool operator==(const face_iterator &b) const
virtual incoming_edge_iterator & operator++()
input_iterator_tag iterator_category
virtual WOEdge * operator*()
virtual bool operator!=(const incoming_edge_iterator &b) const
virtual bool operator==(const incoming_edge_iterator &b) const
virtual incoming_edge_iterator operator++(int)
incoming_edge_iterator(WVertex *iVertex, WOEdge *iBegin, WOEdge *iCurrent)
incoming_edge_iterator()=default
virtual ~incoming_edge_iterator()=default
incoming_edge_iterator(const incoming_edge_iterator &iBrother)
ptrdiff_t difference_type
void setVertex(const Vec3f &v)
vector< WEdge * > & GetEdges()
virtual incoming_edge_iterator incoming_edges_begin()
virtual face_iterator faces_end()
virtual void ResetUserData()
vector< WEdge * > _EdgeList
virtual incoming_edge_iterator incoming_edges_end()
void setEdges(const vector< WEdge * > &iEdgeList)
virtual face_iterator faces_begin()
void setShape(WShape *iShape)
void AddEdge(WEdge *iEdge)
virtual WVertex * duplicate()
vector< WShape * > & getWShapes()
void addWShape(WShape *wshape)
local_group_size(16, 16) .push_constant(Type b
#define pf(_x, _i)
Prefetch 64.