Ignore:
Timestamp:
06/20/06 13:28:51 (18 years ago)
Author:
gumbau
Message:

namespace simplif

File:
1 edited

Legend:

Unmodified
Added
Removed
  • GTP/trunk/Lib/Geom/shared/GTGeometry/src/libs/quadrics.cxx

    r774 r1025  
    11// $Id: quadrics.cxx,v 1.5 1997/10/01 14:07:28 garland Exp $ 
    22 
    3 #include "qslim.h" 
     3#include "simplif.h" 
    44#include "quadrics.h" 
    55 
     
    1616// 
    1717 
    18 using namespace qslim; 
    19  
    20 Mat4 qslim::quadrix_vertex_constraint(const Vec3& v) 
     18using namespace simplif; 
     19 
     20Mat4 simplif::quadrix_vertex_constraint(const Vec3& v) 
    2121{ 
    2222    Mat4 L(Mat4::identity); 
     
    3939// quadric" discussed in the paper. 
    4040// 
    41 Mat4 qslim::quadrix_plane_constraint(real a, real b, real c, real d) 
     41Mat4 simplif::quadrix_plane_constraint(real a, real b, real c, real d) 
    4242{ 
    4343    Mat4 K(Mat4::zero); 
     
    5454// Define some other convenient ways for constructing these plane quadrics. 
    5555// 
    56 Mat4 qslim::quadrix_plane_constraint(const Vec3& n, real d) 
    57 { 
    58     return qslim::quadrix_plane_constraint(n[X], n[Y], n[Z], d); 
    59 } 
    60  
    61 Mat4 qslim::quadrix_plane_constraint(Face& T) 
     56Mat4 simplif::quadrix_plane_constraint(const Vec3& n, real d) 
     57{ 
     58    return simplif::quadrix_plane_constraint(n[X], n[Y], n[Z], d); 
     59} 
     60 
     61Mat4 simplif::quadrix_plane_constraint(Face& T) 
    6262{ 
    6363    const Plane& p = T.plane(); 
     
    6565    p.coeffs(&a, &b, &c, &d); 
    6666 
    67     return qslim::quadrix_plane_constraint(a, b, c, d); 
    68 } 
    69  
    70 qslim::Mat4 qslim::quadrix_plane_constraint(const qslim::Vec3& v1, const qslim::Vec3& v2, const qslim::Vec3& v3) 
     67    return simplif::quadrix_plane_constraint(a, b, c, d); 
     68} 
     69 
     70simplif::Mat4 simplif::quadrix_plane_constraint(const simplif::Vec3& v1, const simplif::Vec3& v2, const simplif::Vec3& v3) 
    7171{ 
    7272    Plane P(v1,v2,v3); 
     
    7474    P.coeffs(&a, &b, &c, &d); 
    7575 
    76     return qslim::quadrix_plane_constraint(a, b, c, d); 
    77 } 
    78  
    79 real qslim::quadrix_evaluate_vertex(const Vec3& v, const Mat4& K) 
     76    return simplif::quadrix_plane_constraint(a, b, c, d); 
     77} 
     78 
     79real simplif::quadrix_evaluate_vertex(const Vec3& v, const Mat4& K) 
    8080{ 
    8181    real x=v[X], y=v[Y], z=v[Z]; 
     
    113113} 
    114114 
    115 bool qslim::check_for_discontinuity(Edge *e) 
     115bool simplif::check_for_discontinuity(Edge *e) 
    116116{ 
    117117    return is_border(e); 
    118118} 
    119119 
    120 Mat4 qslim::quadrix_discontinuity_constraint(Edge *edge, const Vec3& n) 
     120Mat4 simplif::quadrix_discontinuity_constraint(Edge *edge, const Vec3& n) 
    121121{ 
    122122    Vec3& org = *edge->org(); 
     
    128128 
    129129    real d = -n2 * org; 
    130     return qslim::quadrix_plane_constraint(n2, d); 
    131 } 
    132  
    133  
    134 Mat4 qslim::quadrix_discontinuity_constraint(Edge *edge) 
     130    return simplif::quadrix_plane_constraint(n2, d); 
     131} 
     132 
     133 
     134Mat4 simplif::quadrix_discontinuity_constraint(Edge *edge) 
    135135{ 
    136136    Mat4 D(Mat4::zero); 
     
    139139 
    140140    for(int i=0; i<faces.length(); i++) 
    141                 D += qslim::quadrix_discontinuity_constraint(edge,faces(i)->plane().normal()); 
     141                D += simplif::quadrix_discontinuity_constraint(edge,faces(i)->plane().normal()); 
    142142 
    143143    return D; 
     
    150150// 
    151151 
    152 bool qslim::quadrix_find_local_fit(const Mat4& K, 
     152bool simplif::quadrix_find_local_fit(const Mat4& K, 
    153153                            const Vec3& v1, const Vec3& v2, 
    154154                            Vec3& candidate) 
     
    159159    bool try_midpoint = placement_policy > PLACE_ENDPOINTS; 
    160160 
    161     real c1 = qslim::quadrix_evaluate_vertex(v1, K); 
    162     real c2 = qslim::quadrix_evaluate_vertex(v2, K); 
     161    real c1 = simplif::quadrix_evaluate_vertex(v1, K); 
     162    real c2 = simplif::quadrix_evaluate_vertex(v2, K); 
    163163    real c3; 
    164     if( try_midpoint ) c3 = qslim::quadrix_evaluate_vertex(v3, K); 
     164    if( try_midpoint ) c3 = simplif::quadrix_evaluate_vertex(v3, K); 
    165165 
    166166    if( c1<c2 ) 
     
    182182} 
    183183 
    184 bool qslim::quadrix_find_line_fit(const Mat4& Q, 
     184bool simplif::quadrix_find_line_fit(const Mat4& Q, 
    185185                           const Vec3& v1, const Vec3& v2, 
    186186                           Vec3& candidate) 
     
    206206} 
    207207 
    208 bool qslim::quadrix_find_best_fit(const Mat4& Q, Vec3& candidate) 
     208bool simplif::quadrix_find_best_fit(const Mat4& Q, Vec3& candidate) 
    209209{ 
    210210    Mat4 K = Q; 
     
    237237#include <assert.h> 
    238238 
    239 real qslim::quadrix_pair_target(const Mat4& Q, 
     239real simplif::quadrix_pair_target(const Mat4& Q, 
    240240                         Vertex *v1, 
    241241                         Vertex *v2, 
     
    257257        { 
    258258            candidate = *v1; 
    259             return qslim::quadrix_evaluate_vertex(candidate, Q); 
     259            return simplif::quadrix_evaluate_vertex(candidate, Q); 
    260260        } 
    261261        else if( c2 > c1 ) 
    262262        { 
    263263            candidate = *v2; 
    264             return qslim::quadrix_evaluate_vertex(candidate, Q); 
     264            return simplif::quadrix_evaluate_vertex(candidate, Q); 
    265265        } 
    266266        else if( c1>0 && policy>PLACE_LINE ) 
     
    273273    { 
    274274    case PLACE_OPTIMAL: 
    275         if( qslim::quadrix_find_best_fit(Q, candidate) ) 
     275        if( simplif::quadrix_find_best_fit(Q, candidate) ) 
    276276            break; 
    277277 
    278278    case PLACE_LINE: 
    279         if( qslim::quadrix_find_line_fit(Q, *v1, *v2, candidate) ) 
     279        if( simplif::quadrix_find_line_fit(Q, *v1, *v2, candidate) ) 
    280280            break; 
    281281 
    282282    default: 
    283                 qslim::quadrix_find_local_fit(Q, *v1, *v2, candidate); 
     283                simplif::quadrix_find_local_fit(Q, *v1, *v2, candidate); 
    284284                break; 
    285285    } 
    286286 
    287     return qslim::quadrix_evaluate_vertex(candidate, Q); 
    288 } 
     287    return simplif::quadrix_evaluate_vertex(candidate, Q); 
     288} 
Note: See TracChangeset for help on using the changeset viewer.