← Back to team overview

yade-dev team mailing list archive

[svn] r1892 - in trunk: . core lib lib/import lib/multimethods pkg/dem/PreProcessor pkg/dem/meta pkg/fem/DataClass/PhysicalParameters pkg/snow/PreProcessor pkg/snow/PreProcessor/Voxel py

 

Author: eudoxos
Date: 2009-07-28 08:23:39 +0200 (Tue, 28 Jul 2009)
New Revision: 1892

Removed:
   trunk/lib/import/STLReader.cpp
Modified:
   trunk/SConstruct
   trunk/core/SConscript
   trunk/lib/SConscript
   trunk/lib/import/STLReader.hpp
   trunk/lib/multimethods/DynLibDispatcher.hpp
   trunk/pkg/dem/PreProcessor/STLImporter.cpp
   trunk/pkg/dem/PreProcessor/STLImporter.hpp
   trunk/pkg/dem/PreProcessor/STLImporterTest.cpp
   trunk/pkg/dem/meta/ConcretePM.cpp
   trunk/pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp
   trunk/pkg/snow/PreProcessor/SnowVoxelsLoader.cpp
   trunk/pkg/snow/PreProcessor/Voxel/Config.cpp
   trunk/pkg/snow/PreProcessor/Voxel/DataSurface.cpp
   trunk/pkg/snow/PreProcessor/Voxel/DataVoxel.cpp
   trunk/pkg/snow/PreProcessor/Voxel/GrainSurface.cpp
   trunk/pkg/snow/PreProcessor/Voxel/SafeVectors3.cpp
   trunk/pkg/snow/PreProcessor/Voxel/VoxelEnvelope.cpp
   trunk/py/SConscript
   trunk/py/_eudoxos.cpp
Log:
1. Fix snow compilation by #including Voxel/* files in SnowVoxeslLoader and noc compiling them directly (sorry)
2. STLReader is a pure-header import lib now, tolerance is passed as regular data member.
3. Fix all warnings in ConcretePM.
4. Merge lib/yade-* into lib/yade-support.



Modified: trunk/SConstruct
===================================================================
--- trunk/SConstruct	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/SConstruct	2009-07-28 06:23:39 UTC (rev 1892)
@@ -352,6 +352,10 @@
 
 	env=conf.Finish()
 
+	if os.path.exists('../brefcom-mm.hh'):
+		print "Will use full CPM model in ../brefcom-mm.hh"
+		env.Append(CPPDEFINES='YADE_CPM_FULL_MODEL_AVAILABLE')
+
 ##########################################################################################
 ############# BUILDING ###################################################################
 ##########################################################################################

Modified: trunk/core/SConscript
===================================================================
--- trunk/core/SConscript	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/core/SConscript	2009-07-28 06:23:39 UTC (rev 1892)
@@ -31,15 +31,9 @@
 			'containers/InteractionVecMap.cpp',
 			]),
 		LIBS=env['LIBS']+[
-			'yade-base',
-			'yade-serialization',
-			'yade-factory',
-			'yade-multimethods',
-			'yade-computational-geometry',
+			'yade-support',
 			'sqlite3x',
-			'XMLFormatManager',
 			'miniWm3',
-			'STLImporter',
 			'rt', # realtime lib, for clock_gettime 
 			]+
 			['$QGLVIEWER_LIB','yade-opengl'] if 'YADE_OPENGL' in env['CPPDEFINES'] else [],

Modified: trunk/lib/SConscript
===================================================================
--- trunk/lib/SConscript	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/lib/SConscript	2009-07-28 06:23:39 UTC (rev 1892)
@@ -9,7 +9,9 @@
 	#return env.Install('$PREFIX/lib/yade$SUFFIX/lib',env.StaticLibrary(*args,**kw))
 
 if 'qt3' not in env['exclude']:
-	yadeStaticOrSharedLib('yade-serialization-qt',['serialization-qt/QtGUIGenerator.cpp'],LIBS=env['LIBS']+['yade-base','XMLFormatManager']),
+	yadeStaticOrSharedLib('yade-serialization-qt',['serialization-qt/QtGUIGenerator.cpp'],
+		#LIBS=env['LIBS']+['yade-suypportbase','XMLFormatManager']),
+		LIBS=['yade-support']),
 	yadeStaticOrSharedLib('yade-QGLViewer',Split('''
 		QGLViewer/VRenderInterface_Qt3.ui
 		QGLViewer/ImageInterface_Qt3.ui
@@ -50,18 +52,14 @@
 if 'YADE_OPENGL' in env['CPPDEFINES']:
 	yadeStaticOrSharedLib('yade-opengl',['opengl/FpsTracker.cpp','opengl/GLTextLabel.cpp','opengl/GLWindow.cpp','opengl/GLWindowsManager.cpp','opengl/GLUtils.cpp'],LIBS=env['LIBS']+['glut','$QGLVIEWER_LIB']),
 
-yadeStaticOrSharedLib('yade-base',['base/yadeWm3Extra.cpp'],LIBS=env['LIBS']),
-yadeStaticOrSharedLib('yade-computational-geometry',['computational-geometry/Distances2D.cpp','computational-geometry/Distances3D.cpp','computational-geometry/Intersections2D.cpp','computational-geometry/Intersections3D.cpp','computational-geometry/MarchingCube.cpp'],LIBS=env['LIBS']+['yade-base']),
-yadeStaticOrSharedLib('yade-factory',['factory/ClassFactory.cpp','factory/DynLibManager.cpp','factory/FactoryExceptions.cpp']),
-yadeStaticOrSharedLib('yade-multimethods',['multimethods/Indexable.cpp','multimethods/MultiMethodsExceptions.cpp']),
-yadeStaticOrSharedLib('XMLFormatManager',['serialization-xml/XMLFormatManager.cpp','serialization-xml/XMLSaxParser.cpp'],LIBS=env['LIBS']+['yade-base','yade-serialization']),
-yadeStaticOrSharedLib('yade-serialization',['serialization/Archive.cpp','serialization/IOFormatManager.cpp','serialization/IOManagerExceptions.cpp','serialization/FormatChecker.cpp','serialization/Serializable.cpp','serialization/SerializableSingleton.cpp','serialization/SerializationExceptions.cpp'],LIBS=env['LIBS']+['yade-base','yade-factory']),
+yadeStaticOrSharedLib('yade-support',[
+	'base/yadeWm3Extra.cpp',
+	'computational-geometry/Distances2D.cpp','computational-geometry/Distances3D.cpp','computational-geometry/Intersections2D.cpp','computational-geometry/Intersections3D.cpp','computational-geometry/MarchingCube.cpp',
+	'factory/ClassFactory.cpp','factory/DynLibManager.cpp','factory/FactoryExceptions.cpp',
+	'multimethods/Indexable.cpp','multimethods/MultiMethodsExceptions.cpp',
+	'serialization-xml/XMLFormatManager.cpp','serialization-xml/XMLSaxParser.cpp','serialization/Archive.cpp',
+	'serialization/IOFormatManager.cpp','serialization/IOManagerExceptions.cpp','serialization/FormatChecker.cpp','serialization/Serializable.cpp','serialization/SerializableSingleton.cpp','serialization/SerializationExceptions.cpp'])
 
-# for now, keep this is as a shared lib, since it depends on things from pkg (shouldn't be the case, though...)
-env.Install('$PREFIX/lib/yade$SUFFIX/lib',[
-	env.SharedLibrary('STLImporter',['import/STLReader.cpp']),
-])
-
 #######################
 ###### 3rd party libs
 #######################

Deleted: trunk/lib/import/STLReader.cpp
===================================================================
--- trunk/lib/import/STLReader.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/lib/import/STLReader.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -1,11 +0,0 @@
-/*************************************************************************
-*  Copyright (C) 2008 by Sergei Dorofeenko				 *
-*  sega@xxxxxxxxxxxxxxxx                                                 *
-*                                                                        *
-*  This program is free software; it is licensed under the terms of the  *
-*  GNU General Public License v2 or later. See file LICENSE for details. *
-*************************************************************************/
-#include "STLReader.hpp"
-
-float STLReader::tolerance =0;
-

Modified: trunk/lib/import/STLReader.hpp
===================================================================
--- trunk/lib/import/STLReader.hpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/lib/import/STLReader.hpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -25,7 +25,7 @@
 	template<class OutV, class OutE, class OutF, class OutN>
 	    bool open(const char* filename, OutV vertices, OutE edges, OutF facets, OutN normals);
 	
-	static float tolerance;
+	float tolerance;
     
     protected:
 	template<class OutV, class OutE, class OutF, class OutN>
@@ -47,12 +47,14 @@
 	};
 
 	class IsDifferent {
+		float tolerance;
 	    public:
+		IsDifferent(float _tolerance): tolerance(_tolerance){}
 		bool operator() (const Vrtx& v1, const Vrtx& v2)
 		{
-		    if ( std::abs(v1[0]-v2[0])<STLReader::tolerance 
-			    && std::abs(v1[1]-v2[1])<STLReader::tolerance 
-			    && std::abs(v1[2]-v2[2])<STLReader::tolerance ) 
+		    if ( std::abs(v1[0]-v2[0])<tolerance 
+			    && std::abs(v1[1]-v2[1])<tolerance 
+			    && std::abs(v1[2]-v2[2])<tolerance ) 
 			return false;
 		    return true;
 		}
@@ -127,7 +129,7 @@
 	{
 	    (normals++) = n[i];
 	    bool is_different=true;
-	    IsDifferent isd;
+	    IsDifferent isd(tolerance);
 	    int j=0;
 	    for(int ej=vcs.size(); j<ej; ++j) 
 		if ( !(is_different = isd(v[i],vcs[j])) ) break;
@@ -193,7 +195,7 @@
 	{
 	    (normals++) = n[i];
 	    bool is_different=true;
-	    IsDifferent isd;
+	    IsDifferent isd(tolerance);
 	    int j=0;
 	    for(int ej=vcs.size(); j<ej; ++j) 
 		if ( !(is_different = isd(v[i],vcs[j])) ) break;

Modified: trunk/lib/multimethods/DynLibDispatcher.hpp
===================================================================
--- trunk/lib/multimethods/DynLibDispatcher.hpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/lib/multimethods/DynLibDispatcher.hpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -224,7 +224,7 @@
 			{
 				executor = dynamic_pointer_cast<Executor>(ClassFactory::instance().createShared(libName));
 				if (!executor){ //dynamic_cast_failed for some reason so try with static_cast
-					cerr<<__FILE__<<":"<<__LINE__<<" ERROR dynamic_casting executor of type "<<libName<<", using static_cast (WHY?)"<<endl;
+					//cerr<<__FILE__<<":"<<__LINE__<<" ERROR dynamic_casting executor of type "<<libName<<", using static_cast (WHY?)"<<endl;
 					//abort();
 					executor = static_pointer_cast<Executor>(ClassFactory::instance().createShared(libName));
 				}

Modified: trunk/pkg/dem/PreProcessor/STLImporter.cpp
===================================================================
--- trunk/pkg/dem/PreProcessor/STLImporter.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/dem/PreProcessor/STLImporter.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -5,8 +5,9 @@
 *  This program is free software; it is licensed under the terms of the  *
 *  GNU General Public License v2 or later. See file LICENSE for details. *
 *************************************************************************/
-#include "STLImporter.hpp"
-#include <yade/pkg-dem/Shop.hpp>
+#include"STLImporter.hpp"
+#include<yade/pkg-dem/Shop.hpp>
+#include<yade/lib-import/STLReader.hpp>
 
 CREATE_LOGGER(STLImporter);
 
@@ -20,8 +21,9 @@
 {
     vector<double> vtmp, ntmp;
     vector<int>  etmp, ftmp;
-    STLReader::tolerance = Math<Real>::ZERO_TOLERANCE;
     STLReader reader;
+	 reader.tolerance=Math<Real>::ZERO_TOLERANCE;
+
     if(!reader.open(filename, back_inserter(vtmp), back_inserter(etmp), back_inserter(ftmp), back_inserter(ntmp))) 
 	{
 		LOG_ERROR("Can't open file: " << filename);

Modified: trunk/pkg/dem/PreProcessor/STLImporter.hpp
===================================================================
--- trunk/pkg/dem/PreProcessor/STLImporter.hpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/dem/PreProcessor/STLImporter.hpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -8,10 +8,10 @@
 #pragma once
 #include<yade/pkg-common/Facet.hpp>
 #include<yade/pkg-common/InteractingFacet.hpp>
-#include<yade/lib-import/STLReader.hpp>
 #include<yade/core/Body.hpp>
 #include<yade/core/BodyContainer.hpp>
 
+
 class STLImporter {
     public:
 	STLImporter();	

Modified: trunk/pkg/dem/PreProcessor/STLImporterTest.cpp
===================================================================
--- trunk/pkg/dem/PreProcessor/STLImporterTest.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/dem/PreProcessor/STLImporterTest.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -6,6 +6,7 @@
 *  GNU General Public License v2 or later. See file LICENSE for details. *
 *************************************************************************/
 
+
 #include"STLImporterTest.hpp"
 #include<yade/pkg-common/SpatialQuickSortCollider.hpp>
 #include<yade/pkg-dem/STLImporter.hpp>

Modified: trunk/pkg/dem/meta/ConcretePM.cpp
===================================================================
--- trunk/pkg/dem/meta/ConcretePM.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/dem/meta/ConcretePM.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -131,19 +131,23 @@
 // >=1. to deactivate (never delete damaged contacts)
 Real Law2_Dem3DofGeom_CpmPhys_Cpm::omegaThreshold=1.;
 
+#ifdef YADE_CPM_FULL_MODEL_AVAILABLE
+	#include"../../../../brefcom-mm.hh"
+#endif
+
 void Law2_Dem3DofGeom_CpmPhys_Cpm::go(shared_ptr<InteractionGeometry>& _geom, shared_ptr<InteractionPhysics>& _phys, Interaction* I, MetaBody* rootBody){
 	Dem3DofGeom* contGeom=static_cast<Dem3DofGeom*>(_geom.get());
 	CpmPhys* BC=static_cast<CpmPhys*>(_phys.get());
 
 	// shorthands
-		Real& epsN(BC->epsN); Real& epsNPl(BC->epsNPl); Vector3r& epsT(BC->epsT); Real& kappaD(BC->kappaD); Real& epsPlSum(BC->epsPlSum); const Real& E(BC->E); const Real& undamagedCohesion(BC->undamagedCohesion); const Real& tanFrictionAngle(BC->tanFrictionAngle); const Real& G(BC->G); const Real& crossSection(BC->crossSection); const Real& omegaThreshold(Law2_Dem3DofGeom_CpmPhys_Cpm::omegaThreshold); const Real& epsCrackOnset(BC->epsCrackOnset); Real& relResidualStrength(BC->relResidualStrength); const Real& dt=Omega::instance().getTimeStep();  const Real& epsFracture(BC->epsFracture); const bool& neverDamage(BC->neverDamage); const Real& dmgTau(BC->dmgTau); const Real& plTau(BC->plTau); const bool& isCohesive(BC->isCohesive);
-		Real& omega(BC->omega); Real& sigmaN(BC->sigmaN);  Vector3r& sigmaT(BC->sigmaT); Real& Fn(BC->Fn); Vector3r& Fs(BC->Fs); // for python access
-		const Real& yieldLogSpeed(Law2_Dem3DofGeom_CpmPhys_Cpm::yieldLogSpeed); const int& yieldSurfType(Law2_Dem3DofGeom_CpmPhys_Cpm::yieldSurfType);
-		const Real& yieldEllipseShift(Law2_Dem3DofGeom_CpmPhys_Cpm::yieldEllipseShift); 
-		const Real& epsSoft(Law2_Dem3DofGeom_CpmPhys_Cpm::epsSoft); 
-		const Real& relKnSoft(Law2_Dem3DofGeom_CpmPhys_Cpm::relKnSoft); 
+		Real& epsN(BC->epsN);
+		Vector3r& epsT(BC->epsT); Real& kappaD(BC->kappaD); Real& epsPlSum(BC->epsPlSum); const Real& E(BC->E); const Real& undamagedCohesion(BC->undamagedCohesion); const Real& tanFrictionAngle(BC->tanFrictionAngle); const Real& G(BC->G); const Real& crossSection(BC->crossSection); const Real& omegaThreshold(Law2_Dem3DofGeom_CpmPhys_Cpm::omegaThreshold); const Real& epsCrackOnset(BC->epsCrackOnset); Real& relResidualStrength(BC->relResidualStrength); const Real& epsFracture(BC->epsFracture); const bool& neverDamage(BC->neverDamage); Real& omega(BC->omega); Real& sigmaN(BC->sigmaN);  Vector3r& sigmaT(BC->sigmaT); Real& Fn(BC->Fn); Vector3r& Fs(BC->Fs); // for python access
 
+	#ifdef CPM_MATERIAL_MODEL
+		Real& epsNPl(BC->epsNPl); const Real& dt=Omega::instance().getTimeStep(); const Real& dmgTau(BC->dmgTau); const Real& plTau(BC->plTau); const bool& isCohesive(BC->isCohesive); const Real& yieldLogSpeed(Law2_Dem3DofGeom_CpmPhys_Cpm::yieldLogSpeed); const int& yieldSurfType(Law2_Dem3DofGeom_CpmPhys_Cpm::yieldSurfType); const Real& yieldEllipseShift(Law2_Dem3DofGeom_CpmPhys_Cpm::yieldEllipseShift); const Real& epsSoft(Law2_Dem3DofGeom_CpmPhys_Cpm::epsSoft); const Real& relKnSoft(Law2_Dem3DofGeom_CpmPhys_Cpm::relKnSoft); 
+	#endif
 
+
 	epsN=contGeom->strainN(); epsT=contGeom->strainT();
 	
 	// debugging

Modified: trunk/pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp
===================================================================
--- trunk/pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -6,8 +6,8 @@
 *  GNU General Public License v2 or later. See file LICENSE for details. *
 *************************************************************************/
 
-#include "FEMTetrahedronData.hpp"
-#include "FEMNodeData.hpp"
+#include"FEMTetrahedronData.hpp"
+#include<yade/pkg-fem/FEMNodeData.hpp>
 
 
 FEMTetrahedronData::FEMTetrahedronData() : PhysicalParameters()
@@ -183,4 +183,4 @@
 	damping = Damp * mass ;
 }
 
-YADE_PLUGIN("FEMTetrahedronData");
\ No newline at end of file
+YADE_PLUGIN("FEMTetrahedronData");

Modified: trunk/pkg/snow/PreProcessor/SnowVoxelsLoader.cpp
===================================================================
--- trunk/pkg/snow/PreProcessor/SnowVoxelsLoader.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/snow/PreProcessor/SnowVoxelsLoader.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -68,6 +68,17 @@
 //#include<yade/pkg-snow/Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry.hpp>
 //#include<yade/pkg-snow/Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry.hpp>
 
+/* this is a little hack; all those files are not picked up by the source
+scanner since they have YADE_REQUIRE_FEATURE(some nonsense) inside.
+Sorry for that. */
+#include"Voxel/Config.cpp"
+#include"Voxel/DataSurface.cpp"
+#include"Voxel/DataVoxel.cpp"
+#include"Voxel/GrainSurface.cpp"
+#include"Voxel/SafeVectors3.cpp"
+#include"Voxel/VoxelEnvelope.cpp"
+
+
 YADE_PLUGIN("SnowVoxelsLoader");
 SnowVoxelsLoader::SnowVoxelsLoader() : FileGenerator()
 {

Modified: trunk/pkg/snow/PreProcessor/Voxel/Config.cpp
===================================================================
--- trunk/pkg/snow/PreProcessor/Voxel/Config.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/snow/PreProcessor/Voxel/Config.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -1,3 +1,4 @@
+YADE_REQUIRE_FEATURE(COMPILED_BY_INCLUDE_FROM_SnowVoxelsLoader.cpp)
 #include "Config.hpp"
 #include <GL/glut.h>
 #include <iostream>

Modified: trunk/pkg/snow/PreProcessor/Voxel/DataSurface.cpp
===================================================================
--- trunk/pkg/snow/PreProcessor/Voxel/DataSurface.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/snow/PreProcessor/Voxel/DataSurface.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -1,3 +1,4 @@
+YADE_REQUIRE_FEATURE(COMPILED_BY_INCLUDE_FROM_SnowVoxelsLoader.cpp)
 #include <fstream>
 #include <boost/lexical_cast.hpp>
 #include <boost/date_time/posix_time/posix_time.hpp>
@@ -3,5 +4,5 @@
 #include <GL/glut.h>
 #include "DataSurface.hpp"
-#include "Config.hpp"
+#include<yade/pkg-snow/Config.hpp>
 #include "VoxelEnvelope.hpp"
 #include <unistd.h>

Modified: trunk/pkg/snow/PreProcessor/Voxel/DataVoxel.cpp
===================================================================
--- trunk/pkg/snow/PreProcessor/Voxel/DataVoxel.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/snow/PreProcessor/Voxel/DataVoxel.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -1,3 +1,4 @@
+YADE_REQUIRE_FEATURE(COMPILED_BY_INCLUDE_FROM_SnowVoxelsLoader.cpp)
 #include <fstream>
 #include <boost/lexical_cast.hpp>
 #include <boost/date_time/posix_time/posix_time.hpp>

Modified: trunk/pkg/snow/PreProcessor/Voxel/GrainSurface.cpp
===================================================================
--- trunk/pkg/snow/PreProcessor/Voxel/GrainSurface.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/snow/PreProcessor/Voxel/GrainSurface.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -1,3 +1,4 @@
+YADE_REQUIRE_FEATURE(COMPILED_BY_INCLUDE_FROM_SnowVoxelsLoader.cpp)
 #include "GrainSurface.hpp"
 #include "Config.hpp"
 

Modified: trunk/pkg/snow/PreProcessor/Voxel/SafeVectors3.cpp
===================================================================
--- trunk/pkg/snow/PreProcessor/Voxel/SafeVectors3.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/snow/PreProcessor/Voxel/SafeVectors3.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -1,3 +1,4 @@
+YADE_REQUIRE_FEATURE(COMPILED_BY_INCLUDE_FROM_SnowVoxelsLoader.cpp)
 #include "SafeVectors3.hpp"
 
 SafeVectors3::SafeVectors3(int size,std::string myname,std::string fname,bool has_id) : m_myname(myname)

Modified: trunk/pkg/snow/PreProcessor/Voxel/VoxelEnvelope.cpp
===================================================================
--- trunk/pkg/snow/PreProcessor/Voxel/VoxelEnvelope.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/pkg/snow/PreProcessor/Voxel/VoxelEnvelope.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -1,3 +1,4 @@
+YADE_REQUIRE_FEATURE(COMPILED_BY_INCLUDE_FROM_SnowVoxelsLoader.cpp)
 #include <boost/bind.hpp>
 #include "VoxelEnvelope.hpp"
 

Modified: trunk/py/SConscript
===================================================================
--- trunk/py/SConscript	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/py/SConscript	2009-07-28 06:23:39 UTC (rev 1892)
@@ -27,8 +27,8 @@
 		env.File('linterpolation.py'),
 		env.File('timing.py'),
 		env.File('pack.py'),
-		env.SharedLibrary('wrapper',['yadeWrapper/yadeWrapper.cpp'],SHLIBPREFIX='',LIBS=env['LIBS']+['XMLFormatManager','yade-factory','yade-serialization',linkPlugins(['Shop','BoundingVolumeMetaEngine','GeometricalModelMetaEngine','InteractingGeometryMetaEngine','InteractionGeometryMetaEngine','InteractionPhysicsMetaEngine','PhysicalParametersMetaEngine','ConstitutiveLawDispatcher','InteractionDispatchers','ParallelEngine','Clump','STLImporter',])
-			],),
+		env.SharedLibrary('wrapper',['yadeWrapper/yadeWrapper.cpp'],SHLIBPREFIX='',LIBS=linkPlugins(['Shop','BoundingVolumeMetaEngine','GeometricalModelMetaEngine','InteractingGeometryMetaEngine','InteractionGeometryMetaEngine','InteractionPhysicsMetaEngine','PhysicalParametersMetaEngine','ConstitutiveLawDispatcher','InteractionDispatchers','ParallelEngine','Clump','STLImporter',])
+			),
 		env.SharedLibrary('_customConverters',['yadeWrapper/customConverters.cpp'],SHLIBPREFIX='',LIBS=env['LIBS']+['boost_python_indexing_suite_v2']+linkPlugins(Split("BoundingVolumeEngineUnit GeometricalModelEngineUnit InteractingGeometryEngineUnit InteractionGeometryEngineUnit InteractionPhysicsEngineUnit PhysicalParametersEngineUnit PhysicalActionDamperUnit PhysicalActionApplierUnit ConstitutiveLaw")))
 	])
 

Modified: trunk/py/_eudoxos.cpp
===================================================================
--- trunk/py/_eudoxos.cpp	2009-07-27 22:03:35 UTC (rev 1891)
+++ trunk/py/_eudoxos.cpp	2009-07-28 06:23:39 UTC (rev 1892)
@@ -7,6 +7,10 @@
 	log4cxx::LoggerPtr logger=log4cxx::Logger::getLogger("yade.eudoxos");
 #endif
 
+#ifdef YADE_CPM_FULL_MODEL_AVAILABLE
+	#include"../../brefcom-mm.hh"
+#endif
+
 # if 0
 Real elasticEnergyDensityInAABB(python::tuple AABB){
 	Vector3r bbMin=tuple2vec(python::extract<python::tuple>(AABB[0])()), bbMax=tuple2vec(python::extract<python::tuple>(AABB[1])()); Vector3r box=bbMax-bbMin;