|
shape_doc 0.1
|
Definition at line 16 of file ssi_def.hpp.
| typedef unsigned short coord_t |
Definition at line 21 of file ssi_def.hpp.
| typedef ordered_pair<dcurve*> cpair_t |
Definition at line 193 of file ssi_dsearch.hpp.
| typedef std::map< dcurve*, links_t > curves_links_t |
Definition at line 192 of file ssi_dsearch.hpp.
Definition at line 18 of file ssi_def.hpp.
| typedef Interval<double,3> interval |
Definition at line 13 of file ssi_def.hpp.
Definition at line 191 of file ssi_dsearch.hpp.
Definition at line 14 of file ssi_dsearch.hpp.
Definition at line 15 of file ssi_dsearch.hpp.
Definition at line 21 of file ssi_qsegment.hpp.
| typedef list2_t::iterator p2ref_t |
Definition at line 16 of file ssi_dsearch.hpp.
Definition at line 185 of file ssi_dsearch.hpp.
| typedef std::priority_queue< assoc_t<pdpoint_t>, std::vector< assoc_t<pdpoint_t> >, assoc_t< pdpoint_t>::dist_cmp > pheap_t |
Definition at line 177 of file ssi_dsearch.hpp.
Definition at line 20 of file ssi_def.hpp.
Definition at line 19 of file ssi_def.hpp.
Definition at line 190 of file ssi_dsearch.hpp.
| typedef pset_t::iterator pset_iterator |
Definition at line 212 of file ssi_dsearch.hpp.
Definition at line 182 of file ssi_dsearch.hpp.
Definition at line 23 of file ssi_def.hpp.
| typedef short rid_t |
Definition at line 22 of file ssi_def.hpp.
Definition at line 184 of file ssi_dsearch.hpp.
| typedef std::priority_queue< assoc_t<sdpoint_t>, std::vector< assoc_t<sdpoint_t> >, assoc_t< sdpoint_t>::dist_cmp > sheap_t |
Definition at line 180 of file ssi_dsearch.hpp.
Definition at line 14 of file ssi_def.hpp.
Definition at line 15 of file ssi_def.hpp.
Definition at line 17 of file ssi_def.hpp.
| void mmx::shape_ssi::_link | ( | DPoint * | a, |
| DPoint * | b | ||
| ) | [inline] |
| void append | ( | dcurve * | a, |
| dcurve * | b | ||
| ) |
Definition at line 69 of file ssi_dsearch_dcurve.cpp.
References dcurve::inter, dcurve::left, dcurve::owner, dcurve::right, and dcurve::size.
Referenced by _link(), mmx::GLUE_10(), mmx::GLUE_133(), and mmx::GLUE_151().
{
a->left.splice ( a->left.end(), b->left );
a->right.splice( a->right.end(), b->right );
a->inter.splice( a->inter.end(), b->inter );
b->owner = a;
a->size += b->size;
};
| void mmx::shape_ssi::build_pheap | ( | pheap_t & | h, |
| pdpoint_t * | first, | ||
| pdpoint_t * | last, | ||
| double | prec | ||
| ) |
Definition at line 68 of file ssi_dsearch_build.cpp.
References search().
{
search(h,first,last,prec);
};
| void mmx::shape_ssi::build_pset | ( | pset_t & | s, |
| pdpoint_t * | first, | ||
| pdpoint_t * | last, | ||
| double | prec | ||
| ) |
Definition at line 73 of file ssi_dsearch_build.cpp.
References search().
Referenced by reduce2().
{
search(s,first,last,prec);
};
| void mmx::shape_ssi::build_sheap | ( | sheap_t & | h, |
| sdpoint_t * | first, | ||
| sdpoint_t * | last, | ||
| double | prec | ||
| ) |
Definition at line 78 of file ssi_dsearch_build.cpp.
References search().
Referenced by dsearch::reduce().
{
search(h,first,last,prec);
};
| void mmx::shape_ssi::container_add | ( | A & | h, |
| const B & | a | ||
| ) | [inline] |
| void mmx::shape_ssi::container_add | ( | pset_t & | s, |
| const pdassc_t & | a | ||
| ) | [inline] |
Definition at line 197 of file ssi_dsearch.hpp.
{ s.insert(a); };
| dcurve * curve | ( | pdpoint_t * | p | ) |
Definition at line 30 of file ssi_dsearch_dcurve.cpp.
References pdpoint_t::curve, and dcurve::owner.
Referenced by _link(), curves(), isfirst(), islast(), isright(), link(), satisfy_links(), search(), solve_pheap(), solve_pset(), and solve_sheap().
{
dcurve * tmp = p->curve;
while( tmp->owner != tmp ) tmp = tmp->owner;
p->curve->owner = tmp;
// p->curve = tmp;
return tmp;
};
| dcurve * curve | ( | sdpoint_t * | p | ) |
Definition at line 39 of file ssi_dsearch_dcurve.cpp.
References sdpoint_t::curve, and dcurve::owner.
{
dcurve * tmp = p->curve;
while( tmp->owner != tmp ) tmp = tmp->owner;
p->curve->owner = tmp;
// p->curve = tmp;
return tmp;
};
| cpair_t mmx::shape_ssi::curves | ( | const pdassc_t & | ass | ) | [inline] |
Definition at line 198 of file ssi_dsearch.hpp.
References curve(), and assoc_t< DPoint >::pp.
Referenced by solve_pset().
| double mmx::shape_ssi::distance | ( | DP * | pa, |
| DP * | pb | ||
| ) | [inline] |
Definition at line 39 of file ssi_dsearch.hpp.
Referenced by search().
{
double acc = 0.0;
for ( unsigned i = 0; i < 4; i++ )
acc += ((*pa)[i]-(*pb)[i])*((*pa)[i]-(*pb)[i]);
return acc;
};
| qnode* mmx::shape_ssi::down | ( | qnode * | q | ) | [inline] |
Definition at line 47 of file ssi_qnode.hpp.
References search(), qnode::umin, and qnode::vmin.
Referenced by lsegment::find_regions().
{ return search( q->umin - 1, q->vmin, q ); };
| coord_t mmx::shape_ssi::du | ( | const qnode * | q | ) | [inline] |
Definition at line 29 of file ssi_qnode.hpp.
References qnode::umax, and qnode::umin.
Referenced by qnode::convert(), qnode::split(), and unit().
{ return q->umax-q->umin; };
| coord_t mmx::shape_ssi::dv | ( | const qnode * | q | ) | [inline] |
Definition at line 30 of file ssi_qnode.hpp.
References qnode::vmax, and qnode::vmin.
Referenced by qnode::convert(), qnode::split(), and unit().
{ return q->vmax - q->vmin; };
| bool mmx::shape_ssi::empty | ( | dcurve * | c | ) | [inline] |
Definition at line 109 of file ssi_dsearch.hpp.
References dcurve::owner.
Referenced by dsearch::reduce(), and reduce2().
{ return c->owner != c; };
| void extremums | ( | pdpoint_t * | dst, |
| dcurve * | c | ||
| ) |
Definition at line 59 of file ssi_dsearch_dcurve.cpp.
References pdpoint_t::a, pdpoint_t::curve, dcurve::left, pdpoint_t::ref, and dcurve::right.
{
dst[0].curve = dst[1].curve = dst[2].curve = dst[3].curve = c;
dst[0].a = &(dst[1]); dst[1].a = &(dst[0]);
dst[0].ref = c->left.begin(); dst[1].ref = c->right.begin();
dst[2].a = &(dst[3]); dst[3].a = &(dst[2]);
dst[2].ref = --(c->left.end()); dst[3].ref = --(c->right.end());
};
| void extremums | ( | sdpoint_t * | dst, |
| dcurve * | src | ||
| ) |
Definition at line 49 of file ssi_dsearch_dcurve.cpp.
References sdpoint_t::curve, sdpoint_t::idl, sdpoint_t::idr, dcurve::left, and dcurve::right.
Referenced by dsearch::reduce(), and reduce2().
{
dst[0].curve = src;
dst[0].idl = src->left.begin();
dst[0].idr = src->right.begin();
dst[1].curve = src;
dst[1].idl = --(src->left.end());
dst[1].idr = --(src->right.end());
};
| void mmx::shape_ssi::fill_quad_box | ( | vcode_t | c, |
| aabb3 & | box, | ||
| const vector3 & | p0, | ||
| const vector3 & | p1, | ||
| const vector3 & | p2, | ||
| const vector3 & | p3 | ||
| ) | [inline] |
| bool mmx::shape_ssi::inside | ( | coord_t | u, |
| coord_t | v, | ||
| qnode * | q | ||
| ) | [inline] |
Definition at line 37 of file ssi_qnode.hpp.
References qnode::umax, qnode::umin, qnode::vmax, and qnode::vmin.
Referenced by search().
{
if ( q->umin > u ) return false;
if ( q->umax <= u ) return false;
if ( q->vmin > v ) return false;
if ( q->vmax <= v ) return false;
return true;
};
| bool mmx::shape_ssi::isextrem | ( | pdpoint_t * | p | ) | [inline] |
Definition at line 124 of file ssi_dsearch.hpp.
References isfirst(), and islast().
Referenced by satisfy_links(), solve_pheap(), and solve_sheap().
| bool mmx::shape_ssi::isextrem | ( | sdpoint_t * | p | ) | [inline] |
| bool mmx::shape_ssi::isfirst | ( | sdpoint_t * | p | ) | [inline] |
Definition at line 118 of file ssi_dsearch.hpp.
References curve(), sdpoint_t::idl, and dcurve::left.
Referenced by _link(), isextrem(), and satisfy_links().
{ return curve(p)->left.begin() == p->idl; };
| bool mmx::shape_ssi::isfirst | ( | pdpoint_t * | p | ) | [inline] |
Definition at line 121 of file ssi_dsearch.hpp.
References curve(), dcurve::left, pdpoint_t::ref, and dcurve::right.
| bool mmx::shape_ssi::islast | ( | sdpoint_t * | p | ) | [inline] |
Definition at line 119 of file ssi_dsearch.hpp.
References curve(), sdpoint_t::idl, and left().
Referenced by _link(), isextrem(), and satisfy_links().
| bool mmx::shape_ssi::islast | ( | pdpoint_t * | p | ) | [inline] |
Definition at line 122 of file ssi_dsearch.hpp.
References curve(), left(), pdpoint_t::ref, and dcurve::right.
| bool mmx::shape_ssi::isright | ( | pdpoint_t * | p | ) | [inline] |
Definition at line 131 of file ssi_dsearch.hpp.
References curve(), pdpoint_t::ref, and dcurve::right.
Referenced by link().
| bool mmx::shape_ssi::leaf | ( | qnode const *const | q | ) | [inline] |
Definition at line 35 of file ssi_qnode.hpp.
References qnode::l.
Referenced by search(), dsearch::search(), dsearch::search_f(), and dsearch::search_s().
{ return (q->l == 0); };
| qnode* mmx::shape_ssi::left | ( | qnode * | q | ) | [inline] |
Definition at line 48 of file ssi_qnode.hpp.
References search(), qnode::umin, and qnode::vmin.
Referenced by EdgeListBuilder< node_t >::faceProc(), islast(), node< _Object, _CELL >::node(), octree_node< Object, CELL >::octree_node(), voronoi2d< C, V >::run(), search(), topology2d< C, V >::subdivide(), semialgebraic2d< C, V >::subdivide(), mesher3d_shape< C, V >::subdivide(), mesher3d_curve_algebraic< C, V >::subdivide(), cell3d_surface_algebraic< C, V >::subdivide(), cell3d_algebraic_curve< C, V >::subdivide(), cell2d_voronoi_diagram< C, V >::subdivide(), cell2d_list< C, V >::subdivide(), cell2d_intersection< C, V >::subdivide(), arrangement2d< C, V >::subdivide(), and use< subdivision_def, default_env >::subdivide_node().
{ return search( q->umin, q->vmin - 1, q ); };
| void link | ( | sdpoint_t * | a, |
| sdpoint_t * | b | ||
| ) |
Definition at line 90 of file ssi_dsearch_dcurve.cpp.
References _link().
Referenced by satisfy_links(), solve_pheap(), and solve_sheap().
{ _link(a,b); };
| void link | ( | pdpoint_t * | a, |
| pdpoint_t * | b | ||
| ) |
| sdknode * make | ( | sdpoint_t * | first, |
| sdpoint_t * | last, | ||
| const dim_cmp< sdpoint_t > & | f | ||
| ) |
Definition at line 115 of file ssi_dsearch_build.cpp.
References dim_cmp< DPoint >::next().
| pdknode * make | ( | pdpoint_t ** | first, |
| pdpoint_t ** | last, | ||
| const dim_cmp< pdpoint_t > & | f | ||
| ) |
Definition at line 128 of file ssi_dsearch_build.cpp.
References make(), and dim_cmp< DPoint >::next().
| std::ostream & operator<< | ( | std::ostream & | o, |
| const qnode & | q | ||
| ) |
Definition at line 5 of file ssi_qnode.cpp.
References qnode::umax, qnode::umin, qnode::vmax, and qnode::vmin.
{
o << "[ " << q.umin << ", " << q.umax << " ] x ";
o << "[ " << q.vmin << ", " << q.vmax << " ]";
return o;
};
| std::ostream& mmx::shape_ssi::operator<< | ( | std::ostream & | o, |
| const lrnode & | l | ||
| ) |
Definition at line 9 of file ssi_qsegment.cpp.
References lrnode::lmax, lrnode::lmin, lrnode::rmax, and lrnode::rmin.
{
o << l.lmin << " " << l.lmax << " " << l.rmin << " " << l.rmax << std::endl;
return o;
};
| void prepend | ( | dcurve * | a, |
| dcurve * | b | ||
| ) |
Definition at line 78 of file ssi_dsearch_dcurve.cpp.
References dcurve::inter, dcurve::left, dcurve::owner, dcurve::right, and dcurve::size.
Referenced by _link().
{
a->left.splice( a->left.begin(), b->left );
a->right.splice( a->right.begin(), b->right );
a->inter.splice( a->inter.begin(), b->inter );
b->owner = a;
a->size += b->size;
};
| void mmx::shape_ssi::print | ( | std::ostream & | o, |
| qtree | q | ||
| ) |
| std::list< dcurve * > * reduce2 | ( | std::vector< dcurve * > * | conflicts | ) |
Definition at line 171 of file ssi_dsearch_build.cpp.
References build_pset(), empty(), extremums(), satisfy_links(), and solve_pset().
Referenced by dsearch::dsearch().
{
if ( conflicts->size() == 0 ) return 0;
unsigned i;
unsigned endsize = 4*conflicts->size();
pdpoint_t * ends = new pdpoint_t[endsize];
unsigned c = 0;
for ( i = 0; i < conflicts->size(); i++ )
{
extremums( ends + c, (*conflicts)[i] );
c+= 4;
};
pset_t s;
build_pset(s,ends, ends + endsize, 0.01 );
curves_links_t links;
solve_pset(links,s);
for ( curves_links_t::iterator it = links.begin();
it != links.end(); it++ )
satisfy_links( it );
delete[] ends;
std::list< dcurve* > * result = new std::list< dcurve * >();
for ( i = 0; i < conflicts->size() ; i++ )
{
if ( empty((*conflicts)[i]) ) delete (*conflicts)[i];
else result->push_front( (*conflicts)[i] );
};
return result;
};
| void reverse | ( | dcurve * | c | ) |
Definition at line 87 of file ssi_dsearch_dcurve.cpp.
References dcurve::inter, dcurve::left, and dcurve::right.
Referenced by _link(), mmx::GLUE_132(), mmx::GLUE_150(), and mmx::GLUE_9().
{ c->left.reverse(); c->right.reverse(); c->inter.reverse(); };
| qnode* mmx::shape_ssi::right | ( | qnode * | q | ) | [inline] |
Definition at line 49 of file ssi_qnode.hpp.
References search(), qnode::umin, and qnode::vmin.
Referenced by EdgeListBuilder< node_t >::faceProc(), lrnode::make(), node< _Object, _CELL >::node(), octree_node< Object, CELL >::octree_node(), voronoi2d< C, V >::run(), search(), topology2d< C, V >::subdivide(), semialgebraic2d< C, V >::subdivide(), mesher3d_shape< C, V >::subdivide(), mesher3d_curve_algebraic< C, V >::subdivide(), cell3d_surface_algebraic< C, V >::subdivide(), cell3d_algebraic_curve< C, V >::subdivide(), cell2d_voronoi_diagram< C, V >::subdivide(), cell2d_list< C, V >::subdivide(), cell2d_intersection< C, V >::subdivide(), arrangement2d< C, V >::subdivide(), and use< subdivision_def, default_env >::subdivide_node().
{ return search( q->umin, q->vmin + 1, q ); };
| void satisfy_links | ( | curves_links_t::iterator | it | ) |
Definition at line 99 of file ssi_dsearch_dcurve.cpp.
References curve(), isextrem(), isfirst(), islast(), and link().
Referenced by reduce2().
{
std::list< ppair_t > * l = &(it->second);
std::vector< ppair_t > starts;
std::vector< ppair_t > ends;
starts.reserve(10);
ends.reserve(10);
for ( std::list< ppair_t >::iterator p = l->begin();
p != l->end(); p ++ )
{
if ( isfirst(p->first) ) starts.push_back( *p );
else if ( islast(p->first) ) ends.push_back( *p );
};
if ( starts.size() == 1 )
{
if ( isextrem( starts[0].first ) && isextrem( starts[0].second ) )
if ( curve(starts[0].first) != curve(starts[0].second))
link( starts[0].first, starts[0].second );
};
if ( ends.size() == 1 )
{
if ( isextrem( ends[0].first ) && isextrem( ends[0].second ) )
if ( curve(ends[0].first) != curve(ends[0].second) )
link( ends[0].first, ends[0].second );
};
};
| void mmx::shape_ssi::scale | ( | vector3 * | p, |
| double | s | ||
| ) |
Definition at line 98 of file ssi_qsegment.cpp.
Referenced by qsegment::scale_conflict().
{
for ( int i = 0; i < 4; i ++ )
for ( int d = 0; d < 3; d ++ )
p[i][d] *= s;
};
| void mmx::shape_ssi::search | ( | Container & | c, |
| sdpoint_t * | first, | ||
| sdpoint_t * | last, | ||
| double | epsilonn | ||
| ) |
| void mmx::shape_ssi::search | ( | Container & | c, |
| sdknode * | curr, | ||
| sdpoint_t *const | query, | ||
| unsigned | dim, | ||
| double | eps | ||
| ) |
Definition at line 33 of file ssi_dsearch_build.cpp.
References container_add(), curve(), sdknode::data, distance(), sdknode::l, left(), sdknode::r, right(), and search().
{
if (! curr ) return;
bool left = (*query)[dim]-eps<(*(curr->data))[dim];
bool right = (*query)[dim]+eps>(*(curr->data))[dim];
if ( (left && right) && (query<curr->data) && (curve(query) != curve(curr->data)) )
{
double d = distance(curr->data,query);
if ( (d<eps) )
container_add(c,assoc_t<sdpoint_t>(query,curr->data,d));
};
if ( left ){ search( c, curr->l, query, (dim+1)%4, eps ); };
if ( right ){ search( c, curr->r, query, (dim+1)%4, eps ); };
};
| qnode * search | ( | coord_t | u, |
| coord_t | v, | ||
| qnode * | start | ||
| ) |
Definition at line 96 of file ssi_qnode.cpp.
References qnode::father, inside(), qnode::l, leaf(), and qnode::r.
Referenced by build_pheap(), build_pset(), build_sheap(), down(), left(), right(), search(), and up().
| void mmx::shape_ssi::search | ( | Container & | c, |
| pdpoint_t * | first, | ||
| pdpoint_t * | last, | ||
| double | epsilonn | ||
| ) |
Definition at line 18 of file ssi_dsearch_build.cpp.
| void mmx::shape_ssi::search | ( | Container & | c, |
| pdknode * | curr, | ||
| pdpoint_t *const | query, | ||
| unsigned | dim, | ||
| double | eps | ||
| ) |
Definition at line 51 of file ssi_dsearch_build.cpp.
References container_add(), curve(), pdknode::data, distance(), pdknode::l, left(), pdknode::r, right(), and search().
{
if (! curr ) return;
bool left = (*query)[dim]-eps<(*(curr->data))[dim];
bool right = (*query)[dim]+eps>(*(curr->data))[dim];
if ( (left && right) && (query<curr->data) && (curve(query) != curve(curr->data)) )
{
double d = distance(curr->data,query);
if ( (d<eps) )
container_add(c,assoc_t<pdpoint_t>(query,curr->data,d));
};
if ( left ){ search( c, curr->l, query, (dim+1)%4, eps ); };
if ( right ){ search( c, curr->r, query, (dim+1)%4, eps ); };
};
| void mmx::shape_ssi::shiftm | ( | vector3 * | v, |
| unsigned | sz, | ||
| const aabb3 & | box | ||
| ) |
Definition at line 90 of file ssi_qsegment.cpp.
Referenced by qsegment::scale_conflict().
{
// double m,M;
for ( vector3 * src = v; src != v+sz; src ++ )
for ( int i = 0; i < 3; (*src)[i] -= box[i].m, i ++ );
};
| pdpoint_t* mmx::shape_ssi::sibble | ( | pdpoint_t * | p | ) | [inline] |
Definition at line 111 of file ssi_dsearch.hpp.
References pdpoint_t::a.
Referenced by sibbles().
{ return p->a; };
| pdassc_t mmx::shape_ssi::sibbles | ( | const pdassc_t & | ass | ) | [inline] |
Definition at line 199 of file ssi_dsearch.hpp.
References assoc_t< DPoint >::pp, and sibble().
Referenced by solve_pset().
| void solve_pheap | ( | pheap_t & | h | ) |
Definition at line 84 of file ssi_dsearch_build.cpp.
References curve(), isextrem(), link(), and assoc_t< DPoint >::pp.
| void solve_pset | ( | curves_links_t & | links, |
| pset_t & | s | ||
| ) |
Definition at line 142 of file ssi_dsearch_build.cpp.
References curve(), curves(), sibbles(), and swap().
Referenced by reduce2().
{
while ( !s.empty() )
{
pdassc_t ass(sibbles(*(s.begin())));
pset_iterator it;
it = s.find( ass );
if( it != s.end() )
{
s.erase(s.find(ass));
cpair_t tmp (curves(*(s.begin())));
ppair_t p = (s.begin())->pp;
if ( curve(p.first) != tmp.first )
{
links[tmp.second].push_front(p);
std::swap(p.first,p.second);
links[tmp.first].push_front(p);
}
else
{
links[tmp.first].push_front(p);
std::swap(p.first,p.second);
links[tmp.second].push_front(p);
};
};
s.erase(s.begin());
};
};
| void solve_sheap | ( | sheap_t & | h | ) |
Definition at line 100 of file ssi_dsearch_build.cpp.
References curve(), isextrem(), link(), and assoc_t< DPoint >::pp.
Referenced by dsearch::reduce().
{
// dcurve * dummy_curve = new dcurve( point2(), point2(), point2(), point2(),
// point3(), point3() );
while( !h.empty() )
{
sdassc_t a = h.top();
// cout << a.d << endl;
if (( isextrem(a.pp.first) && isextrem(a.pp.second) ) &&
( curve(a.pp.first) != curve(a.pp.second) ))
link(a.pp.first,a.pp.second);
h.pop();
};
};
| void mmx::shape_ssi::space2prm | ( | vector2 & | pa, |
| vector2 & | pb, | ||
| const vector3 & | sa, | ||
| const vector3 & | sb, | ||
| const vector3 & | base, | ||
| const vector3 & | pu, | ||
| const vector3 & | pv | ||
| ) |
Definition at line 74 of file ssi_dsearch_triangle.cpp.
{
/* T(u,v) = base + u*bu +v*bv
=>
spc[0] - base[0] = delta[0] = / bu[0] bv[0]\ / u \
spc[1] - base[1] = delta[1] = | bu[1] bv[1]| | |
spc[2] - base[2] = delta[2] = \ bu[2] bv[2]/ \ v /
*/
vector3 bu;
for ( int i = 0; i < 3; i ++ ) bu[i] = pu[i]-base[i];
vector3 bv;
for ( int i = 0; i < 3; i ++ ) bv[i] = pv[i]-base[i];
double muu, mvv, muv;
muu = 0;
for ( int i = 0; i < 3; i ++ ) muu += bu[i]*bu[i];
mvv = 0;
for ( int i = 0; i < 3; i ++ ) mvv += bv[i]*bv[i];
muv = 0;
for ( int i = 0; i < 3; i ++ ) muv += bu[i]*bv[i];
double detm = muu*mvv - muv*muv;
vector3 delta;
double x, y;
for ( int k = 0; k < 3; k ++ ) delta[k] = sa[k]-base[k];
x = 0;
for ( int k = 0; k < 3; k ++ ) x += bu[k]*delta[k];
y = 0;
for ( int k = 0; k < 3; k ++ ) y += bv[k]*delta[k];
pa[0] = (mvv * x - muv * y)/detm;
pa[1] = (muu * y - muv * x)/detm;
for ( int k = 0; k < 3; k ++ ) delta[k] = sb[k]-base[k];
x = 0;
for ( int k = 0; k < 3; k ++ ) x += bu[k]*delta[k];
y = 0;
for ( int k = 0; k < 3; k ++ ) y += bv[k]*delta[k];
pb[0] = (mvv * x - muv * y)/detm;
pb[1] = (muu * y - muv * x)/detm;
};
| void mmx::shape_ssi::swap | ( | dcurve * | c | ) | [inline] |
Definition at line 129 of file ssi_dsearch.hpp.
References dcurve::left, and dcurve::right.
Referenced by link(), and solve_pset().
{ c->left.swap( c->right ); };
| coord_t mmx::shape_ssi::umax | ( | const qnode * | q | ) | [inline] |
Definition at line 32 of file ssi_qnode.hpp.
References qnode::umax.
Referenced by qsegment::qsegment(), surface_parametric< C, V >::sample(), and surface_rational< K, N >::set_range().
{ return q->umax; };
| coord_t mmx::shape_ssi::umin | ( | const qnode * | q | ) | [inline] |
Definition at line 31 of file ssi_qnode.hpp.
References qnode::umin.
Referenced by qsegment::qsegment(), surface_parametric< C, V >::sample(), and surface_rational< K, N >::set_range().
{ return q->umin; };
| bool mmx::shape_ssi::unit | ( | const qnode * | q | ) | [inline] |
| qnode* mmx::shape_ssi::up | ( | qnode * | q | ) | [inline] |
Definition at line 46 of file ssi_qnode.hpp.
References search(), qnode::umin, and qnode::vmin.
Referenced by solver_implicit< C, V >::common_edge_point(), solver_implicit< C, V >::edge_point(), and lsegment::find_regions().
{ return search( q->umin + 1, q->vmin, q ); };
| coord_t mmx::shape_ssi::vmax | ( | const qnode * | q | ) | [inline] |
Definition at line 34 of file ssi_qnode.hpp.
References qnode::vmax.
Referenced by qsegment::make(), surface_parametric< C, V >::sample(), and surface_rational< K, N >::set_range().
{ return q->vmax; };
| coord_t mmx::shape_ssi::vmin | ( | const qnode * | q | ) | [inline] |
Definition at line 33 of file ssi_qnode.hpp.
References qnode::vmin.
Referenced by qsegment::make(), surface_parametric< C, V >::sample(), and surface_rational< K, N >::set_range().
{ return q->vmin; };
| double _st |
Definition at line 127 of file ssi_lsegment.cpp.
const int dw_triangle_[] = { 2, 3, 1 } [static] |
Definition at line 11 of file ssi_dsearch_triangle.cpp.
const int up_triangle_[] = { 0, 1, 3 } [static] |
Definition at line 10 of file ssi_dsearch_triangle.cpp.