include/shape/ssi/ssiqtsl.hpp File Reference

#include <cmath>
#include <vector>
#include <fstream>
#include <shape/ssi/ssi_def.hpp>
#include <shape/ssi/ssiqts.hpp>
#include <shape/ssi/ssiqts_tri_tri.hpp>

Go to the source code of this file.

Classes

Namespaces

Defines

Functions


Define Documentation

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

Definition at line 81 of file ssiqtsl.hpp.

#define __down__   1

Definition at line 72 of file ssiqtsl.hpp.

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

Definition at line 80 of file ssiqtsl.hpp.

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

Definition at line 76 of file ssiqtsl.hpp.

#define __ssiqtsl__triangle_triangle_case__ ( trig0,
trig1   ) 
Value:
{                                                                          \
    intersection =                                                          \
    intersectp_triangles3_isegment                                     \
    ( coplanar, seg[0], seg[1],                                         \
    trig0##triangle__(qa),                                            \
    trig1##triangle__(qb), double(1e-9) );                            \
    if ( intersection )                                                \
{                                                                      \
    if ( !coplanar )                                                     \
{                                                                  \
    SSIQTSL::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__(qa)                             \
    );                                                      \
    SSIQTSL::space2prm( seg1[0], seg1[1],                                     \
    seg[0], seg[1],                                       \
    trig1##param_triangle__(qb) );                         \
    /* 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]);                                \
    \
    double * left_uvals = ssi.smpa->m_uvals;                         \
    double * left_vvals = ssi.smpa->m_vvals;                         \
    double * righ_uvals = ssi.smpb->m_uvals;                         \
    double * righ_vvals = ssi.smpb->m_vvals;                         \
    for ( int i = 0; i < 2; i ++ )                                   \
{                                                              \
    seg0[i][0] = left_uvals[a/ssi.m] + seg0[i][0] * (left_uvals[a/ssi.m+1]-left_uvals[a/ssi.m]);\
    seg0[i][1] = left_vvals[a%ssi.m] + seg0[i][1] * (left_vvals[a%ssi.m+1]-left_vvals[a%ssi.m]);\
};                                                             \
    for ( int i = 0; i < 2; i ++ )                                   \
{                                                              \
    seg1[i][0] = righ_uvals[b/ssi.m] + seg1[i][0] * (righ_uvals[b/ssi.m+1]-righ_uvals[b/ssi.m]);\
    seg1[i][1] = righ_vvals[b%ssi.m] + seg1[i][1] * (righ_vvals[b%ssi.m+1]-righ_vvals[b%ssi.m]);\
};                                                             \
    ssi.lpts.push_back(seg0[0]);                                     \
    ssi.lpts.push_back(seg0[1]);                                     \
    ssi.rpts.push_back(seg1[0]);                                     \
    ssi.rpts.push_back(seg1[1]);                                     \
}                                                                  \
}                                                                      \
}

Definition at line 84 of file ssiqtsl.hpp.

Referenced by ssiqtsl< C, V >::solve_cf().

#define __up__   0

Definition at line 71 of file ssiqtsl.hpp.

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

Definition at line 78 of file ssiqtsl.hpp.

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

Definition at line 74 of file ssiqtsl.hpp.

#define _ij_ ( i,
 )     (i)*n+j
#define SSIQTS   ssiqts<C,V>

Definition at line 10 of file ssiqtsl.hpp.

#define SSIQTSL   ssiqtsl<C,V>

Definition at line 11 of file ssiqtsl.hpp.

#define TMPL   template<class C, class V>

Definition at line 12 of file ssiqtsl.hpp.


Generated on 6 Dec 2012 for shape by  doxygen 1.6.1