← Back to team overview

yade-dev team mailing list archive

[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;