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;
1283 vector<bool> &iFaceEdgeMarksList,
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.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a vector
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.
VecMat::Vec3< float > Vec3f
VecMat::Vec2< float > Vec2f