shape_doc 0.1
/Users/mourrain/Devel/mmx/shape/src/ssi_dsearch_triangle.cpp File Reference

Go to the source code of this file.

Namespaces

Defines

Functions

Variables


Define Documentation

#define __convert_order__ (   i,
  point 
)    { point[(i+1)%2] = 1.0-point[(i+1)%2]; }

Definition at line 23 of file ssi_dsearch_triangle.cpp.

#define __down__   1

Definition at line 14 of file ssi_dsearch_triangle.cpp.

Referenced by dsearch::push().

#define __down__param_triangle__ (   q)    q[1],q[0],q[2]

Definition at line 22 of file ssi_dsearch_triangle.cpp.

#define __down__triangle__ (   q)    q[0],q[1],q[2]

Definition at line 18 of file ssi_dsearch_triangle.cpp.

#define __triangle_triangle_case__ (   trig0,
  trig1 
)
Value:
{                                                                     \
      if ( geom::intersectp_triangles3_isegment                           \
           ( coplanar, seg[0], seg[1],                                    \
             trig0##triangle__(a),                                        \
             trig1##triangle__(b), point3::value_type(1e-12) ))           \
        {                                                                 \
          if ( !coplanar )                                                \
            {                                                             \
              space2prm(/* points in parameter space */                    \
                     seg0[0], seg0[1],                                    \
                     /* corresponding points in R3 */                     \
                      seg[0],  seg[1],                                    \
                     /* parametric plane = base + 2 vectors  */           \
                     trig0##param_triangle__(a)                           \
                     );                                                   \
              space2prm( seg1[0], seg1[1],                                 \
                        seg[0], seg[1],                                   \
                        trig1##param_triangle__(b) );                     \
              /* retrieve the correct offset coordinates in quad */       \
            __convert_order__(trig0,seg0[0]);                             \
            __convert_order__(trig0,seg0[1]);                             \
            __convert_order__(trig1,seg1[0]);                             \
            __convert_order__(trig1,seg1[1]);                             \
            }                                                             \
        else                                                              \
          {\
            seg0[0][0] = 1.0/3.0; seg0[0][1] = 1.0/3.0;                   \
            seg0[1][0] = 1.0/3.0; seg0[1][0] = 1.0/3.0;                   \
            seg1[0][0] = 1.0/3.0; seg1[0][1] = 1.0/3.0;                   \
            seg1[1][0] = 1.0/3.0; seg1[1][1] = 1.0/3.0;                   \
            __convert_order__(trig0,seg0[0]);                             \
            __convert_order__(trig0,seg0[1]);                             \
            __convert_order__(trig1,seg1[0]);                             \
            __convert_order__(trig1,seg1[1]);                             \
          };                                                              \
            {                                                             \
              f->convert(seg0,this,2);                                    \
              s->convert(seg1,this,2);                                    \
              push( seg0[0], seg0[1], seg1[0], seg1[1], seg[0],seg[1] );  \
            }                                                             \
        };                                                                \
    }                                                                     \

Definition at line 25 of file ssi_dsearch_triangle.cpp.

Referenced by dsearch::push().

#define __up__   0

Definition at line 13 of file ssi_dsearch_triangle.cpp.

Referenced by dsearch::push().

#define __up__param_triangle__ (   q)    q[3],q[2],q[0]

Definition at line 20 of file ssi_dsearch_triangle.cpp.

#define __up__triangle__ (   q)    q[0],q[3],q[2]

Definition at line 16 of file ssi_dsearch_triangle.cpp.

#define SHIFT   3

Definition at line 6 of file ssi_dsearch_triangle.cpp.

Referenced by dsearch::push().