yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #02677
[Branch ~yade-dev/yade/trunk] Rev 1895: 1. Move lib/triangulation stuff to CGT namespace as suggested by Bruno in https://lists.launchpad...
------------------------------------------------------------
revno: 1895
committer: Václav Šmilauer <eudoxos@xxxxxxxx>
branch nick: trunk
timestamp: Sun 2009-12-13 20:58:33 +0100
message:
1. Move lib/triangulation stuff to CGT namespace as suggested by Bruno in https://lists.launchpad.net/yade-dev/msg02658.html
modified:
lib/triangulation/KinematicLocalisationAnalyser.cpp
lib/triangulation/KinematicLocalisationAnalyser.hpp
lib/triangulation/Operations.cpp
lib/triangulation/Operations.h
lib/triangulation/RegularTriangulation.cpp
lib/triangulation/RegularTriangulation.h
lib/triangulation/Tenseur3.cpp
lib/triangulation/Tenseur3.h
lib/triangulation/Tesselation.cpp
lib/triangulation/Tesselation.h
lib/triangulation/TesselationWrapper.cpp
lib/triangulation/TesselationWrapper.h
lib/triangulation/TriaxialState.cpp
lib/triangulation/TriaxialState.h
lib/triangulation/def_types.h
lib/triangulation/test.cpp
pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.cpp
pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.hpp
pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.cpp
pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.hpp
--
lp:yade
https://code.launchpad.net/~yade-dev/yade/trunk
Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription.
=== modified file 'lib/triangulation/KinematicLocalisationAnalyser.cpp'
--- lib/triangulation/KinematicLocalisationAnalyser.cpp 2009-01-05 11:25:40 +0000
+++ lib/triangulation/KinematicLocalisationAnalyser.cpp 2009-12-13 19:58:33 +0000
@@ -13,10 +13,14 @@
#include "Tesselation.h"
#include "KinematicLocalisationAnalyser.hpp"
#include "TriaxialState.h"
+
+
#include <iostream>
#include <fstream>
#include <sstream>
//#include <utility>
+
+namespace CGT {
int n_debug = 0;
//cerr << "n_debug=" << n_debug++ << endl; /// DEBUG LINE ///
@@ -1037,3 +1041,4 @@
+} // namespace CGT
=== modified file 'lib/triangulation/KinematicLocalisationAnalyser.hpp'
--- lib/triangulation/KinematicLocalisationAnalyser.hpp 2009-01-27 02:19:40 +0000
+++ lib/triangulation/KinematicLocalisationAnalyser.hpp 2009-12-13 19:58:33 +0000
@@ -18,6 +18,7 @@
#include "Tenseur3.h"
//class TriaxialState;
+namespace CGT {
#define SPHERE_DISCRETISATION 20; //number of "teta" intervals on the unit sphere
#define LINEAR_DISCRETISATION 200; //number of intervals on segments like [UNmin,UNmax]
@@ -125,3 +126,4 @@
};
+} // namespace CGT
\ No newline at end of file
=== modified file 'lib/triangulation/Operations.cpp'
--- lib/triangulation/Operations.cpp 2008-04-17 15:14:11 +0000
+++ lib/triangulation/Operations.cpp 2009-12-13 19:58:33 +0000
@@ -1,6 +1,8 @@
//#pragma once
#include "Operations.h"
+
+namespace CGT {
Plan PlanRadical (const Sphere& S1, const Sphere& S2)
@@ -35,5 +37,6 @@
std::cout << "3 plans sans point d'intersection!!!!!!!!!";
exit(0);}
}
-
+
+} //namespace CGT
=== modified file 'lib/triangulation/Operations.h'
--- lib/triangulation/Operations.h 2008-04-17 15:14:11 +0000
+++ lib/triangulation/Operations.h 2009-12-13 19:58:33 +0000
@@ -5,6 +5,7 @@
#include "CGAL/intersections.h"
#include "CGAL/squared_distance_3.h"
+namespace CGT {
// Types de sortie
typedef double Tenseur [9];
@@ -20,5 +21,6 @@
// Opérations sur les cellules
+} //namespace CGT
=== modified file 'lib/triangulation/RegularTriangulation.cpp'
--- lib/triangulation/RegularTriangulation.cpp 2008-04-17 15:14:11 +0000
+++ lib/triangulation/RegularTriangulation.cpp 2009-12-13 19:58:33 +0000
@@ -2,6 +2,8 @@
#include "RegularTriangulation.h"
+
+namespace CGT {
typedef Real* p_Real;
@@ -203,3 +205,5 @@
}
else std::cout << "Real** ppCoordonnees doit �tre d�fini " << std::endl;
}
+
+} //namespace CGT
=== modified file 'lib/triangulation/RegularTriangulation.h'
--- lib/triangulation/RegularTriangulation.h 2008-04-17 15:14:11 +0000
+++ lib/triangulation/RegularTriangulation.h 2009-12-13 19:58:33 +0000
@@ -4,6 +4,8 @@
#include "stdafx.h"
#include "def_types.h"
#include <cassert>
+
+namespace CGT {
typedef Vertex_Info vertex_info; //d�fini le type des infos li�es � chaque sommet
typedef Cell_Info cell_info; //d�fini le type des infos li�es � chaque cellule
@@ -50,3 +52,4 @@
int Regular_Triangule( );
void Delete_liste_edges (Real** ppCoordonnes, long N_edges=0);
+} // namespace CGT
\ No newline at end of file
=== modified file 'lib/triangulation/Tenseur3.cpp'
--- lib/triangulation/Tenseur3.cpp 2008-07-16 12:17:30 +0000
+++ lib/triangulation/Tenseur3.cpp 2009-12-13 19:58:33 +0000
@@ -4,8 +4,9 @@
#include "stdafx.h"
#include "Tenseur3.h"
#include "def_types.h" //pour d�finition de la classe "Vecteur"
-
+
using namespace std;
+namespace CGT {
//const Tenseur3 NULL_TENSEUR3 = Tenseur3(0,0,0,0,0,0,0,0,0);
@@ -404,3 +405,5 @@
// return os;
// }
+
+} // namespace CGT
=== modified file 'lib/triangulation/Tenseur3.h'
--- lib/triangulation/Tenseur3.h 2008-07-16 12:17:30 +0000
+++ lib/triangulation/Tenseur3.h 2009-12-13 19:58:33 +0000
@@ -5,6 +5,8 @@
#include "def_types.h" //pour d�finition de la classe "Vecteur"
#include <iostream>
#include <fstream>
+
+namespace CGT {
using namespace std;
@@ -119,5 +121,6 @@
static const Tenseur3 NULL_TENSEUR3 ( 0,0,0,0,0,0,0,0,0 );
+}
#endif
=== modified file 'lib/triangulation/Tesselation.cpp'
--- lib/triangulation/Tesselation.cpp 2008-11-17 15:41:43 +0000
+++ lib/triangulation/Tesselation.cpp 2009-12-13 19:58:33 +0000
@@ -4,6 +4,8 @@
using namespace std;
+
+namespace CGT {
Tesselation::Tesselation ( void )
{
@@ -515,3 +517,5 @@
// {
// return vertexHandles[id]->info().v();
// }
+
+} //namespace CGT
=== modified file 'lib/triangulation/Tesselation.h'
--- lib/triangulation/Tesselation.h 2008-04-17 15:14:11 +0000
+++ lib/triangulation/Tesselation.h 2009-12-13 19:58:33 +0000
@@ -15,6 +15,7 @@
#include "RegularTriangulation.h"
#include "stdafx.h"
+namespace CGT {
// Classe Tesselation, contient les fonctions permettant de calculer la Tessalisation
// d'une RTriangulation et de stocker les centres dans chacune de ses cellules
@@ -99,4 +100,6 @@
};
+
+} // namespace CGT
=== modified file 'lib/triangulation/TesselationWrapper.cpp'
--- lib/triangulation/TesselationWrapper.cpp 2009-01-05 11:25:40 +0000
+++ lib/triangulation/TesselationWrapper.cpp 2009-12-13 19:58:33 +0000
@@ -17,6 +17,8 @@
using namespace std;
+namespace CGT {
+
static Point Pmin;
static Point Pmax;
static double inf = 1e10;
@@ -263,4 +265,6 @@
rad_divided = false;
bounded = false;
cerr << " end remove bounding planes " << endl;
-}
+}
+
+} //namespace CGT
=== modified file 'lib/triangulation/TesselationWrapper.h'
--- lib/triangulation/TesselationWrapper.h 2009-01-05 11:25:40 +0000
+++ lib/triangulation/TesselationWrapper.h 2009-12-13 19:58:33 +0000
@@ -18,7 +18,7 @@
#include <utility>
-
+namespace CGT {
class Tesselation;
@@ -63,4 +63,5 @@
void nextFacet (std::pair<unsigned int, unsigned int>& facet);
};
+} // namespace CGT
#endif
=== modified file 'lib/triangulation/TriaxialState.cpp'
--- lib/triangulation/TriaxialState.cpp 2008-07-16 12:17:30 +0000
+++ lib/triangulation/TriaxialState.cpp 2009-12-13 19:58:33 +0000
@@ -16,6 +16,8 @@
#include "../vueGL/vue3d.h"
#endif
+namespace CGT {
+
TriaxialState::TriaxialState(void) : NO_ZERO_ID(true), filter_distance(-0.1), tesselated(false) {}
TriaxialState::~TriaxialState(void)
@@ -25,7 +27,7 @@
if (*it) delete *it;}
}
-Real TriaxialState::find_parameter (char* parameter_name, ifstream& file)
+Real TriaxialState::find_parameter (const char* parameter_name, ifstream& file)
{
/*long starting_position = file.tellg();
file.seekg (0, ios::end);
@@ -64,7 +66,7 @@
return value;
}
-Real TriaxialState::find_parameter (char* parameter_name, char* filename)
+Real TriaxialState::find_parameter (const char* parameter_name, const char* filename)
{
ifstream statefile (filename);
return find_parameter(parameter_name, statefile);
@@ -312,3 +314,5 @@
Statefile.close();
return true;
}
+
+} // namespace CGT
=== modified file 'lib/triangulation/TriaxialState.h'
--- lib/triangulation/TriaxialState.h 2008-07-16 12:17:30 +0000
+++ lib/triangulation/TriaxialState.h 2009-12-13 19:58:33 +0000
@@ -15,7 +15,7 @@
#include "Tesselation.h"
#include <vector>
-
+namespace CGT{
using namespace std;
class TriaxialState
@@ -66,8 +66,8 @@
bool inside(Real x, Real y, Real z);
bool inside(Vecteur v);
bool inside(Point p);
- static Real find_parameter (char* parameter_name, char* filename);
- static Real find_parameter (char* parameter_name, ifstream& file);
+ static Real find_parameter (const char* parameter_name, const char* filename);
+ static Real find_parameter (const char* parameter_name, ifstream& file);
void reset (void);
GrainIterator grains_begin (void);
@@ -98,4 +98,5 @@
};
+} // namespace CGT
#endif
=== modified file 'lib/triangulation/def_types.h'
--- lib/triangulation/def_types.h 2008-04-17 15:14:11 +0000
+++ lib/triangulation/def_types.h 2009-12-13 19:58:33 +0000
@@ -2,6 +2,7 @@
#ifndef _Def_types
#define _Def_types
+
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
@@ -13,14 +14,21 @@
#include <CGAL/Delaunay_triangulation_3.h>
#include <CGAL/circulator.h>
#include <CGAL/number_utils.h>
-
-
+
+#include <boost/static_assert.hpp>
+
+
+
+namespace CGT{
+
typedef CGAL::Cartesian<double> K ;
typedef CGAL::Regular_triangulation_euclidean_traits_3<K> Traits;
typedef K::Point_3 Point;
//typedef Traits::Bare_point Point;
typedef Traits::Vector_3 Vecteur;
typedef Traits::Segment_3 Segment;
+/* compilation inside yade: check that Real in yade is the same as Real we will define; otherwise it might make things go wrong badly (perhaps) */
+BOOST_STATIC_ASSERT(sizeof(Traits::RT)==sizeof(Real));
typedef Traits::RT Real; //Dans cartesian, RT = FT
typedef Traits::Weighted_point Sphere;
typedef Traits::Line_3 Droite;
@@ -85,4 +93,6 @@
+} // namespace CGT
+
#endif
=== modified file 'lib/triangulation/test.cpp'
--- lib/triangulation/test.cpp 2009-12-03 09:15:32 +0000
+++ lib/triangulation/test.cpp 2009-12-13 19:58:33 +0000
@@ -5,6 +5,7 @@
#include <iostream>
using namespace std;
+using namespace CGT;
int main ( int argc, char *argv[ ], char *envp[ ] )
{
=== modified file 'pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.cpp'
--- pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.cpp 2009-12-04 23:46:45 +0000
+++ pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.cpp 2009-12-13 19:58:33 +0000
@@ -23,7 +23,7 @@
noTransientIfPersistentExists=false;
haveDistantTransient=false;
isTriangulated = false;
- Tes = new ( TesselationWrapper );
+ Tes = new ( CGT::TesselationWrapper );
nbObjects=0;
xBounds.clear();
=== modified file 'pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.hpp'
--- pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.hpp 2009-12-04 23:07:34 +0000
+++ pkg/common/Engine/GlobalEngine/PersistentTriangulationCollider.hpp 2009-12-13 19:58:33 +0000
@@ -15,6 +15,8 @@
#include <vector>
#include <algorithm>
+#include<yade/lib-triangulation/TesselationWrapper.h>
+
/*! \brief Collision detection engine based on regular triangulation.
@@ -25,16 +27,13 @@
*/
-
-class TesselationWrapper;
-
using namespace std;
class PersistentTriangulationCollider : public Collider
{
private :
- TesselationWrapper* Tes;
+ CGT::TesselationWrapper* Tes;
// represent an extrmity of an Axis ALigned bounding box
struct AABBBound
{
=== modified file 'pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.cpp'
--- pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.cpp 2009-12-09 17:11:51 +0000
+++ pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.cpp 2009-12-13 19:58:33 +0000
@@ -30,7 +30,7 @@
MicroMacroAnalyser::MicroMacroAnalyser() : GlobalEngine()
{
- analyser = shared_ptr<KinematicLocalisationAnalyser> (new KinematicLocalisationAnalyser);
+ analyser = shared_ptr<CGT::KinematicLocalisationAnalyser> (new CGT::KinematicLocalisationAnalyser);
analyser->SetConsecutive (true);
analyser->SetNO_ZERO_ID (false);
interval = 100;
@@ -55,7 +55,7 @@
else if (Omega::instance().getCurrentIteration() % interval == 0) {
setState(ncb, 2, true, true);
analyser->ComputeParticlesDeformation();
- Tenseur_sym3 epsg ( analyser->grad_u_total );
+ CGT::Tenseur_sym3 epsg ( analyser->grad_u_total );
ofile << Omega::instance().getCurrentIteration() << analyser->Delta_epsilon(1,1)<<" "<<analyser->Delta_epsilon(2,2)<<" "<<analyser->Delta_epsilon(3,3)<<" "<<epsg(1,1)<<" "<<epsg(2,2)<< " "<<epsg(3,3)<<" "<<epsg(1,2)<<" "<<epsg(1,3)<<" "<<epsg(2,3)<<endl;
analyser->SwitchStates();
}
@@ -84,11 +84,11 @@
}
shared_ptr<BodyContainer>& bodies = ncb->bodies;
- TriaxialState* ts;
+ CGT::TriaxialState* ts;
if ( state==1 ) ts = analyser->TS0;
else if ( state==2 ) ts = analyser->TS1;
else LOG_ERROR ( "state must be 1 or 2, instead of " << state );
- TriaxialState& TS = *ts;
+ CGT::TriaxialState& TS = *ts;
TS.reset();
@@ -129,13 +129,13 @@
const Vector3r& pos = (*bi)->state->pos;
Real rad = s->radius;
- TS.grains[Idg].sphere = Sphere ( Point ( pos[0],pos[1],pos[2] ), rad );
+ TS.grains[Idg].sphere = CGT::Sphere ( CGT::Point ( pos[0],pos[1],pos[2] ), rad );
// TS.grains[Idg].translation = trans;
// grains[Idg].rotation = rot;
- TS.box.base = Point ( min ( TS.box.base.x(), pos.X()-rad ),
+ TS.box.base = CGT::Point ( min ( TS.box.base.x(), pos.X()-rad ),
min ( TS.box.base.y(), pos.Y()-rad ),
min ( TS.box.base.z(), pos.Z()-rad ) );
- TS.box.sommet = Point ( max ( TS.box.sommet.x(), pos.X() +rad ),
+ TS.box.sommet = CGT::Point ( max ( TS.box.sommet.x(), pos.X() +rad ),
max ( TS.box.sommet.y(), pos.Y() +rad ),
max ( TS.box.sommet.z(), pos.Z() +rad ) );
TS.mean_radius += TS.grains[Idg].sphere.weight();
@@ -153,9 +153,9 @@
{
if ( ( *ii )->isReal() )
{
- TriaxialState::Contact *c = new TriaxialState::Contact;
+ CGT::TriaxialState::Contact *c = new CGT::TriaxialState::Contact;
TS.contacts.push_back ( c );
- TriaxialState::VectorGrain& grains = TS.grains;
+ CGT::TriaxialState::VectorGrain& grains = TS.grains;
body_id_t id1 = ( *ii )->getId1();
body_id_t id2 = ( *ii )->getId2();
@@ -163,13 +163,13 @@
c->grain2 = & ( TS.grains[id2] );
grains[id1].contacts.push_back ( c );
grains[id2].contacts.push_back ( c );
- c->normal = Vecteur (
+ c->normal = CGT::Vecteur (
( YADE_CAST<SpheresContactGeometry*> ( ( *ii )->interactionGeometry.get() ) )->normal.X(),
( YADE_CAST<SpheresContactGeometry*> ( ( *ii )->interactionGeometry.get() ) )->normal.Y(),
( YADE_CAST<SpheresContactGeometry*> ( ( *ii )->interactionGeometry.get() ) )->normal.Z() );
// c->normal = ( grains[id2].sphere.point()-grains[id1].sphere.point() );
// c->normal = c->normal/sqrt ( pow ( c->normal.x(),2 ) +pow ( c->normal.y(),2 ) +pow ( c->normal.z(),2 ) );
- c->position = Vecteur (
+ c->position = CGT::Vecteur (
( YADE_CAST<SpheresContactGeometry*> ( ( *ii )->interactionGeometry.get() ) )->contactPoint.X(),
( YADE_CAST<SpheresContactGeometry*> ( ( *ii )->interactionGeometry.get() ) )->contactPoint.Y(),
( YADE_CAST<SpheresContactGeometry*> ( ( *ii )->interactionGeometry.get() ) )->contactPoint.Z() );
@@ -181,7 +181,7 @@
c->fn = YADE_CAST<ElasticContactInteraction*> ( ( ( *ii )->interactionPhysics.get() ) )->normalForce.Dot ( ( YADE_CAST<SpheresContactGeometry*> ( ( *ii )->interactionGeometry.get() ) )->normal );
Vector3r fs = YADE_CAST<ElasticContactInteraction*> ( ( *ii )->interactionPhysics.get() )->shearForce;
- c->fs = Vecteur ( fs.X(),fs.Y(),fs.Z() );
+ c->fs = CGT::Vecteur ( fs.X(),fs.Y(),fs.Z() );
c->old_fn = c->fn;
c->old_fs = c->fs;
c->frictional_work = 0;
=== modified file 'pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.hpp'
--- pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.hpp 2009-12-09 17:11:51 +0000
+++ pkg/dem/Engine/GlobalEngine/MicroMacroAnalyser.hpp 2009-12-13 19:58:33 +0000
@@ -10,6 +10,7 @@
#include<yade/core/GlobalEngine.hpp>
#include<yade/pkg-dem/TriaxialCompressionEngine.hpp>
+#include<yade/lib-triangulation/KinematicLocalisationAnalyser.hpp>
#include <set>
#include <boost/tuple/tuple.hpp>
@@ -21,7 +22,6 @@
This class is using a separate library built from lib/triangulation sources
*/
-class KinematicLocalisationAnalyser;
class MicroMacroAnalyser : public GlobalEngine
{
@@ -30,7 +30,7 @@
std::ofstream ofile;
shared_ptr<TriaxialCompressionEngine> triaxialCompressionEngine;
- shared_ptr<KinematicLocalisationAnalyser> analyser;
+ shared_ptr<CGT::KinematicLocalisationAnalyser> analyser;
std::string outputFile;
std::string stateFileName;