25#ifdef WITH_CXX_GUARDEDALLOC
116 else if (
_t2d == 1) {
129 else if (
_t2d == 1) {
141 else if (
_t2d == 1) {
153 else if (
_t2d == 1) {
165 else if (
_t2d == 1) {
177 else if (
_t2d == 1) {
232 return ((
__A ==
b.__A) && (
__B ==
b.__B) && (
_t2d ==
b._t2d));
255 inline const float t3d()
const
281 inline void SetT3d(
float t)
317 float local_average_depth()
const;
318 float local_depth_variance()
const;
319 real local_average_density(
float sigma = 2.3f)
const;
320 Vec3r shaded_color()
const;
321 Vec3r orientation2d()
const;
322 Vec3r orientation3d()
const;
324 real curvature2d()
const
326 return viewedge()->curvature2d((_VertexA->point2d() + _VertexB->point2d()) / 2.0);
329 Vec3r curvature2d_as_vector()
const;
331 real curvature2d_as_angle()
const;
333 real curvatureFredo()
const;
334 Vec2d directionFredo()
const;
337#ifdef WITH_CXX_GUARDEDALLOC
338 MEM_CXX_CLASS_ALLOC_FUNCS(
"Freestyle:CurvePoint")
350namespace CurveInternal {
423 void computeCurvatureAndOrientation();
506 inline Vec3r shaded_color(
int iCombination = 0)
const;
508 Vec3r orientation2d(
int iCombination = 0)
const;
510 Vec3r orientation3d(
int iCombination = 0)
const;
514 return (*it)->curvature2d();
517 real curvature2d(
int iCombination = 0)
const;
520 occluder_container::const_iterator occluders_begin()
const;
521 occluder_container::const_iterator occluders_end()
const;
522 int occluders_size()
const;
523 bool occluders_empty()
const;
525 const Polygon3r &occludee()
const
527 return *(_FEdgeA->aFace());
530 const SShape *occluded_shape()
const;
531 bool occludee_empty()
const;
532 real z_discontinuity(
int iCombination = 0)
const;
533 int shape_id()
const;
534 const SShape *shape()
const;
535 float shape_importance(
int iCombination = 0)
const;
536 float local_average_depth(
int iCombination = 0)
const;
537 float local_depth_variance(
int iCombination = 0)
const;
538 real local_average_density(
float sigma = 2.3f,
int iCombination = 0)
const;
539 Vec3r curvature2d_as_vector(
int iCombination = 0)
const;
541 real curvature2d_as_angle(
int iCombination = 0)
const;
578 virtual Interface0DIterator
pointsBegin(
float t = 0.0f);
584 virtual Interface0DIterator
pointsEnd(
float t = 0.0f);
586#ifdef WITH_CXX_GUARDEDALLOC
587 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)
point_iterator points_begin(float step=0)
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()
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()
virtual ViewVertex * castToViewVertex()
virtual NonTVertex * castToNonTVertex()
virtual TVertex * castToTVertex()
const Vec3r & point2d() const
virtual Nature::VertexNature getNature() const
local_group_size(16, 16) .push_constant(Type b
VecMat::Vec2< double > Vec2d
VecMat::Vec2< real > Vec2r
VecMat::Vec3< real > Vec3r
static const VertexNature POINT