www.pudn.com > nurbs++3_0_10.zip > tmeasures.C


#include 
#include 
#include 

int main(){
  int deg = 3 ;

  using namespace PLib ; 

  Vector_HPoint3Df P(11) ;

  P[0] = HPoint3Df(0,000,0,1) ;
  P[1] = HPoint3Df(0,050,0,1) ;
  P[2] = HPoint3Df(0,100,0,1) ;
  P[3] = HPoint3Df(0,150,0,1) ;
  P[4] = HPoint3Df(0,200,0,1) ;
  P[5] = HPoint3Df(0,250,0,1) ;
  P[6] = HPoint3Df(0,300,0,1) ;
  P[7] = HPoint3Df(0,350,0,1) ;
  P[8] = HPoint3Df(0,400,0,1) ;
  P[9] = HPoint3Df(0,450,0,1) ;
  P[10]= HPoint3Df(0,500,0,1) ;
  
  PlNurbsCurvef curve1 ;

  curve1.globalInterpH(P,deg) ;
  double length = curve1.length(1e-6,100);
  cout << "Length = " << length << "\n" ;

  double radius = 10; 
  double area ;

  PlNurbsSurfacef surface ;

  PlNurbsCurvef curve2;
  curve2.makeCircle(Point3Df(0,0,0),Point3Df(1,0,0),Point3Df(0,0,1),radius,0,2*M_PI) ;
  surface.sweep(curve1,curve2,10) ;
  surface.writeDisplayQUADMESH("cylinder.obj");
  surface.writeVRML("cylinder.wrl");
  area = surface.area(1e-3,25);
  cerr << "Area cylinder = " << area 
       << " ( " << 500*2*M_PI*10
       << ")" << "\n" << flush ;
  
  surface.makeSphere(Point3Df(0,0,0),radius) ;

  surface.writeDisplayQUADMESH("sphere.obj");
  area = surface.area(1e-3,25);
  cerr << "Area sphere = " << area 
       << " ( " << (4*M_PI*radius*radius)
       << ")" << "\n" ;

  surface.writeVRML("sphere.wrl",Color(0,0,255));

  return 0 ; 
}