121 return Vec3f(_color[0], _color[1], _color[2]);
142 return _thickness[0];
148 return _thickness[1];
155 return Vec2f(_thickness[0], _thickness[1]);
245 _thickness[0] = tRL[0];
246 _thickness[1] = tRL[1];
286 typedef std::map<const char *, float, StringUtils::ltstr> realMap;
287 typedef std::map<const char *, Vec2f, StringUtils::ltstr> Vec2fMap;
288 typedef std::map<const char *, Vec3f, StringUtils::ltstr> Vec3fMap;
297 realMap *_userAttributesReal;
298 Vec2fMap *_userAttributesVec2f;
299 Vec3fMap *_userAttributesVec3f;
301 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:StrokeAttribute")
315 return "StrokeVertex";
320 float _CurvilignAbscissa;
386 return _CurvilignAbscissa;
392 return _StrokeLength;
396 inline float u()
const
398 return _CurvilignAbscissa / _StrokeLength;
437 _Attribute = iAttribute;
443 _CurvilignAbscissa = iAbscissa;
451 _StrokeLength = iLength;
457 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:StrokeVertex")
531 Vec2r _extremityOrientations[2];
548 template<
class InputVertexIterator>
Stroke(InputVertexIterator iBegin, InputVertexIterator iEnd);
656 return (_mtex[0] !=
nullptr) || _nodeTree;
668 return _Vertices.size();
673 return _ViewEdges.begin();
678 return _ViewEdges.begin();
683 return _ViewEdges.end();
688 return _ViewEdges.end();
693 return _ViewEdges.size();
698 return _extremityOrientations[0];
703 return _extremityOrientations[0].x();
708 return _extremityOrientations[0].y();
713 return _extremityOrientations[1];
718 return _extremityOrientations[1].x();
723 return _extremityOrientations[1].y();
769 _nodeTree = iNodeTree;
780 _Vertices.push_back(iVertex);
785 _Vertices.push_front(iVertex);
790 _ViewEdges.push_back(iViewEdge);
795 _extremityOrientations[0] = iOrientation;
800 _extremityOrientations[0] =
Vec2r(
x,
y);
805 _extremityOrientations[1] = iOrientation;
810 _extremityOrientations[1] =
Vec2r(
x,
y);
835 return _Vertices.size();
841 return *(_Vertices.at(
i));
854 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:Stroke")
862template<
class InputVertexIterator>
865 for (InputVertexIterator
v = iBegin, vend = iEnd;
v != vend;
v++) {
866 _Vertices.push_back(*
v);
Class to define a container for curves.
Configuration definitions.
Interface 1D and related tools definitions.
Read Guarded memory(de)allocation.
Classes to define a silhouette structure.
ATTR_WARN_UNUSED_RESULT const BMVert * v
virtual Vec2r getPoint2D() const
void setThickness(const Vec2f &tRL)
virtual ~StrokeAttribute()
void setVisible(bool iVisible)
bool isAttributeAvailableVec3f(const char *iName) const
Vec2f getThicknessRL() const
void setThickness(float tr, float tl)
Vec3f getAttributeVec3f(const char *iName) const
void setAttributeReal(const char *iName, float att)
const float * getThickness() const
const float * getColor() const
void setAttributeVec3f(const char *iName, const Vec3f &att)
float getThicknessR() const
Vec3f getColorRGB() const
void setColor(float r, float g, float b)
float getThicknessL() const
bool isAttributeAvailableVec2f(const char *iName) const
void setAlpha(float alpha)
void setColor(const Vec3f &iRGB)
Vec2f getAttributeVec2f(const char *iName) const
void setAttributeVec2f(const char *iName, const Vec2f &att)
StrokeAttribute & operator=(const StrokeAttribute &iBrother)
bool isAttributeAvailableReal(const char *iName) const
float getAttributeReal(const char *iName) const
real & operator[](const int i)
float curvilinearAbscissa() const
void setCurvilinearAbscissa(float iAbscissa)
real operator[](const int i) const
void setAttribute(const StrokeAttribute &iAttribute)
float strokeLength() const
void setPoint(real x, real y)
const StrokeAttribute & attribute() const
void setPoint(const Vec2r &p)
StrokeVertex & operator=(const StrokeVertex &iBrother)
void setStrokeLength(float iLength)
virtual string getExactTypeName() const
StrokeAttribute & attribute()
virtual Interface0DIterator pointsEnd(float t=0.0f)
viewedge_container::iterator viewedges_end()
void setTextureId(uint id)
const_vertex_iterator vertices_begin() const
embedding vertex iterator
viewedge_container::const_iterator viewedges_end() const
void push_back(StrokeVertex *iVertex)
StrokeVertex & strokeVerticeAt(uint i)
void setBeginningOrientation(const Vec2r &iOrientation)
int viewedges_size() const
void setTextureStep(float step)
void ScaleThickness(float iFactor)
void setBeginningOrientation(real x, real y)
virtual Interface0DIterator verticesBegin()
StrokeInternal::vertex_iterator_base< StrokeInternal::vertex_nonconst_traits > vertex_iterator
std::vector< ViewEdge * > viewedge_container
StrokeInternal::vertex_iterator_base< StrokeInternal::vertex_const_traits > const_vertex_iterator
void setEndingOrientation(real x, real y)
bNodeTree * getNodeTree()
void AddViewEdge(ViewEdge *iViewEdge)
void RemoveVertex(StrokeVertex *iVertex)
void push_front(StrokeVertex *iVertex)
void InsertVertex(StrokeVertex *iVertex, StrokeInternal::StrokeVertexIterator next)
real getEndingOrientationX() const
int vertices_size() const
const_vertex_iterator vertices_end() const
std::deque< StrokeVertex * > vertex_container
virtual Interface0DIterator verticesEnd()
real getBeginningOrientationY() const
void Render(const StrokeRenderer *iRenderer)
void setEndingOrientation(const Vec2r &iOrientation)
uint strokeVerticesSize() const
MediumType getMediumType() const
virtual Interface0DIterator pointsBegin(float t=0.0f)
Vec2r getBeginningOrientation() const
void RenderBasic(const StrokeRenderer *iRenderer)
Stroke & operator=(const Stroke &iBrother)
void setLength(float iLength)
float ComputeSampling(int iNVertices)
viewedge_container::const_iterator viewedges_begin() const
StrokeInternal::StrokeVertexIterator strokeVerticesEnd()
Vec2r getEndingOrientation() const
viewedge_container::iterator viewedges_begin()
StrokeInternal::StrokeVertexIterator strokeVerticesBegin(float t=0.0f)
virtual string getExactTypeName() const
real getEndingOrientationY() const
void setNodeTree(bNodeTree *iNodeTree)
int Resample(int iNPoints)
real getBeginningOrientationX() const
void setMediumType(MediumType iType)
VecBase< float, D > step(VecOp< float, D >, VecOp< float, D >) RET
VecMat::Vec3< float > Vec3f
VecMat::Vec2< real > Vec2r
VecMat::Vec2< float > Vec2f