Blender  V3.3
Public Member Functions | Static Public Member Functions | Public Attributes | Protected Attributes | List of all members
Freestyle::FEdge Class Reference

#include <Silhouette.h>

Inheritance diagram for Freestyle::FEdge:
Freestyle::Interface1D Freestyle::FEdgeSharp Freestyle::FEdgeSmooth

Public Member Functions

virtual string getExactTypeName () const
 
virtual real getLength2D () const
 
virtual Id getId () const
 
 FEdge ()
 
 FEdge (SVertex *vA, SVertex *vB)
 
 FEdge (FEdge &iBrother)
 
virtual ~FEdge ()
 
virtual FEdgeduplicate ()
 
SVertexvertexA ()
 
SVertexvertexB ()
 
SVertexoperator[] (const unsigned short int &i) const
 
Nature::EdgeNature getNature () const
 
FEdgenextEdge ()
 
FEdgepreviousEdge ()
 
SShapeshape ()
 
int invisibility () const
 
ViewEdgeviewedge () const
 
Vec3r center3d ()
 
Vec3r center2d ()
 
const Polygon3raFace () const
 
const Vec3rgetOccludeeIntersection ()
 
bool getOccludeeEmpty ()
 
bool isSmooth () const
 
bool isInImage () const
 
bool isTemporary () const
 
void setVertexA (SVertex *vA)
 
void setVertexB (SVertex *vB)
 
void setId (const Id &id)
 
void setNextEdge (FEdge *iEdge)
 
void setPreviousEdge (FEdge *iEdge)
 
void setNature (Nature::EdgeNature iNature)
 
void setViewEdge (ViewEdge *iViewEdge)
 
void setaFace (Polygon3r &iFace)
 
void setOccludeeIntersection (const Vec3r &iPoint)
 
void setOccludeeEmpty (bool iempty)
 
void setSmooth (bool iFlag)
 
void setIsInImage (bool iFlag)
 
void setTemporary (bool iFlag)
 
const SVertexmin2d () const
 
const SVertexmax2d () const
 
Id shape_id () const
 
const SShapeshape () const
 
float shape_importance () const
 
const int qi () const
 
occluder_container::const_iterator occluders_begin () const
 
occluder_container::const_iterator occluders_end () const
 
bool occluders_empty () const
 
int occluders_size () const
 
const Polygon3roccludee () const
 
const SShapeoccluded_shape () const
 
bool occludee_empty () const
 
real z_discontinuity () const
 
int viewedge_nature () const
 
Vec3r orientation2d () const
 
Vec3r orientation3d () const
 
virtual Interface0DIterator verticesBegin ()
 
virtual Interface0DIterator verticesEnd ()
 
virtual Interface0DIterator pointsBegin (float t=0.0f)
 
virtual Interface0DIterator pointsEnd (float t=0.0f)
 
- Public Member Functions inherited from Freestyle::Interface1D
 Interface1D ()
 
virtual ~Interface1D ()
 
virtual unsigned getTimeStamp () const
 
void setTimeStamp (unsigned iTimeStamp)
 

Static Public Member Functions

static SVertexCommonVertex (FEdge *iEdge1, FEdge *iEdge2)
 

Public Attributes

voiduserdata
 

Protected Attributes

SVertex_VertexA
 
SVertex_VertexB
 
Id _Id
 
Nature::EdgeNature _Nature
 
FEdge_NextEdge
 
FEdge_PreviousEdge
 
ViewEdge_ViewEdge
 
Polygon3r _aFace
 
Vec3r _occludeeIntersection
 
bool _occludeeEmpty
 
bool _isSmooth
 
bool _isInImage
 
bool _isTemporary
 
- Protected Attributes inherited from Freestyle::Interface1D
unsigned _timeStamp
 

Detailed Description

Base Class for feature edges. This FEdge can represent a silhouette, a crease, a ridge/valley, a border or a suggestive contour. For silhouettes, the FEdge is oriented such as, the visible face lies on the left of the edge. For borders, the FEdge is oriented such as, the face lies on the left of the edge. An FEdge can represent an initial edge of the mesh or runs across a face of the initial mesh depending on the smoothness or sharpness of the mesh. This class is specialized into a smooth and a sharp version since their properties slightly vary from one to the other.

Definition at line 463 of file Silhouette.h.

Constructor & Destructor Documentation

◆ FEdge() [1/3]

Freestyle::FEdge::FEdge ( )
inline

Default constructor

Definition at line 528 of file Silhouette.h.

References Freestyle::Nature::NO_FEATURE, and NULL.

◆ FEdge() [2/3]

Freestyle::FEdge::FEdge ( SVertex vA,
SVertex vB 
)
inline

Builds an FEdge going from vA to vB.

Definition at line 545 of file Silhouette.h.

References Freestyle::Nature::NO_FEATURE, and NULL.

◆ FEdge() [3/3]

Freestyle::FEdge::FEdge ( FEdge iBrother)
inline

◆ ~FEdge()

virtual Freestyle::FEdge::~FEdge ( )
inlinevirtual

Destructor

Definition at line 584 of file Silhouette.h.

Member Function Documentation

◆ aFace()

const Polygon3r& Freestyle::FEdge::aFace ( ) const
inline

Definition at line 690 of file Silhouette.h.

Referenced by Freestyle::ViewEdge::occludee().

◆ center2d()

Vec3r Freestyle::FEdge::center2d ( )
inline

◆ center3d()

Vec3r Freestyle::FEdge::center3d ( )
inline

◆ CommonVertex()

static SVertex* Freestyle::FEdge::CommonVertex ( FEdge iEdge1,
FEdge iEdge2 
)
inlinestatic

Definition at line 824 of file Silhouette.h.

References NULL, vertexA(), and vertexB().

◆ duplicate()

virtual FEdge* Freestyle::FEdge::duplicate ( )
inlinevirtual

◆ getExactTypeName()

virtual string Freestyle::FEdge::getExactTypeName ( ) const
inlinevirtual

Returns the string "FEdge".

Reimplemented from Freestyle::Interface1D.

Reimplemented in Freestyle::FEdgeSmooth, and Freestyle::FEdgeSharp.

Definition at line 466 of file Silhouette.h.

Referenced by Any_BPy_FEdge_from_FEdge().

◆ getId()

virtual Id Freestyle::FEdge::getId ( ) const
inlinevirtual

◆ getLength2D()

virtual real Freestyle::FEdge::getLength2D ( ) const
inlinevirtual

Returns the 2D length of the FEdge.

Reimplemented from Freestyle::Interface1D.

Definition at line 474 of file Silhouette.h.

Referenced by Freestyle::ViewEdgeInternal::SVertexIterator::decrement(), and Freestyle::ViewEdgeInternal::SVertexIterator::increment().

◆ getNature()

Nature::EdgeNature Freestyle::FEdge::getNature ( ) const
inlinevirtual

Returns the nature of the FEdge.

Reimplemented from Freestyle::Interface1D.

Definition at line 615 of file Silhouette.h.

Referenced by FEdge(), Freestyle::SShape::SplitEdgeIn2(), and z_discontinuity().

◆ getOccludeeEmpty()

bool Freestyle::FEdge::getOccludeeEmpty ( )
inline

Definition at line 700 of file Silhouette.h.

◆ getOccludeeIntersection()

const Vec3r& Freestyle::FEdge::getOccludeeIntersection ( )
inline

Definition at line 695 of file Silhouette.h.

◆ invisibility()

int Freestyle::FEdge::invisibility ( ) const

Definition at line 239 of file Silhouette.cpp.

References _ViewEdge, and Freestyle::ViewEdge::qi().

Referenced by Freestyle::ViewMapTesselator::Tesselate().

◆ isInImage()

bool Freestyle::FEdge::isInImage ( ) const
inline

◆ isSmooth()

bool Freestyle::FEdge::isSmooth ( ) const
inline

◆ isTemporary()

bool Freestyle::FEdge::isTemporary ( ) const
inline

Definition at line 716 of file Silhouette.h.

◆ max2d()

const SVertex* Freestyle::FEdge::max2d ( ) const
inline

Definition at line 855 of file Silhouette.h.

References Freestyle::SVertex::point2D().

◆ min2d()

const SVertex* Freestyle::FEdge::min2d ( ) const
inline

Definition at line 845 of file Silhouette.h.

References Freestyle::SVertex::point2D().

◆ nextEdge()

FEdge* Freestyle::FEdge::nextEdge ( )
inline

◆ occluded_shape()

const SShape * Freestyle::FEdge::occluded_shape ( ) const

◆ occludee()

const Polygon3r& Freestyle::FEdge::occludee ( ) const
inline

Definition at line 882 of file Silhouette.h.

Referenced by Freestyle::CurvePoint::occludee().

◆ occludee_empty()

bool Freestyle::FEdge::occludee_empty ( ) const

◆ occluders_begin()

occluder_container::const_iterator Freestyle::FEdge::occluders_begin ( ) const

◆ occluders_empty()

bool Freestyle::FEdge::occluders_empty ( ) const

◆ occluders_end()

occluder_container::const_iterator Freestyle::FEdge::occluders_end ( ) const

◆ occluders_size()

int Freestyle::FEdge::occluders_size ( ) const

◆ operator[]()

SVertex* Freestyle::FEdge::operator[] ( const unsigned short int &  i) const
inline

Returns the first SVertex if i=0, the second SVertex if i=1.

Definition at line 609 of file Silhouette.h.

◆ orientation2d()

Vec3r Freestyle::FEdge::orientation2d ( ) const
inline

◆ orientation3d()

Vec3r Freestyle::FEdge::orientation3d ( ) const
inline

Definition at line 917 of file Silhouette.h.

References Freestyle::SVertex::point3d().

◆ pointsBegin()

Interface0DIterator Freestyle::FEdge::pointsBegin ( float  t = 0.0f)
inlinevirtual

Returns an iterator over the FEdge points, pointing to the first point. The difference with verticesBegin() is that here we can iterate over points of the FEdge at a any given sampling. Indeed, for each iteration, a virtual point is created.

Parameters
tThe sampling with which we want to iterate over points of this FEdge.

Reimplemented from Freestyle::Interface1D.

Definition at line 1117 of file Silhouette.h.

◆ pointsEnd()

Interface0DIterator Freestyle::FEdge::pointsEnd ( float  t = 0.0f)
inlinevirtual

Returns an iterator over the FEdge points, pointing after the last point. The difference with verticesEnd() is that here we can iterate over points of the FEdge at a any given sampling. Indeed, for each iteration, a virtual point is created.

Parameters
tThe sampling with which we want to iterate over points of this FEdge.

Reimplemented from Freestyle::Interface1D.

Definition at line 1122 of file Silhouette.h.

◆ previousEdge()

FEdge* Freestyle::FEdge::previousEdge ( )
inline

Returns the Edge preceding this one in the ViewEdge. If this FEdge is the first one of the ViewEdge, 0 is returned.

Definition at line 631 of file Silhouette.h.

Referenced by Freestyle::ViewEdgeInternal::vertex_iterator_base< Traits >::decrement(), Freestyle::ViewEdgeInternal::SVertexIterator::decrement(), and FEdge_previous_fedge_get().

◆ qi()

const int Freestyle::FEdge::qi ( ) const
inline

◆ setaFace()

void Freestyle::FEdge::setaFace ( Polygon3r iFace)
inline

◆ setId()

void Freestyle::FEdge::setId ( const Id id)
inline

◆ setIsInImage()

void Freestyle::FEdge::setIsInImage ( bool  iFlag)
inline

◆ setNature()

void Freestyle::FEdge::setNature ( Nature::EdgeNature  iNature)
inline

◆ setNextEdge()

void Freestyle::FEdge::setNextEdge ( FEdge iEdge)
inline

◆ setOccludeeEmpty()

void Freestyle::FEdge::setOccludeeEmpty ( bool  iempty)
inline

◆ setOccludeeIntersection()

void Freestyle::FEdge::setOccludeeIntersection ( const Vec3r iPoint)
inline

◆ setPreviousEdge()

void Freestyle::FEdge::setPreviousEdge ( FEdge iEdge)
inline

◆ setSmooth()

void Freestyle::FEdge::setSmooth ( bool  iFlag)
inline

Sets the flag telling whether this FEdge is smooth or sharp. true for Smooth, false for Sharp.

Definition at line 806 of file Silhouette.h.

◆ setTemporary()

void Freestyle::FEdge::setTemporary ( bool  iFlag)
inline

◆ setVertexA()

void Freestyle::FEdge::setVertexA ( SVertex vA)
inline

Sets the first SVertex.

Definition at line 723 of file Silhouette.h.

Referenced by Freestyle::Chain::push_viewedge_front(), and Freestyle::SShape::SShape().

◆ setVertexB()

void Freestyle::FEdge::setVertexB ( SVertex vB)
inline

◆ setViewEdge()

void Freestyle::FEdge::setViewEdge ( ViewEdge iViewEdge)
inline

◆ shape() [1/2]

SShape* Freestyle::FEdge::shape ( )
inline

◆ shape() [2/2]

const SShape * Freestyle::FEdge::shape ( ) const

Definition at line 274 of file Silhouette.cpp.

References _VertexA, and Freestyle::SVertex::shape().

◆ shape_id()

Id Freestyle::FEdge::shape_id ( ) const

Definition at line 269 of file Silhouette.cpp.

References _VertexA, Freestyle::SShape::getId(), and Freestyle::SVertex::shape().

◆ shape_importance()

float Freestyle::FEdge::shape_importance ( ) const

◆ vertexA()

SVertex* Freestyle::FEdge::vertexA ( )
inline

◆ vertexB()

SVertex* Freestyle::FEdge::vertexB ( )
inline

◆ verticesBegin()

Interface0DIterator Freestyle::FEdge::verticesBegin ( )
inlinevirtual

Returns an iterator over the 2 (!) SVertex pointing to the first SVertex.

Reimplemented from Freestyle::Interface1D.

Definition at line 1105 of file Silhouette.h.

References ret.

◆ verticesEnd()

Interface0DIterator Freestyle::FEdge::verticesEnd ( )
inlinevirtual

Returns an iterator over the 2 (!) SVertex pointing after the last SVertex.

Reimplemented from Freestyle::Interface1D.

Definition at line 1111 of file Silhouette.h.

References ret.

◆ viewedge()

ViewEdge* Freestyle::FEdge::viewedge ( ) const
inline

◆ viewedge_nature()

int Freestyle::FEdge::viewedge_nature ( ) const

Definition at line 213 of file Silhouette.cpp.

References _ViewEdge, and Freestyle::ViewEdge::getNature().

◆ z_discontinuity()

real Freestyle::FEdge::z_discontinuity ( ) const

Member Data Documentation

◆ _aFace

Polygon3r Freestyle::FEdge::_aFace
protected

Definition at line 511 of file Silhouette.h.

Referenced by FEdge().

◆ _Id

Id Freestyle::FEdge::_Id
protected

Definition at line 501 of file Silhouette.h.

Referenced by FEdge().

◆ _isInImage

bool Freestyle::FEdge::_isInImage
protected

Definition at line 517 of file Silhouette.h.

Referenced by FEdge().

◆ _isSmooth

bool Freestyle::FEdge::_isSmooth
protected

Definition at line 515 of file Silhouette.h.

Referenced by FEdge().

◆ _isTemporary

bool Freestyle::FEdge::_isTemporary
protected

Definition at line 519 of file Silhouette.h.

Referenced by FEdge().

◆ _Nature

Nature::EdgeNature Freestyle::FEdge::_Nature
protected

Definition at line 502 of file Silhouette.h.

◆ _NextEdge

FEdge* Freestyle::FEdge::_NextEdge
protected

Definition at line 505 of file Silhouette.h.

◆ _occludeeEmpty

bool Freestyle::FEdge::_occludeeEmpty
protected

Definition at line 513 of file Silhouette.h.

Referenced by FEdge().

◆ _occludeeIntersection

Vec3r Freestyle::FEdge::_occludeeIntersection
protected

Definition at line 512 of file Silhouette.h.

Referenced by z_discontinuity().

◆ _PreviousEdge

FEdge* Freestyle::FEdge::_PreviousEdge
protected

Definition at line 506 of file Silhouette.h.

Referenced by FEdge().

◆ _VertexA

SVertex* Freestyle::FEdge::_VertexA
protected

◆ _VertexB

SVertex* Freestyle::FEdge::_VertexB
protected

Definition at line 500 of file Silhouette.h.

Referenced by z_discontinuity().

◆ _ViewEdge

ViewEdge* Freestyle::FEdge::_ViewEdge
protected

◆ userdata

void* Freestyle::FEdge::userdata

A field that can be used by the user to store any data. This field must be reset afterwards using ResetUserData().

Definition at line 525 of file Silhouette.h.

Referenced by FEdge(), and Freestyle::SShape::SShape().


The documentation for this class was generated from the following files: