49 bool begin =
false, last =
false;
105 occluder_container::const_iterator oitend = ve1->
occluders_end();
107 for (; oit != oitend; ++oit) {
108 oOccluders.insert((*oit));
111 if (ve2 !=
nullptr) {
114 for (; oit != oitend; ++oit) {
115 oOccluders.insert((*oit));
151 if (AB.
norm() != 0) {
155 if (BC.
norm() != 0) {
187 if (AB.
norm() != 0) {
191 if (BC.
norm() != 0) {
210 while ((!tmp2.isEnd()) && (
count < 3)) {
234 Vec2r B(
v->getProjectedX(),
v->getProjectedY());
238 Vec2r N1(-AB[1], AB[0]);
239 if (N1.
norm() != 0) {
242 Vec2r N2(-BC[1], BC[0]);
243 if (N2.
norm() != 0) {
246 if ((N1.
norm() == 0) && (N2.
norm() == 0)) {
247 Exception::raiseException();
251 double cosin = N1 * N2;
267 if (fe2 !=
nullptr) {
279 Vec2f n1(e1[1], -e1[0]);
281 if (fe2 !=
nullptr) {
283 Vec2f n2(e2[1], -e2[0]);
295 if (fe1 ==
nullptr) {
306 return sshape->material();
322 unsigned int qi1, qi2;
324 if (ve2 !=
nullptr) {
328 cout <<
"QuantitativeInvisibilityF0D: ambiguous evaluation for point " << iter->
getId()
343 if (ve2 !=
nullptr) {
352 set<ViewShape *> occluders;
356 for (set<ViewShape *>::iterator it = occluders.begin(), itend = occluders.end(); it != itend;
Functions taking 0D input.
Classes to define a View Map (ViewVertex, ViewEdge, etc.)
ATTR_WARN_UNUSED_RESULT const BMVert * v
ViewEdge * viewedge() const
Vec3r orientation2d() const
real z_discontinuity() const
virtual bool isBegin() const
virtual real getProjectedX() const
virtual real getZ() const
virtual FEdge * getFEdge(Interface0D &)
virtual real getY() const
virtual real getX() const
virtual real getProjectedY() const
Vec< T, N > & normalize()
virtual Nature::EdgeNature getNature() const
occluder_container::const_iterator occluders_begin() const
occluder_container::const_iterator occluders_end() const
ViewShape * getShapeF0D(Interface0DIterator &it)
ViewShape * getOccludeeF0D(Interface0DIterator &it)
void getFEdges(Interface0DIterator &it, FEdge *&fe1, FEdge *&fe2)
FEdge * getFEdge(Interface0D &it1, Interface0D &it2)
void getOccludersF0D(Interface0DIterator &it, set< ViewShape * > &oOccluders)
void getViewEdges(Interface0DIterator &it, ViewEdge *&ve1, ViewEdge *&ve2)
VecMat::Vec2< float > Vec2f
VecMat::Vec3< real > Vec3r
unsigned short EdgeNature
INLINE Rall1d< T, V, S > acos(const Rall1d< T, V, S > &x)
SymEdge< T > * prev(const SymEdge< T > *se)