Blender
V3.3
|
#include <Silhouette.h>
Static Public Member Functions | |
static SVertex * | CommonVertex (FEdge *iEdge1, FEdge *iEdge2) |
Public Attributes | |
void * | userdata |
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 |
![]() | |
unsigned | _timeStamp |
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.
|
inline |
Default constructor
Definition at line 528 of file Silhouette.h.
References Freestyle::Nature::NO_FEATURE, and NULL.
Builds an FEdge going from vA to vB.
Definition at line 545 of file Silhouette.h.
References Freestyle::Nature::NO_FEATURE, and NULL.
|
inline |
Copy constructor
Definition at line 562 of file Silhouette.h.
References _aFace, _Id, _isInImage, _isSmooth, _isTemporary, _occludeeEmpty, _PreviousEdge, _ViewEdge, getNature(), nextEdge(), userdata, vertexA(), and vertexB().
|
inlinevirtual |
Destructor
Definition at line 584 of file Silhouette.h.
|
inline |
Definition at line 690 of file Silhouette.h.
Referenced by Freestyle::ViewEdge::occludee().
|
inline |
Definition at line 668 of file Silhouette.h.
References Freestyle::SVertex::point2D().
Referenced by Freestyle::CulledOccluderSource::cullViewEdges(), and Freestyle::ViewMapBuilder::CullViewEdges().
|
inline |
Definition at line 663 of file Silhouette.h.
References Freestyle::SVertex::point3D().
Referenced by Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), and Freestyle::computeVisibility().
Definition at line 824 of file Silhouette.h.
|
inlinevirtual |
Cloning method.
Reimplemented in Freestyle::FEdgeSmooth, and Freestyle::FEdgeSharp.
Definition at line 589 of file Silhouette.h.
Referenced by Freestyle::Chain::push_viewedge_back(), Freestyle::Chain::push_viewedge_front(), and Freestyle::SShape::SShape().
|
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().
|
inlinevirtual |
Reimplemented from Freestyle::Interface1D.
Definition at line 483 of file Silhouette.h.
Referenced by Freestyle::SteerableViewMap::AddFEdge(), Freestyle::computeCumulativeVisibility(), Freestyle::computeDetailedVisibility(), Freestyle::computeFastVisibility(), Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), Freestyle::computeVeryFastVisibility(), Freestyle::ViewMapBuilder::FindOccludee(), Freestyle::Functions1D::GetSteerableViewMapDensityF1D::operator()(), Freestyle::SShape::SplitEdge(), and Freestyle::SShape::SplitEdgeIn2().
|
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().
|
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().
|
inline |
Definition at line 700 of file Silhouette.h.
|
inline |
Definition at line 695 of file Silhouette.h.
int Freestyle::FEdge::invisibility | ( | ) | const |
Definition at line 239 of file Silhouette.cpp.
References _ViewEdge, and Freestyle::ViewEdge::qi().
Referenced by Freestyle::ViewMapTesselator::Tesselate().
|
inline |
Definition at line 711 of file Silhouette.h.
Referenced by Freestyle::computeCumulativeVisibility(), Freestyle::computeDetailedVisibility(), Freestyle::computeFastVisibility(), Freestyle::computeVeryFastVisibility(), Freestyle::CulledOccluderSource::cullViewEdges(), and Freestyle::ViewMapBuilder::CullViewEdges().
|
inline |
Returns true if this FEdge is a smooth FEdge.
Definition at line 706 of file Silhouette.h.
Referenced by Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), Freestyle::computeVisibility(), Freestyle::findOccludee(), Freestyle::ViewMapBuilder::FindOccludee(), Freestyle::Functions0D::MaterialF0D::operator()(), Freestyle::SShape::SplitEdge(), and Freestyle::SShape::SplitEdgeIn2().
|
inline |
Definition at line 716 of file Silhouette.h.
|
inline |
Definition at line 855 of file Silhouette.h.
References Freestyle::SVertex::point2D().
|
inline |
Definition at line 845 of file Silhouette.h.
References Freestyle::SVertex::point2D().
|
inline |
Returns the FEdge following this one in the ViewEdge. If this FEdge is the last of the ViewEdge, 0 is returned.
Definition at line 623 of file Silhouette.h.
Referenced by Freestyle::computeCumulativeVisibility(), Freestyle::ViewMapBuilder::computeCusps(), Freestyle::computeDetailedVisibility(), Freestyle::ViewMapBuilder::ComputeFastRayCastingVisibility(), Freestyle::computeFastVisibility(), Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), Freestyle::computeVeryFastVisibility(), Freestyle::CulledOccluderSource::cullViewEdges(), Freestyle::ViewMapBuilder::CullViewEdges(), FEdge(), FEdge_next_fedge_get(), Freestyle::ViewEdge::include_in_2d_area(), Freestyle::ViewEdgeInternal::vertex_iterator_base< Traits >::increment(), Freestyle::ViewEdgeInternal::SVertexIterator::increment(), Freestyle::ViewEdge::intersect_2d_area(), Freestyle::SShape::SplitEdge(), Freestyle::SShape::SplitEdgeIn2(), Freestyle::ViewMapTesselator::Tesselate(), and Freestyle::ViewEdge::UpdateFEdges().
const SShape * Freestyle::FEdge::occluded_shape | ( | ) | const |
Definition at line 225 of file Silhouette.cpp.
References _ViewEdge, Freestyle::ViewEdge::aShape(), and Freestyle::ViewShape::sshape().
Referenced by Freestyle::CurvePoint::occluded_shape().
|
inline |
Definition at line 882 of file Silhouette.h.
Referenced by Freestyle::CurvePoint::occludee().
bool Freestyle::FEdge::occludee_empty | ( | ) | const |
Definition at line 264 of file Silhouette.cpp.
References _ViewEdge, and Freestyle::ViewEdge::occludee_empty().
Referenced by Freestyle::CurvePoint::occludee_empty(), and z_discontinuity().
occluder_container::const_iterator Freestyle::FEdge::occluders_begin | ( | ) | const |
Definition at line 244 of file Silhouette.cpp.
References _ViewEdge, and Freestyle::ViewEdge::occluders_begin().
Referenced by Freestyle::CurvePoint::occluders_begin().
bool Freestyle::FEdge::occluders_empty | ( | ) | const |
Definition at line 254 of file Silhouette.cpp.
References _ViewEdge, and Freestyle::ViewEdge::occluders_empty().
Referenced by Freestyle::CurvePoint::occluders_empty().
occluder_container::const_iterator Freestyle::FEdge::occluders_end | ( | ) | const |
Definition at line 249 of file Silhouette.cpp.
References _ViewEdge, and Freestyle::ViewEdge::occluders_end().
Referenced by Freestyle::CurvePoint::occluders_end().
int Freestyle::FEdge::occluders_size | ( | ) | const |
Definition at line 259 of file Silhouette.cpp.
References _ViewEdge, and Freestyle::ViewEdge::occluders_size().
Referenced by Freestyle::computeDetailedVisibility(), Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), and Freestyle::CurvePoint::occluders_size().
|
inline |
Returns the first SVertex if i=0, the second SVertex if i=1.
Definition at line 609 of file Silhouette.h.
|
inline |
Definition at line 912 of file Silhouette.h.
References Freestyle::SVertex::point2d().
Referenced by Freestyle::SteerableViewMap::AddFEdge(), Freestyle::Functions0D::Normal2DF0D::operator()(), Freestyle::Functions1D::Orientation2DF1D::operator()(), and Freestyle::ViewEdgeComp().
|
inline |
Definition at line 917 of file Silhouette.h.
References Freestyle::SVertex::point3d().
|
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.
t | The sampling with which we want to iterate over points of this FEdge. |
Reimplemented from Freestyle::Interface1D.
Definition at line 1117 of file Silhouette.h.
|
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.
t | The sampling with which we want to iterate over points of this FEdge. |
Reimplemented from Freestyle::Interface1D.
Definition at line 1122 of file Silhouette.h.
|
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().
|
inline |
Definition at line 872 of file Silhouette.h.
Referenced by Freestyle::Functions1D::QuantitativeInvisibilityF1D::operator()().
Definition at line 788 of file Silhouette.h.
Referenced by Freestyle::computeCumulativeVisibility(), Freestyle::computeDetailedVisibility(), Freestyle::ViewMapBuilder::ComputeFastRayCastingVisibility(), Freestyle::computeFastVisibility(), Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), Freestyle::ViewMapBuilder::ComputeVeryFastRayCastingVisibility(), and Freestyle::computeVeryFastVisibility().
Definition at line 735 of file Silhouette.h.
References id.
Referenced by Freestyle::ViewEdgeXBuilder::BuildSharpFEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothFEdge(), Freestyle::SShape::SplitEdge(), and Freestyle::SShape::SplitEdgeIn2().
Definition at line 811 of file Silhouette.h.
Referenced by Freestyle::CulledOccluderSource::cullViewEdges(), and Freestyle::ViewMapBuilder::CullViewEdges().
|
inline |
Sets the nature of this FEdge.
Definition at line 753 of file Silhouette.h.
Referenced by Freestyle::ViewEdgeXBuilder::BuildSharpFEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothFEdge(), Freestyle::SShape::SplitEdge(), and Freestyle::SShape::SplitEdgeIn2().
Sets the pointer to the next FEdge.
Definition at line 741 of file Silhouette.h.
Referenced by Freestyle::ViewEdgeXBuilder::BuildSharpFEdge(), Freestyle::ViewEdgeXBuilder::BuildSharpViewEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothFEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothViewEdge(), Freestyle::SShape::SplitEdge(), and Freestyle::SShape::SplitEdgeIn2().
Definition at line 798 of file Silhouette.h.
Referenced by Freestyle::computeCumulativeVisibility(), Freestyle::computeDetailedVisibility(), and Freestyle::ViewMapBuilder::ComputeRayCastingVisibility().
Definition at line 793 of file Silhouette.h.
Referenced by Freestyle::findOccludee(), and Freestyle::ViewMapBuilder::FindOccludee().
Sets the pointer to the previous FEdge.
Definition at line 747 of file Silhouette.h.
Referenced by Freestyle::ViewEdgeXBuilder::BuildSharpFEdge(), Freestyle::ViewEdgeXBuilder::BuildSharpViewEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothFEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothViewEdge(), Freestyle::ViewMap::InsertViewVertex(), Freestyle::SShape::SplitEdge(), and Freestyle::SShape::SplitEdgeIn2().
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.
Definition at line 816 of file Silhouette.h.
Referenced by Freestyle::Chain::push_viewedge_back(), and Freestyle::Chain::push_viewedge_front().
Sets the first SVertex.
Definition at line 723 of file Silhouette.h.
Referenced by Freestyle::Chain::push_viewedge_front(), and Freestyle::SShape::SShape().
Sets the second SVertex.
Definition at line 729 of file Silhouette.h.
Referenced by Freestyle::Chain::push_viewedge_back(), Freestyle::Chain::push_viewedge_front(), and Freestyle::SShape::SplitEdgeIn2().
Sets the ViewEdge to which this FEdge belongs to.
Definition at line 766 of file Silhouette.h.
Referenced by Freestyle::ViewEdgeXBuilder::BuildSharpViewEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothViewEdge(), Freestyle::ViewShape::SplitEdge(), and Freestyle::ViewEdge::UpdateFEdges().
|
inline |
Definition at line 636 of file Silhouette.h.
References Freestyle::SVertex::shape().
Referenced by Freestyle::ViewMap::CreateTVertex(), and Freestyle::ViewShape::SplitEdge().
const SShape * Freestyle::FEdge::shape | ( | ) | const |
Definition at line 274 of file Silhouette.cpp.
References _VertexA, and Freestyle::SVertex::shape().
Id Freestyle::FEdge::shape_id | ( | ) | const |
Definition at line 269 of file Silhouette.cpp.
References _VertexA, Freestyle::SShape::getId(), and Freestyle::SVertex::shape().
float Freestyle::FEdge::shape_importance | ( | ) | const |
Definition at line 234 of file Silhouette.cpp.
References _VertexA, Freestyle::SShape::importance(), and Freestyle::SVertex::shape().
Referenced by Freestyle::ViewEdge::shape_importance().
|
inline |
Returns the first SVertex.
Definition at line 597 of file Silhouette.h.
Referenced by Freestyle::ViewEdgeXBuilder::BuildSharpViewEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothViewEdge(), CommonVertex(), Freestyle::ViewMapBuilder::computeCusps(), Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), Freestyle::ViewMapBuilder::ComputeSweepLineIntersections(), Freestyle::computeVisibility(), Freestyle::ViewMap::CreateTVertex(), Freestyle::crossesProscenium(), Freestyle::ViewEdgeInternal::vertex_iterator_base< Traits >::decrement(), Freestyle::ViewEdgeInternal::SVertexIterator::decrement(), FEdge(), Freestyle::ViewEdge::include_in_2d_area(), Freestyle::ViewEdge::intersect_2d_area(), Freestyle::Chain::push_viewedge_back(), Freestyle::ViewEdge::shape(), Freestyle::ViewEdge::shape_id(), Freestyle::ViewShape::SplitEdge(), Freestyle::SShape::SplitEdge(), Freestyle::ViewMapTesselator::Tesselate(), Freestyle::ViewEdge::vertices_begin(), Freestyle::ViewEdge::verticesBegin(), and Freestyle::ViewEdge::verticesEnd().
|
inline |
Returns the second SVertex.
Definition at line 603 of file Silhouette.h.
Referenced by Freestyle::ViewEdgeXBuilder::BuildSharpViewEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothFEdge(), Freestyle::ViewEdgeXBuilder::BuildSmoothViewEdge(), CommonVertex(), Freestyle::ViewMapBuilder::ComputeRayCastingVisibility(), Freestyle::ViewMapBuilder::ComputeSweepLineIntersections(), Freestyle::computeVisibility(), Freestyle::crossesProscenium(), Freestyle::ViewEdgeInternal::vertex_iterator_base< Traits >::decrement(), Freestyle::ViewEdgeInternal::SVertexIterator::decrement(), FEdge(), Freestyle::ViewEdge::include_in_2d_area(), Freestyle::ViewEdgeInternal::vertex_iterator_base< Traits >::increment(), Freestyle::ViewEdgeInternal::SVertexIterator::increment(), Freestyle::ViewEdge::intersect_2d_area(), Freestyle::Chain::push_viewedge_back(), Freestyle::SShape::SplitEdge(), Freestyle::SShape::SplitEdgeIn2(), Freestyle::ViewMapTesselator::Tesselate(), and Freestyle::ViewEdge::vertices_last().
|
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.
|
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.
|
inline |
Returns a pointer to the ViewEdge to which this FEdge belongs to.
Definition at line 658 of file Silhouette.h.
Referenced by Freestyle::ViewMapBuilder::ComputeSweepLineIntersections(), Freestyle::ViewMap::CreateTVertex(), Freestyle::ViewMap::getClosestViewEdge(), Freestyle::Functions0D::getViewEdges(), Freestyle::ViewMap::InsertViewVertex(), Freestyle::ViewShape::SplitEdge(), and Freestyle::ViewEdgeInternal::SVertexIterator::u().
int Freestyle::FEdge::viewedge_nature | ( | ) | const |
Definition at line 213 of file Silhouette.cpp.
References _ViewEdge, and Freestyle::ViewEdge::getNature().
real Freestyle::FEdge::z_discontinuity | ( | ) | const |
Definition at line 279 of file Silhouette.cpp.
References _occludeeIntersection, _VertexA, _VertexB, Freestyle::Nature::BORDER, Freestyle::ViewMap::getInstance(), Freestyle::BBox< Point >::getMax(), Freestyle::BBox< Point >::getMin(), getNature(), Freestyle::ViewMap::getScene3dBBox(), Freestyle::VecMat::Vec< T, N >::norm(), occludee_empty(), Freestyle::SVertex::point3d(), result, and Freestyle::Nature::SILHOUETTE.
Referenced by Freestyle::Functions0D::ZDiscontinuityF0D::operator()(), and Freestyle::CurvePoint::z_discontinuity().
|
protected |
Definition at line 511 of file Silhouette.h.
Referenced by FEdge().
|
protected |
Definition at line 501 of file Silhouette.h.
Referenced by FEdge().
|
protected |
Definition at line 517 of file Silhouette.h.
Referenced by FEdge().
|
protected |
Definition at line 515 of file Silhouette.h.
Referenced by FEdge().
|
protected |
Definition at line 519 of file Silhouette.h.
Referenced by FEdge().
|
protected |
Definition at line 502 of file Silhouette.h.
|
protected |
Definition at line 505 of file Silhouette.h.
|
protected |
Definition at line 513 of file Silhouette.h.
Referenced by FEdge().
|
protected |
Definition at line 512 of file Silhouette.h.
Referenced by z_discontinuity().
|
protected |
Definition at line 506 of file Silhouette.h.
Referenced by FEdge().
|
protected |
Definition at line 499 of file Silhouette.h.
Referenced by Freestyle::FEdgeSharp::aFrsMaterial(), Freestyle::FEdgeSharp::bFrsMaterial(), Freestyle::FEdgeSmooth::frs_material(), shape(), shape_id(), shape_importance(), and z_discontinuity().
|
protected |
Definition at line 500 of file Silhouette.h.
Referenced by z_discontinuity().
|
protected |
Definition at line 507 of file Silhouette.h.
Referenced by FEdge(), invisibility(), occluded_shape(), occludee_empty(), occluders_begin(), occluders_empty(), occluders_end(), occluders_size(), and viewedge_nature().
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().