shape_doc 0.1
/Users/mourrain/Devel/mmx/shape/include/shape/ssiqts.hpp
Go to the documentation of this file.
00001 #ifndef SYNAPS_SHAPE_SSIQTS_H
00002 #define SYNAPS_SHAPE_SSIQTS_H
00003 
00004 #include <shape/surface_parametric.hpp>
00005 #include <shape/fxv.hpp>
00006 #include <iostream>
00007 
00008 #define ParametricSurface shape::surface_parametric<double>
00009 
00010 namespace mmx {
00011 
00012 
00013 struct SSIQTS 
00014 {
00015   typedef fxv<double,3> vector3;
00016   typedef double aabb3 [3][2];
00017   typedef double ipoint [7];
00018 
00019   int udeg;
00020   int vdeg;
00021   int m;
00022   
00023   struct sample
00024   {
00025 
00026     double  * m_uvals;
00027     double  * m_vvals;
00028     vector3 * m_svals;
00029     int       m_nrows;
00030     int       m_ncols;
00031     inline       vector3& operator[]( int i )       { return m_svals[i]; };
00032     inline const vector3& operator[]( int i ) const { return m_svals[i]; };
00033     sample( ParametricSurface * s, int m, int n );
00034     ~sample();
00035   };
00036   
00037   sample * smpa;
00038   sample * smpb;
00039   
00040   aabb3  * boxa;
00041   aabb3  * boxb;
00042 
00043   int * m_bcf;
00044   int * m_ecf;
00045 
00046   void cfprint( std::ostream& gpr, std::ostream& gpl );
00047 
00048   SSIQTS( ParametricSurface * srfa,  ParametricSurface * srfb, int n, int degu, int degv );
00049   ~SSIQTS();
00050 
00051 };
00052 
00053 } //namespace mmx
00054 
00055 # undef ParametricSurface
00056 # endif