33 if (!it.isBegin() && !
next.isEnd()) {
42 fe = it->getFEdge(*tmp);
46 fe = it->getFEdge(*tmp);
53 bool begin =
false, last =
false;
67 fe1 = it->getFEdge(*
next);
76 fe2 = it->getFEdge(*
next);
109 occluder_container::const_iterator oitend = ve1->
occluders_end();
111 for (; oit != oitend; ++oit) {
112 oOccluders.insert(*oit);
115 if (ve2 !=
nullptr) {
118 for (; oit != oitend; ++oit) {
119 oOccluders.insert(*oit);
155 if (AB.
norm() != 0) {
159 if (BC.
norm() != 0) {
163 if (result.norm() != 0) {
191 if (AB.
norm() != 0) {
195 if (BC.
norm() != 0) {
199 if (result.norm() != 0) {
214 while (!tmp2.isEnd() && (
count < 3)) {
237 Vec2r A(prev->getProjectedX(), prev->getProjectedY());
238 Vec2r B(
v->getProjectedX(),
v->getProjectedY());
242 Vec2r N1(-AB[1], AB[0]);
243 if (N1.
norm() != 0) {
246 Vec2r N2(-BC[1], BC[0]);
247 if (N2.
norm() != 0) {
250 if ((N1.
norm() == 0) && (N2.
norm() == 0)) {
255 double cosin = N1 * N2;
262 result = acos(cosin);
271 if (fe2 !=
nullptr) {
283 Vec2f n1(e1[1], -e1[0]);
285 if (fe2 !=
nullptr) {
287 Vec2f n2(e2[1], -e2[0]);
299 if (fe1 ==
nullptr) {
310 return sshape->material();
318 result = vshape->
getId();
328 if (ve2 !=
nullptr) {
332 cout <<
"QuantitativeInvisibilityF0D: ambiguous evaluation for point " << iter->
getId()
347 if (ve2 !=
nullptr) {
356 set<ViewShape *> occluders;
360 for (set<ViewShape *>::iterator it = occluders.begin(), itend = occluders.end(); it != itend;
363 result.push_back(*it);
Functions taking 0D input.
Classes to define a View Map (ViewVertex, ViewEdge, etc.)
ATTR_WARN_UNUSED_RESULT const BMVert * v
static int raiseException(exception_type exception=UNDEFINED)
ViewEdge * viewedge() const
Vec3r orientation2d() const
real z_discontinuity() const
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
int operator()(Interface0DIterator &iter)
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