42 return dynamic_cast<NonTVertex *
>(_pViewVertex);
47 return dynamic_cast<TVertex *
>(_pViewVertex);
58 return _Shape->material();
64 return _Shape->
getId();
77 return (_FEdges[0])->qi();
85 return (_FEdges[0])->occluders_begin();
93 return (_FEdges[0])->occluders_end();
101 return (_FEdges[0])->occluders_empty();
109 return (_FEdges[0])->occluders_size();
117 return (_FEdges[0])->occludee();
125 return (_FEdges[0])->occluded_shape();
133 return (_FEdges[0])->occludee_empty();
141 return (_FEdges[0])->z_discontinuity();
159 vector<FEdge *>::const_iterator fe = _FEdges.begin(), feend = _FEdges.end();
160 for (; fe != feend; ++fe) {
161 if ((((*fe)->vertexA() ==
this) && ((*fe)->vertexB() == iVertexB)) ||
162 (((*fe)->vertexB() ==
this) && ((*fe)->vertexA() == iVertexB))) {
172 if (
this == brother) {
176 for (fe =
fedges.begin(), feend =
fedges.end(); fe != feend; ++fe) {
177 if ((((*fe)->vertexA() == brother) && ((*fe)->vertexB() == iVertexB)) ||
178 (((*fe)->vertexB() == brother) && ((*fe)->vertexA() == iVertexB))) {
190 if (iVertexB == brother) {
193 for (fe = _FEdges.begin(), feend = _FEdges.end(); fe != feend; ++fe) {
194 if ((((*fe)->vertexA() ==
this) && ((*fe)->vertexB() == brother)) ||
195 (((*fe)->vertexB() ==
this) && ((*fe)->vertexA() == brother))) {
219 float FEdge::viewedge_length()
const
228 if (aShape ==
nullptr) {
288 real bboxsize = bbox_size_vec.
norm();
297 z_discontinuity_functor<SVertex> _functor;
298 Evaluate<SVertex, z_discontinuity_functor<SVertex>>(&_functor, iCombination,
result);
303 real res = disc_vec.
norm() / bboxsize;
310 float FEdge::local_average_depth(
int iCombination)
const
313 local_average_depth_functor<SVertex> functor;
314 Evaluate(&functor, iCombination,
result);
319 float FEdge::local_depth_variance(
int iCombination)
const
323 local_depth_variance_functor<SVertex> functor;
325 Evaluate(&functor, iCombination,
result);
330 real FEdge::local_average_density(
float sigma,
int iCombination)
const
334 density_functor<SVertex> functor(sigma);
336 Evaluate(&functor, iCombination,
result);
351 return (Na + Nb) / 2.0;
354 Vec3r FEdge::curvature2d_as_vector(
int iCombination)
const
357 curvature2d_as_vector_functor<SVertex> _functor;
358 Evaluate<Vec3r, curvature2d_as_vector_functor<SVertex>>(&_functor, iCombination,
result);
362 real FEdge::curvature2d_as_angle(
int iCombination)
const
365 curvature2d_as_angle_functor<SVertex> _functor;
366 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