56 return dynamic_cast<NonTVertex *
>(_pViewVertex);
61 return dynamic_cast<TVertex *
>(_pViewVertex);
72 return _Shape->material();
78 return _Shape->
getId();
91 return (_FEdges[0])->qi();
99 return (_FEdges[0])->occluders_begin();
107 return (_FEdges[0])->occluders_end();
115 return (_FEdges[0])->occluders_empty();
123 return (_FEdges[0])->occluders_size();
131 return (_FEdges[0])->occludee();
139 return (_FEdges[0])->occluded_shape();
147 return (_FEdges[0])->occludee_empty();
155 return (_FEdges[0])->z_discontinuity();
173 vector<FEdge *>::const_iterator fe = _FEdges.begin(), feend = _FEdges.end();
174 for (; fe != feend; ++fe) {
175 if ((((*fe)->vertexA() ==
this) && ((*fe)->vertexB() == iVertexB)) ||
176 (((*fe)->vertexB() ==
this) && ((*fe)->vertexA() == iVertexB))) {
186 if (
this == brother) {
190 for (fe =
fedges.begin(), feend =
fedges.end(); fe != feend; ++fe) {
191 if ((((*fe)->vertexA() == brother) && ((*fe)->vertexB() == iVertexB)) ||
192 (((*fe)->vertexB() == brother) && ((*fe)->vertexA() == iVertexB))) {
204 if (iVertexB == brother) {
207 for (fe = _FEdges.begin(), feend = _FEdges.end(); fe != feend; ++fe) {
208 if ((((*fe)->vertexA() ==
this) && ((*fe)->vertexB() == brother)) ||
209 (((*fe)->vertexB() ==
this) && ((*fe)->vertexA() == brother))) {
233 float FEdge::viewedge_length()
const
242 if (aShape ==
nullptr) {
302 real bboxsize = bbox_size_vec.
norm();
311 z_discontinuity_functor<SVertex> _functor;
312 Evaluate<SVertex, z_discontinuity_functor<SVertex>>(&_functor, iCombination,
result);
317 real res = disc_vec.
norm() / bboxsize;
324 float FEdge::local_average_depth(
int iCombination)
const
327 local_average_depth_functor<SVertex> functor;
328 Evaluate(&functor, iCombination,
result);
333 float FEdge::local_depth_variance(
int iCombination)
const
337 local_depth_variance_functor<SVertex> functor;
339 Evaluate(&functor, iCombination,
result);
344 real FEdge::local_average_density(
float sigma,
int iCombination)
const
348 density_functor<SVertex> functor(sigma);
350 Evaluate(&functor, iCombination,
result);
365 return (Na + Nb) / 2.0;
368 Vec3r FEdge::curvature2d_as_vector(
int iCombination)
const
371 curvature2d_as_vector_functor<SVertex> _functor;
372 Evaluate<Vec3r, curvature2d_as_vector_functor<SVertex>>(&_functor, iCombination,
result);
376 real FEdge::curvature2d_as_angle(
int iCombination)
const
379 curvature2d_as_angle_functor<SVertex> _functor;
380 Evaluate<real, curvature2d_as_angle_functor<SVertex>>(&_functor, iCombination,
result);
Classes to define a silhouette structure.
Classes to define a View Map (ViewVertex, ViewEdge, etc.)
const Point & getMax() const
const Point & getMin() const
static int raiseException(exception_type exception=UNDEFINED)
const FrsMaterial & aFrsMaterial() const
unsigned _aFrsMaterialIndex
const FrsMaterial & bFrsMaterial() const
unsigned _bFrsMaterialIndex
unsigned _FrsMaterialIndex
const FrsMaterial & frs_material() const
bool occluders_empty() const
int occluders_size() const
occluder_container::const_iterator occluders_end() const
occluder_container::const_iterator occluders_begin() const
const SShape * occluded_shape() const
int viewedge_nature() const
Vec3r _occludeeIntersection
float shape_importance() const
Nature::EdgeNature getNature() const
real z_discontinuity() const
bool occludee_empty() const
const FrsMaterial & frs_material(unsigned i) const
const vector< FEdge * > & fedges()
ViewVertex * viewvertex()
const SShape * occluded_shape() const
virtual FEdge * getFEdge(Interface0D &)
virtual ViewVertex * castToViewVertex()
real z_discontinuity() const
occluder_container::const_iterator occluders_begin() const
bool occluders_empty() const
virtual NonTVertex * castToNonTVertex()
virtual SVertex * castToSVertex()
occluder_container::const_iterator occluders_end() const
virtual TVertex * castToTVertex()
virtual Nature::VertexNature getNature() const
int occluders_size() const
const Polygon3r & occludee() const
const Vec3r & point3d() const
bool occludee_empty() const
float shape_importance() const
virtual Nature::EdgeNature getNature() const
occluder_container::const_iterator occluders_begin() const
const bool occludee_empty() const
bool occluders_empty() const
int occluders_size() const
occluder_container::const_iterator occluders_end() const
BBox< Vec3r > getScene3dBBox() const
static ViewMap * getInstance()
virtual Nature::VertexNature getNature() const
IconTextureDrawCall normal
VecMat::Vec3< real > Vec3r
static const EdgeNature BORDER
static const VertexNature S_VERTEX
unsigned short VertexNature
static const VertexNature T_VERTEX
static const EdgeNature SILHOUETTE