DGtal  0.9.3
Functions
testBall3DSurface.cpp File Reference
#include <iostream>
#include "DGtal/shapes/parametric/Ball3D.h"
#include "DGtal/helpers/StdDefs.h"
#include "DGtal/io/Color.h"
Include dependency graph for testBall3DSurface.cpp:

Go to the source code of this file.

Functions

int main (int, char **)
 

Detailed Description

This program is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Author
Anis Benyoub (anis..nosp@m.beny.nosp@m.oub@i.nosp@m.nsa-.nosp@m.lyon..nosp@m.fr )
Date
2012/°6/05

Functions for testing class Ball3D.

This file is part of the DGtal library.

Definition in file testBall3DSurface.cpp.

Function Documentation

◆ main()

int main ( int  ,
char **   
)

Definition at line 45 of file testBall3DSurface.cpp.

References DGtal::Trace::beginBlock(), DGtal::Trace::endBlock(), DGtal::Trace::info(), test(), and DGtal::trace.

46 {
47 
48 
49 
50  // -------------------------------------------------------------------------- Type declaring
52  typedef Ball3D<Space> EuclideanShape;
53 
54  bool test = true;
55 
56  // -------------------------------------------------------------------------- Creating the shape
57  double radius = 10;
58  RealPoint c1(0, 0, 0 );
59  EuclideanShape ball1( c1, radius );
60 
61  trace.beginBlock("Arc length computing");
62  double arcExp = ball1.arclength( make_pair(0.0,0.0), make_pair(0.0,M_PI) ,500 );
63  double arcTheo = M_PI*radius;
64  trace.info() <<"Computed arc length: "<< arcExp <<endl;
65  trace.info() << "Theoric arc length: "<< arcTheo << endl;
66  if(fabs(arcTheo- arcExp) < 0.1)
67  {
68  trace.info() <<"The arc length has a good value"<<endl;
69  }
70  else
71  {
72  test=false;
73  }
74  trace.endBlock();
75 
76  trace.beginBlock("Surface length computing");
77  double surfaceExp = ball1.surfacelength( make_pair(0.0,0.0), make_pair(M_PI*2,M_PI) ,500 );
78  double surfaceTheo = 4.0*M_PI*radius*radius;
79  trace.info() <<"Computed surface length: "<< surfaceExp <<endl;
80  trace.info() << "Theoric surface length: "<< surfaceTheo << endl;
81  if(fabs(surfaceExp- surfaceTheo) < 0.1)
82  {
83  trace.info() <<"The surface has a good value"<<endl;
84  }
85  else
86  {
87  test=false;
88  }
89  trace.endBlock();
90 
91 
92  if (test)
93  return 0;
94  else
95  return -1;
96 }
void beginBlock(const std::string &keyword="")
Trace trace
Definition: Common.h:137
double endBlock()
Aim: Implements basic operations that will be used in Point and Vector classes.
Definition: PointVector.h:141
std::ostream & info()
Aim: Model of the concept StarShaped3D represents any Sphere in the space.
Definition: Ball3D.h:60
bool test(const I &itb, const I &ite)