114 else if (
_t2d == 1) {
125 nature |=
__A->getNature();
127 else if (
_t2d == 1) {
128 nature |=
__B->getNature();
139 else if (
_t2d == 1) {
149 return __A->castToViewVertex();
151 else if (
_t2d == 1) {
152 return __B->castToViewVertex();
161 return __A->castToNonTVertex();
163 else if (
_t2d == 1) {
164 return __B->castToNonTVertex();
173 return __A->castToTVertex();
175 else if (
_t2d == 1) {
176 return __B->castToTVertex();
230 return ((
__A ==
b.__A) && (
__B ==
b.__B) && (
_t2d ==
b._t2d));
253 inline const float t3d()
const
279 inline void SetT3d(
float t)
315 float local_average_depth()
const;
316 float local_depth_variance()
const;
317 real local_average_density(
float sigma = 2.3f)
const;
318 Vec3r shaded_color()
const;
319 Vec3r orientation2d()
const;
320 Vec3r orientation3d()
const;
322 real curvature2d()
const
324 return viewedge()->curvature2d((_VertexA->point2d() + _VertexB->point2d()) / 2.0);
327 Vec3r curvature2d_as_vector()
const;
329 real curvature2d_as_angle()
const;
331 real curvatureFredo()
const;
332 Vec2d directionFredo()
const;
335 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:CurvePoint")
419 void computeCurvatureAndOrientation();
502 inline Vec3r shaded_color(
int iCombination = 0)
const;
504 Vec3r orientation2d(
int iCombination = 0)
const;
506 Vec3r orientation3d(
int iCombination = 0)
const;
510 return (*it)->curvature2d();
513 real curvature2d(
int iCombination = 0)
const;
514 FrsMaterial material()
const;
516 occluder_container::const_iterator occluders_begin()
const;
517 occluder_container::const_iterator occluders_end()
const;
518 int occluders_size()
const;
519 bool occluders_empty()
const;
521 const Polygon3r &occludee()
const
523 return *(_FEdgeA->aFace());
526 const SShape *occluded_shape()
const;
527 bool occludee_empty()
const;
528 real z_discontinuity(
int iCombination = 0)
const;
529 int shape_id()
const;
530 const SShape *shape()
const;
531 float shape_importance(
int iCombination = 0)
const;
532 float local_average_depth(
int iCombination = 0)
const;
533 float local_depth_variance(
int iCombination = 0)
const;
534 real local_average_density(
float sigma = 2.3f,
int iCombination = 0)
const;
535 Vec3r curvature2d_as_vector(
int iCombination = 0)
const;
537 real curvature2d_as_angle(
int iCombination = 0)
const;
574 virtual Interface0DIterator
pointsBegin(
float t = 0.0f);
580 virtual Interface0DIterator
pointsEnd(
float t = 0.0f);
582 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:Curve")
Classes defining the basic "Iterator" design pattern.
Vectors and Matrices (useful type definitions).
Interface to 0D elements.
Interface 1D and related tools definitions.
Read Guarded memory(de)allocation.
Class to perform all geometric operations dedicated to silhouette. That, for example,...
Classes to define a silhouette structure.
virtual FEdge * getFEdge(Interface0D &inter)
virtual real getZ() const
int occluders_size() const
real z_discontinuity() const
virtual real getProjectedZ() const
virtual NonTVertex * castToNonTVertex()
CurvePoint & operator=(const CurvePoint &iBrother)
const Vec3r & point3d() const
bool occluders_empty() const
occluder_container::const_iterator occluders_begin() const
virtual TVertex * castToTVertex()
const SShape * occluded_shape() const
virtual Nature::VertexNature getNature() const
const Vec3r & point2d() const
virtual real getX() const
virtual real getProjectedX() const
virtual Vec3r getPoint3D() const
virtual real getProjectedY() const
virtual ViewVertex * castToViewVertex()
bool occludee_empty() const
virtual ~CurvePoint()=default
virtual string getExactTypeName() const
virtual Vec2r getPoint2D() const
occluder_container::const_iterator occluders_end() const
virtual SVertex * castToSVertex()
const Polygon3r & occludee() const
const SShape * shape() const
bool operator==(const CurvePoint &b)
virtual real getY() const
point_iterator vertices_end()
void push_vertex_back(SVertex *iVertex)
void push_vertex_back(Vertex *iVertex)
vertex_container _Vertices
CurveInternal::__point_iterator< CurveInternal::CurvePoint_nonconst_traits > point_iterator
virtual string getExactTypeName() const
virtual Interface0DIterator verticesBegin()
virtual Interface0DIterator verticesEnd()
point_iterator points_end(float step=0)
deque< Vertex * > vertex_container
CurveInternal::__point_iterator< CurveInternal::CurvePoint_const_traits > const_point_iterator
virtual Interface0DIterator pointsBegin(float t=0.0f)
CurveInternal::CurvePointIterator curvePointsBegin(float t=0.0f)
CurveInternal::CurvePointIterator curveVerticesBegin()
void push_vertex_front(Vertex *iVertex)
CurveInternal::CurvePointIterator curveVerticesEnd()
Curve(const Curve &iBrother)
void push_vertex_front(SVertex *iVertex)
point_iterator vertex_iterator
virtual Interface0DIterator pointsEnd(float t=0.0f)
point_iterator vertices_begin()
point_iterator points_begin(float step=0)
const_point_iterator const_vertex_iterator
CurveInternal::CurvePointIterator curvePointsEnd(float t=0.0f)
virtual ViewVertex * castToViewVertex()
virtual NonTVertex * castToNonTVertex()
virtual TVertex * castToTVertex()
virtual SVertex * castToSVertex()
const Vec3r & point2d() const
VecBase< float, D > step(VecOp< float, D >, VecOp< float, D >) RET
VecMat::Vec2< double > Vec2d
VecMat::Vec2< real > Vec2r
VecMat::Vec3< real > Vec3r
static const VertexNature POINT