shape_doc 0.1
/Users/mourrain/Devel/mmx/shape/include/shape/ssi_qsegment.hpp
Go to the documentation of this file.
00001 #ifndef SYNAPS_SHAPE_GAIA_QSEGMENT_H
00002 #define SYNAPS_SHAPE_GAIA_QSEGMENT_H
00003 
00004 #include <shape/ssi_lsegment.hpp>
00005 #include <shape/ssi_qnode.hpp>
00006 
00007 #define ParametricSurface shape::surface_parametric<double>
00008 
00009 namespace mmx {
00010 
00011 namespace shape_ssi {
00012   
00013   struct lrnode
00014   {
00015     coord_t umin, umax, lmin, rmin, lmax, rmax;
00016     lrnode *rs, *ls;
00017     static lrnode * alloc( unsigned size );
00018     static lrnode * make( lrnode * data, unsigned size );
00019   };
00020   
00021   typedef lrnode * lrtree;
00022   
00023   struct qsegment : public lsegment
00024   {
00025     std::vector<qtree> trees;
00026     void scale_conflict( vector3 a[4], vector3 b[4], qtree qa, qtree qb );
00027     void make_box( rid_t id, qnode * q );
00028     qnode * make( rid_t id, coord_t vmin, coord_t vmax, lrnode * lr );
00029     inline unsigned size() const { return trees.size(); };
00030     inline qtree operator[]( unsigned i ) { return trees[i]; };
00031     double _qt;
00032     qsegment( const ParametricSurface * s, unsigned w, unsigned h  );
00033     ~qsegment(); 
00034     
00035     
00036   };
00037   
00038 };
00039 } //namespace mmx
00040 
00041 # undef ParametricSurface
00042 # endif
00043 
00044 
00045 
00046 
00047 
00048