yade-dev team mailing list archive
-
yade-dev team
-
Mailing list archive
-
Message #01290
[svn] r1790 - in trunk: . core extra extra/tetra lib lib/opengl pkg/common pkg/common/DataClass/BoundingVolume pkg/common/DataClass/GeometricalModel pkg/common/DataClass/Widgets pkg/dem pkg/dem/DataClass/InteractionGeometry pkg/lattice pkg/snow
Author: eudoxos
Date: 2009-06-04 17:50:18 +0200 (Thu, 04 Jun 2009)
New Revision: 1790
Modified:
trunk/SConstruct
trunk/core/yade.cpp
trunk/extra/SConscript
trunk/extra/Shop.cpp
trunk/extra/tetra/Tetra.cpp
trunk/extra/tetra/Tetra.hpp
trunk/lib/SConscript
trunk/lib/opengl/OpenGLWrapper.hpp
trunk/pkg/common/DataClass/BoundingVolume/BoundingSphere.cpp
trunk/pkg/common/DataClass/GeometricalModel/Box.cpp
trunk/pkg/common/DataClass/GeometricalModel/BshTube.cpp
trunk/pkg/common/DataClass/GeometricalModel/Facet.cpp
trunk/pkg/common/DataClass/GeometricalModel/Mesh2D.cpp
trunk/pkg/common/DataClass/GeometricalModel/Sphere.cpp
trunk/pkg/common/DataClass/Widgets/ColorScale.cpp
trunk/pkg/common/SConscript
trunk/pkg/dem/ConcretePM.cpp
trunk/pkg/dem/ConcretePM.hpp
trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.cpp
trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp
trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp
trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp
trunk/pkg/dem/SConscript
trunk/pkg/lattice/SConscript
trunk/pkg/snow/SConscript
Log:
Add new 'feature' to scons called openGL, which is on by default.
Qt3 GUI will not be built without openGL.
YADE_OPENGL is defined in openGL-enabled builds.
Sconscript files adapted to skip GL plugins or GL parts of plugins.
You can test by running:
scons exclude=qt3,fem,... features=log4cxx,python
Modified: trunk/SConstruct
===================================================================
--- trunk/SConstruct 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/SConstruct 2009-06-04 15:50:18 UTC (rev 1790)
@@ -129,7 +129,7 @@
ListVariable('exclude','Yade components that will not be built','none',names=['qt3','gui','extra','common','dem','fem','lattice','mass-spring','realtime-rigidbody','snow']),
EnumVariable('arcs','Whether to generate or use branch probabilities','',['','gen','use'],{'no':'','0':'','false':''},1),
# OK, dummy prevents bug in scons: if one selects all, it says all in scons.config, but without quotes, which generates error.
- ListVariable('features','Optional features that are turned on','python,log4cxx,gl',names=['gl','python','log4cxx','binfmt','CGAL','dummy']),
+ ListVariable('features','Optional features that are turned on','python,log4cxx,openGL',names=['openGL','python','log4cxx','binfmt','CGAL','dummy']),
('jobs','Number of jobs to run at the same time (same as -j, but saved)',4,None,int),
('extraModules', 'Extra directories with their own SConscript files (must be in-tree) (whitespace separated)',None,None,Split),
('buildPrefix','Where to create build-[version][variant] directory for intermediary files','..'),
@@ -295,7 +295,6 @@
Exit(1)
# check essential libs
ok&=conf.CheckLibWithHeader('pthread','pthread.h','c','pthread_exit(NULL);',autoadd=1)
- ok&=conf.CheckLibWithHeader('glut','GL/glut.h','c','glutGetModifiers();',autoadd=1)
# gentoo has threaded flavour named differently and it must have precedence over the non-threaded one
def CheckLib_maybeMT(conf,lib,header,lang,func): return conf.CheckLibWithHeader(lib+'-mt',['limits.h',header],'c++',func,autoadd=1) or conf.CheckLibWithHeader(lib,['limits.h',header],lang,func,autoadd=1)
@@ -310,10 +309,6 @@
if not env['useMiniWm3']: ok&=conf.CheckLibWithHeader('Wm3Foundation','Wm3Math.h','c++','Wm3::Math<double>::PI;',autoadd=1)
- if 'qt3' not in env['exclude']:
- ok&=conf.CheckQt(env['QTDIR'])
- env.Tool('qt'); env.Replace(QT_LIB='qt-mt')
- env['QGLVIEWER_LIB']='yade-QGLViewer';
if not ok:
print "\nOne of the essential libraries above was not found, unable to continue.\n\nCheck `%s' for possible causes, note that there are options that you may need to customize:\n\n"%(buildDir+'/config.log')+opts.GenerateHelpText(env)
@@ -322,9 +317,20 @@
print "\nERROR: Unable to compile with optional feature `%s'.\n\nIf you are sure, remove it from features (scons features=featureOne,featureTwo for example) and build again."%featureName
Exit(1)
# check "optional" libs
+ if 'openGL' in env['features']:
+ ok=conf.CheckLibWithHeader('glut','GL/glut.h','c','glutGetModifiers();',autoadd=1)
+ if not ok: featureNotOK('openGL')
+ env.Append(CPPDEFINES='YADE_OPENGL')
+ if 'qt3' not in env['exclude']:
+ if 'openGL' not in env['features']:
+ print "\nQt3 interface can only be used if openGL is enabled.\nEither add openGL to 'features' or add qt3 to 'exclude'."
+ Exit(1)
+ ok&=conf.CheckQt(env['QTDIR'])
+ env.Tool('qt'); env.Replace(QT_LIB='qt-mt')
+ env['QGLVIEWER_LIB']='yade-QGLViewer';
+
if 'log4cxx' in env['features']:
ok=conf.CheckLibWithHeader('log4cxx','log4cxx/logger.h','c++','log4cxx::Logger::getLogger("");',autoadd=1)
- #env.Append(CPPDEFINES=[('LOG4CXX','9'])
if not ok: featureNotOK('log4cxx')
env.Append(CPPDEFINES=['LOG4CXX'])
if 'python' in env['features']:
@@ -400,19 +406,6 @@
env.Append(CXXFLAGS=Split('-O3 -march=%s'%env['march']),
CPPDEFINES=[('YADE_CAST','static_cast'),('YADE_PTR_CAST','static_pointer_cast'),'NDEBUG'])
# NDEBUG is used in /usr/include/assert.h: when defined, asserts() are no-ops
-
- # -floop-optimize2 is a gcc-4.x flag, doesn't exist on previous version
- # CRASH -ffloat-store
- # maybe not CRASH?: -fno-math-errno
- # CRASH?: -fmodulo-sched
- # it is probably --ffast-fath that crashes !!!
- # gcc-4.1 only: -funsafe-loop-optimizations -Wunsafe-loop-optimizations
- # sure CRASH: -ftree-vectorize
- # CRASH (one of them): -fivopts -fgcse-sm -fgcse-las (one of them - not sure which one exactly)
- # ?: -ftree-loop-linear -ftree-loop-ivcanon
- ## this will fail on non-i386 archs (includeing AMD64)
- #archFlags=Split('-march=pentium4 -mfpmath=sse,387') #-malign-double')
- #env.Append(CXXFLAGS=archFlags,LINKFLAGS=archFlags,SHLINKFLAGS=archFlags)
else:
env.Append(CPPDEFINES=[('YADE_CAST','dynamic_cast'),('YADE_PTR_CAST','dynamic_pointer_cast')])
@@ -423,7 +416,6 @@
if env['arcs']=='use': env.Append(CXXFLAGS=['-fprofile-use'],LINKFLAGS=['-fprofile-use'])
### LINKER
-#env['NONPLUGIN_LIBS']=env['LIBS']
## libs for all plugins
# Investigate whether soname is useful for something. Probably not: SHLINKFLAGS=['-Wl,-soname=${TARGET.file},'-rdynamic']
env.Append(LIBS=[],SHLINKFLAGS=['-rdynamic'])
@@ -435,7 +427,6 @@
# makes dynamic library loading easier (no LD_LIBRARY_PATH) and perhaps faster
env.Append(RPATH=runtimeLibDirs)
# find already compiled but not yet installed libraries for linking
-#env.Append(LIBPATH=[os.path.join('#',x) for x in libDirs] # -floop-optimize2 is a gcc-4.x flag, doesn't exist on previous version
env.Append(LIBPATH=instLibDirs) # this is if we link to libs that are installed, which is the case now
@@ -449,7 +440,6 @@
if not prefix: yadeRoot=buildDir
else: yadeRoot=prefix
yadeInc=join(yadeRoot,'include','yade-%s'%env['version'],'yade')
- #print "CALLED, prefix=%s, yadeInc=%s"%(prefix,yadeInc)
paths = ['.']
for root, dirs, files in os.walk('.'):
@@ -467,7 +457,6 @@
if re.match(r'^.*/('+'|'.join(env['exclude'])+')/',root): continue
for f in files:
if f.split('.')[-1] in ('hpp','inl','ipp','tpp','h','mcr'):
- #m=re.match('^\./([^/]*)/.*$',root)
m=re.match('^.*?'+sep+'((extra|core)|((gui|lib|pkg)'+sep+'.*?))(|'+sep+'.*)$',root)
if not m:
print "WARNING: file %s skipped while scanning for headers (no module)"
Modified: trunk/core/yade.cpp
===================================================================
--- trunk/core/yade.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/core/yade.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -101,8 +101,12 @@
{
string cfgFile=Omega::instance().yadeConfigPath+"/preferences.xml";
LOG_INFO("Creating default configuration file: "<<cfgFile<<". Tune by hand if needed.");
- LOG_INFO("Setting GUI: QtGUI.");
- pref->defaultGUILibName="QtGUI";
+ #ifdef YADE_OPENGL
+ pref->defaultGUILibName="QtGUI";
+ #else
+ pref->defaultGUILibName="PythonUI";
+ #endif
+ LOG_INFO("Setting GUI: "<<pref->defaultGUILibName);
IOFormatManager::saveToFile("XMLFormatManager",cfgFile,"preferences",pref);
}
@@ -152,6 +156,9 @@
#ifdef LOG4CXX
" LOG4CXX (configurable logging framework enabled; ~/.yade-" SUFFIX "/logging.conf)\n"
#endif
+ #ifdef YADE_OPENGL
+ " YADE_OPENGL (3d rendering)\n"
+ #endif
;
if(!isnan(std::numeric_limits<double>::quiet_NaN())) cerr<<
" -ffast-math? WARNING: NaN's will not work"<<endl;
@@ -268,7 +275,11 @@
}
if(gui.size()==0) gui=Omega::instance().preferences->defaultGUILibName;
- if(!explicitUI && gui=="PythonUI" && !getenv("TERM")){ LOG_WARN("No $TERM, using QtGUI instead of PythonUI"); gui="QtGUI"; }
+ #ifdef YADE_OPENGL
+ if(!explicitUI && gui=="PythonUI" && !getenv("TERM")){ LOG_WARN("No $TERM, using QtGUI instead of PythonUI"); gui="QtGUI"; }
+ #else
+ if(gui=="QtGUI"){LOG_WARN("openGL-less build, using PythonUI instead of QtGUI"); gui="PythonUI";}
+ #endif
if(gui=="QtGUI" && !getenv("DISPLAY")){ LOG_WARN("No $DISPLAY, using PythonUI instead of QtUI"); gui="PythonUI"; }
shared_ptr<FrontEnd> frontEnd = dynamic_pointer_cast<FrontEnd>(ClassFactory::instance().createShared(gui));
Modified: trunk/extra/SConscript
===================================================================
--- trunk/extra/SConscript 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/extra/SConscript 2009-06-04 15:50:18 UTC (rev 1790)
@@ -75,7 +75,6 @@
'SimpleViscoelasticBodyParameters',
'SDECLinkGeometry',
'SDECLinkPhysics',
- '$QGLVIEWER_LIB'
]),
])
Modified: trunk/extra/Shop.cpp
===================================================================
--- trunk/extra/Shop.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/extra/Shop.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -57,10 +57,7 @@
#include<yade/pkg-dem/SpheresContactGeometry.hpp>
#include<yade/pkg-dem/ElasticContactInteraction.hpp>
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
-#include<yade/lib-QGLViewer/qglviewer.h>
-
#include<yade/extra/Tetra.hpp>
Modified: trunk/extra/tetra/Tetra.cpp
===================================================================
--- trunk/extra/tetra/Tetra.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/extra/tetra/Tetra.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -3,14 +3,17 @@
#include"Tetra.hpp"
YADE_PLUGIN(/* self-contained in hpp: */ "TetraMold", "TetraBang", "Tetrahedron2TetraMold","TetraAABB",
- /* some code in cpp (this file): */ "TetraLaw", "Tetra2TetraBang","TetraDraw");
+ /* some code in cpp (this file): */ "TetraLaw", "Tetra2TetraBang"
+ #ifdef YADE_OPENGL
+ ,"TetraDraw"
+ #endif
+ );
#include<yade/core/Interaction.hpp>
#include<yade/core/Omega.hpp>
#include<yade/core/MetaBody.hpp>
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
#include<yade/pkg-common/AABB.hpp>
#include<yade/pkg-common/Tetrahedron.hpp>
@@ -411,36 +414,37 @@
}
}
-
-void TetraDraw::go(const shared_ptr<InteractingGeometry>& cm, const shared_ptr<PhysicalParameters>&,bool)
-{
- glMaterialv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,Vector3f(cm->diffuseColor[0],cm->diffuseColor[1],cm->diffuseColor[2]));
- glColor3v(cm->diffuseColor);
- TetraMold* t=static_cast<TetraMold*>(cm.get());
- if (0) { // wireframe, as for Tetrahedron
- glDisable(GL_LIGHTING);
- glBegin(GL_LINES);
- #define __ONEWIRE(a,b) glVertex3v(t->v[a]);glVertex3v(t->v[b])
- __ONEWIRE(0,1);__ONEWIRE(0,2);__ONEWIRE(0,3);__ONEWIRE(1,2);__ONEWIRE(1,3);__ONEWIRE(2,3);
- #undef __ONEWIRE
- glEnd();
- }
- else
+#ifdef YADE_OPENGL
+ #include<yade/lib-opengl/OpenGLWrapper.hpp>
+ void TetraDraw::go(const shared_ptr<InteractingGeometry>& cm, const shared_ptr<PhysicalParameters>&,bool)
{
- Vector3r center = (t->v[0]+t->v[1]+t->v[2]+t->v[3])*.25, faceCenter, n;
- glDisable(GL_CULL_FACE); glEnable(GL_LIGHTING);
- glBegin(GL_TRIANGLES);
- #define __ONEFACE(a,b,c) n=(t->v[b]-t->v[a]).UnitCross(t->v[c]-t->v[a]); faceCenter=(t->v[a]+t->v[b]+t->v[c])/3.; if((faceCenter-center).Dot(n)<0)n=-n; glNormal3v(n); glVertex3v(t->v[a]); glVertex3v(t->v[b]); glVertex3v(t->v[c]);
- __ONEFACE(3,0,1);
- __ONEFACE(0,1,2);
- __ONEFACE(1,2,3);
- __ONEFACE(2,3,0);
- #undef __ONEFACE
- glEnd();
+ glMaterialv(GL_FRONT,GL_AMBIENT_AND_DIFFUSE,Vector3f(cm->diffuseColor[0],cm->diffuseColor[1],cm->diffuseColor[2]));
+ glColor3v(cm->diffuseColor);
+ TetraMold* t=static_cast<TetraMold*>(cm.get());
+ if (0) { // wireframe, as for Tetrahedron
+ glDisable(GL_LIGHTING);
+ glBegin(GL_LINES);
+ #define __ONEWIRE(a,b) glVertex3v(t->v[a]);glVertex3v(t->v[b])
+ __ONEWIRE(0,1);__ONEWIRE(0,2);__ONEWIRE(0,3);__ONEWIRE(1,2);__ONEWIRE(1,3);__ONEWIRE(2,3);
+ #undef __ONEWIRE
+ glEnd();
+ }
+ else
+ {
+ Vector3r center = (t->v[0]+t->v[1]+t->v[2]+t->v[3])*.25, faceCenter, n;
+ glDisable(GL_CULL_FACE); glEnable(GL_LIGHTING);
+ glBegin(GL_TRIANGLES);
+ #define __ONEFACE(a,b,c) n=(t->v[b]-t->v[a]).UnitCross(t->v[c]-t->v[a]); faceCenter=(t->v[a]+t->v[b]+t->v[c])/3.; if((faceCenter-center).Dot(n)<0)n=-n; glNormal3v(n); glVertex3v(t->v[a]); glVertex3v(t->v[b]); glVertex3v(t->v[c]);
+ __ONEFACE(3,0,1);
+ __ONEFACE(0,1,2);
+ __ONEFACE(1,2,3);
+ __ONEFACE(2,3,0);
+ #undef __ONEFACE
+ glEnd();
+ }
}
+#endif
-}
-
/*! Calculates tetrahedron inertia relative to the origin (0,0,0), with unit density (scales linearly).
See article F. Tonon, "Explicit Exact Formulas for the 3-D Tetrahedron Inertia Tensor in Terms of its Vertex Coordinates", http://www.scipub.org/fulltext/jms2/jms2118-11.pdf
Modified: trunk/extra/tetra/Tetra.hpp
===================================================================
--- trunk/extra/tetra/Tetra.hpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/extra/tetra/Tetra.hpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -12,7 +12,6 @@
#include<yade/pkg-common/AABB.hpp>
#include<yade/pkg-common/BoundingVolumeEngineUnit.hpp>
#include<yade/pkg-common/InteractingGeometryEngineUnit.hpp>
-#include<yade/pkg-common/GLDrawFunctors.hpp>
#include<yade/pkg-common/InteractionGeometryEngineUnit.hpp>
#include<Wm3Math.h>
@@ -112,21 +111,21 @@
};
REGISTER_SERIALIZABLE(TetraAABB);
+#ifdef YADE_OPENGL
+ #include<yade/pkg-common/GLDrawFunctors.hpp>
+ /*! Draw TetraMold using OpenGL */
+ class TetraDraw: public GLDrawInteractingGeometryFunctor
+ {
+ public:
+ virtual void go(const shared_ptr<InteractingGeometry>&, const shared_ptr<PhysicalParameters>&,bool);
-/*! Draw TetraMold using OpenGL */
+ RENDERS(TetraMold);
+ REGISTER_CLASS_NAME(TetraDraw);
+ REGISTER_BASE_CLASS_NAME(GLDrawInteractingGeometryFunctor);
+ };
+ REGISTER_SERIALIZABLE(TetraDraw);
+#endif
-class TetraDraw: public GLDrawInteractingGeometryFunctor
-{
- public:
- virtual void go(const shared_ptr<InteractingGeometry>&, const shared_ptr<PhysicalParameters>&,bool);
-
- RENDERS(TetraMold);
- REGISTER_CLASS_NAME(TetraDraw);
- REGISTER_BASE_CLASS_NAME(GLDrawInteractingGeometryFunctor);
-};
-REGISTER_SERIALIZABLE(TetraDraw);
-
-
/*! Calculate physical response based on penetration configuration given by TetraBang. */
class TetraLaw: public InteractionSolver {
Modified: trunk/lib/SConscript
===================================================================
--- trunk/lib/SConscript 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/lib/SConscript 2009-06-04 15:50:18 UTC (rev 1790)
@@ -57,7 +57,19 @@
env.SharedLibrary('BINFormatManager',['serialization-bin/BINFormatManager.cpp']),
])
+if 'YADE_OPENGL' in env['CPPDEFINES']:
+ env.Install('$PREFIX/lib/yade$SUFFIX/lib',[
+ env.SharedLibrary('yade-opengl',
+ ['opengl/FpsTracker.cpp',
+ 'opengl/GLTextLabel.cpp',
+ 'opengl/GLWindow.cpp',
+ 'opengl/GLWindowsManager.cpp',
+ 'opengl/GLUtils.cpp'],
+ LIBS=env['LIBS']+['glut','$QGLVIEWER_LIB']),
+ ])
+
+
env.Install('$PREFIX/lib/yade$SUFFIX/lib',[
env.SharedLibrary('yade-base',
@@ -109,15 +121,6 @@
['multimethods/Indexable.cpp',
'multimethods/MultiMethodsExceptions.cpp']),
- env.SharedLibrary('yade-opengl',
- ['opengl/FpsTracker.cpp',
- 'opengl/GLTextLabel.cpp',
- 'opengl/GLWindow.cpp',
- 'opengl/GLWindowsManager.cpp',
- 'opengl/GLUtils.cpp'],
- LIBS=env['LIBS']+['glut','$QGLVIEWER_LIB']),
-
-
env.SharedLibrary('XMLFormatManager',
['serialization-xml/XMLFormatManager.cpp',
'serialization-xml/XMLSaxParser.cpp'],
Modified: trunk/lib/opengl/OpenGLWrapper.hpp
===================================================================
--- trunk/lib/opengl/OpenGLWrapper.hpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/lib/opengl/OpenGLWrapper.hpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -8,6 +8,10 @@
#pragma once
+#ifndef YADE_OPENGL
+#error "This build doesn't support openGL. Therefore, this header must not be used."
+#endif
+
#include <Wm3Vector3.h>
#include<yade/lib-base/yadeWm3.hpp>
Modified: trunk/pkg/common/DataClass/BoundingVolume/BoundingSphere.cpp
===================================================================
--- trunk/pkg/common/DataClass/BoundingVolume/BoundingSphere.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/DataClass/BoundingVolume/BoundingSphere.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -8,10 +8,6 @@
#include "BoundingSphere.hpp"
-
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
-
-
BoundingSphere::BoundingSphere () : BoundingVolume()
{
createIndex();
Modified: trunk/pkg/common/DataClass/GeometricalModel/Box.cpp
===================================================================
--- trunk/pkg/common/DataClass/GeometricalModel/Box.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/DataClass/GeometricalModel/Box.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -6,7 +6,6 @@
* GNU General Public License v2 or later. See file LICENSE for details. *
*************************************************************************/
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
#include "Box.hpp"
#include <iostream>
Modified: trunk/pkg/common/DataClass/GeometricalModel/BshTube.cpp
===================================================================
--- trunk/pkg/common/DataClass/GeometricalModel/BshTube.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/DataClass/GeometricalModel/BshTube.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -7,7 +7,6 @@
*************************************************************************/
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
#include "BshTube.hpp"
#include <iostream>
Modified: trunk/pkg/common/DataClass/GeometricalModel/Facet.cpp
===================================================================
--- trunk/pkg/common/DataClass/GeometricalModel/Facet.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/DataClass/GeometricalModel/Facet.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -7,7 +7,6 @@
*************************************************************************/
#include "Facet.hpp"
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
Facet::Facet () : GeometricalModel()
{
Modified: trunk/pkg/common/DataClass/GeometricalModel/Mesh2D.cpp
===================================================================
--- trunk/pkg/common/DataClass/GeometricalModel/Mesh2D.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/DataClass/GeometricalModel/Mesh2D.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -7,11 +7,6 @@
*************************************************************************/
#include "Mesh2D.hpp"
-
-
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
-
-
#include <iostream>
Modified: trunk/pkg/common/DataClass/GeometricalModel/Sphere.cpp
===================================================================
--- trunk/pkg/common/DataClass/GeometricalModel/Sphere.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/DataClass/GeometricalModel/Sphere.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -7,7 +7,6 @@
*************************************************************************/
#include "Sphere.hpp"
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
Sphere::Sphere () : GeometricalModel()
{
Modified: trunk/pkg/common/DataClass/Widgets/ColorScale.cpp
===================================================================
--- trunk/pkg/common/DataClass/Widgets/ColorScale.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/DataClass/Widgets/ColorScale.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -7,7 +7,6 @@
*************************************************************************/
#include "ColorScale.hpp"
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
ColorScale::ColorScale () : GeometricalModel()
{
Modified: trunk/pkg/common/SConscript
===================================================================
--- trunk/pkg/common/SConscript 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/common/SConscript 2009-06-04 15:50:18 UTC (rev 1790)
@@ -141,47 +141,6 @@
env.SharedLibrary('PersistentSAPCollider',['Engine/StandAloneEngine/PersistentSAPCollider.cpp']),
env.SharedLibrary('DistantPersistentSAPCollider',['Engine/StandAloneEngine/DistantPersistentSAPCollider.cpp']),
env.SharedLibrary('PhysicalActionContainerReseter',['Engine/StandAloneEngine/PhysicalActionContainerReseter.cpp']),
- env.SharedLibrary('GLDrawAABB',['RenderingEngine/GLDrawBoundingVolume/GLDrawAABB.cpp'],
- LIBS=env['LIBS']+['yade-base','AABB','yade-opengl']),
- env.SharedLibrary('GLDrawBoundingSphere',['RenderingEngine/GLDrawBoundingVolume/GLDrawBoundingSphere.cpp'],
- LIBS=env['LIBS']+['yade-base','BoundingSphere','yade-opengl']),
- env.SharedLibrary('GLDrawTetrahedron',['RenderingEngine/GLDrawGeometricalModel/GLDrawTetrahedron.cpp'],
- LIBS=env['LIBS']+['yade-base','Tetrahedron','yade-opengl']),
- env.SharedLibrary('GLDrawBox',['RenderingEngine/GLDrawGeometricalModel/GLDrawBox.cpp'],
- LIBS=env['LIBS']+['yade-base','Box','yade-opengl']),
- env.SharedLibrary('GLDrawMesh2D',['RenderingEngine/GLDrawGeometricalModel/GLDrawMesh2D.cpp'],
- LIBS=env['LIBS']+['yade-base','Mesh2D','yade-opengl']),
- env.SharedLibrary('GLDrawSphere',['RenderingEngine/GLDrawGeometricalModel/GLDrawSphere.cpp'],
- LIBS=env['LIBS']+['yade-base','Sphere','yade-opengl']),
- env.SharedLibrary('GLDrawQuadrilateral',['RenderingEngine/GLDrawGeometricalModel/GLDrawQuadrilateral.cpp'],
- LIBS=env['LIBS']+['yade-base','Quadrilateral','yade-opengl']),
- env.SharedLibrary('GLDrawFacet',['RenderingEngine/GLDrawGeometricalModel/GLDrawFacet.cpp']
- ,LIBS=env['LIBS']+['yade-opengl','Facet']),
- env.SharedLibrary('GLDrawInteractingBox',['RenderingEngine/GLDrawInteractingGeometry/GLDrawInteractingBox.cpp'],
- LIBS=env['LIBS']+['yade-base','InteractingBox','yade-opengl']),
- env.SharedLibrary('GLDrawInteractingSphere',['RenderingEngine/GLDrawInteractingGeometry/GLDrawInteractingSphere.cpp'],
- LIBS=env['LIBS']+['yade-base','InteractingSphere','yade-opengl'],),
- env.SharedLibrary('GLDrawBssSweptSphereLineSegment',['RenderingEngine/GLDrawInteractingGeometry/GLDrawBssSweptSphereLineSegment.cpp'],
- LIBS=env['LIBS']+['yade-base','BssSweptSphereLineSegment','yade-opengl']),
- env.SharedLibrary('GLDrawMetaInteractingGeometry',['RenderingEngine/GLDrawInteractingGeometry/GLDrawMetaInteractingGeometry.cpp'],
- LIBS=env['LIBS']+['yade-opengl']),
- env.SharedLibrary('GLDrawInteractingFacet',['RenderingEngine/GLDrawInteractingGeometry/GLDrawInteractingFacet.cpp']
- ,LIBS=env['LIBS']+['yade-opengl','InteractingFacet']),
- env.SharedLibrary('GLDrawBoxShadowVolume',['RenderingEngine/GLDrawShadowVolume/GLDrawBoxShadowVolume.cpp'],
- LIBS=env['LIBS']+['Box','ParticleParameters','yade-opengl','RigidBodyParameters']),
- env.SharedLibrary('GLDrawSphereShadowVolume',['RenderingEngine/GLDrawShadowVolume/GLDrawSphereShadowVolume.cpp'],
- LIBS=env['LIBS']+['Sphere','ParticleParameters','yade-opengl']),
- env.SharedLibrary('GLDrawClosestFeatures',['RenderingEngine/GLDrawInteractionGeometry/GLDrawClosestFeatures.cpp'],
- LIBS=env['LIBS']+['yade-base','ClosestFeatures','yade-opengl']),
- env.SharedLibrary('GLDrawNormalInteraction',['RenderingEngine/GLDrawInteractionPhysics/GLDrawNormalInteraction.cpp'],LIBS=env['LIBS']+['yade-opengl','NormalShearInteractions']),
- env.SharedLibrary('GLDrawParticleState',['RenderingEngine/GLDrawState/GLDrawParticleState.cpp'],
- LIBS=env['LIBS']+['yade-base','ParticleParameters','yade-opengl']),
- env.SharedLibrary('GLDrawColorScale',['RenderingEngine/GLDrawWidgets/GLDrawColorScale.cpp'],
- LIBS=env['LIBS']+['yade-base','ColorScale','yade-opengl']),
- env.SharedLibrary('GLDrawRigidBodyState',['RenderingEngine/GLDrawState/GLDrawRigidBodyState.cpp'],
- LIBS=env['LIBS']+['ParticleParameters','RigidBodyParameters','GLDrawParticleState','yade-opengl']),
- env.SharedLibrary('OpenGLRenderingEngine',['RenderingEngine/OpenGLRenderingEngine/OpenGLRenderingEngine.cpp'],
- LIBS=env['LIBS']+['yade-base', 'glut', 'GLU', 'GL']),
# In the following, there is maybe too much defined LIBS (?)
env.SharedLibrary('BshTube',['DataClass/GeometricalModel/BshTube.cpp'],
@@ -197,8 +156,52 @@
['Engine/EngineUnit/ef2_BssSweptSphereLineSegment_AABB_makeAABB.cpp'],
LIBS=env['LIBS']+['BoundingVolumeMetaEngine','AABB','BssSweptSphereLineSegment']),
- env.SharedLibrary('GLDrawTube',['RenderingEngine/GLDrawGeometricalModel/GLDrawTube.cpp'],
- LIBS=env['LIBS']+['yade-base','BshTube','yade-opengl']),
])
+if 'YADE_OPENGL' in env['CPPDEFINES']:
+ env.Install('$PREFIX/lib/yade$SUFFIX/pkg-common',[
+ env.SharedLibrary('GLDrawAABB',['RenderingEngine/GLDrawBoundingVolume/GLDrawAABB.cpp'],
+ LIBS=env['LIBS']+['yade-base','AABB','yade-opengl']),
+ env.SharedLibrary('GLDrawBoundingSphere',['RenderingEngine/GLDrawBoundingVolume/GLDrawBoundingSphere.cpp'],
+ LIBS=env['LIBS']+['yade-base','BoundingSphere','yade-opengl']),
+ env.SharedLibrary('GLDrawTetrahedron',['RenderingEngine/GLDrawGeometricalModel/GLDrawTetrahedron.cpp'],
+ LIBS=env['LIBS']+['yade-base','Tetrahedron','yade-opengl']),
+ env.SharedLibrary('GLDrawBox',['RenderingEngine/GLDrawGeometricalModel/GLDrawBox.cpp'],
+ LIBS=env['LIBS']+['yade-base','Box','yade-opengl']),
+ env.SharedLibrary('GLDrawMesh2D',['RenderingEngine/GLDrawGeometricalModel/GLDrawMesh2D.cpp'],
+ LIBS=env['LIBS']+['yade-base','Mesh2D','yade-opengl']),
+ env.SharedLibrary('GLDrawSphere',['RenderingEngine/GLDrawGeometricalModel/GLDrawSphere.cpp'],
+ LIBS=env['LIBS']+['yade-base','Sphere','yade-opengl']),
+ env.SharedLibrary('GLDrawQuadrilateral',['RenderingEngine/GLDrawGeometricalModel/GLDrawQuadrilateral.cpp'],
+ LIBS=env['LIBS']+['yade-base','Quadrilateral','yade-opengl']),
+ env.SharedLibrary('GLDrawFacet',['RenderingEngine/GLDrawGeometricalModel/GLDrawFacet.cpp']
+ ,LIBS=env['LIBS']+['yade-opengl','Facet']),
+ env.SharedLibrary('GLDrawInteractingBox',['RenderingEngine/GLDrawInteractingGeometry/GLDrawInteractingBox.cpp'],
+ LIBS=env['LIBS']+['yade-base','InteractingBox','yade-opengl']),
+ env.SharedLibrary('GLDrawInteractingSphere',['RenderingEngine/GLDrawInteractingGeometry/GLDrawInteractingSphere.cpp'],
+ LIBS=env['LIBS']+['yade-base','InteractingSphere','yade-opengl'],),
+ env.SharedLibrary('GLDrawBssSweptSphereLineSegment',['RenderingEngine/GLDrawInteractingGeometry/GLDrawBssSweptSphereLineSegment.cpp'],
+ LIBS=env['LIBS']+['yade-base','BssSweptSphereLineSegment','yade-opengl']),
+ env.SharedLibrary('GLDrawMetaInteractingGeometry',['RenderingEngine/GLDrawInteractingGeometry/GLDrawMetaInteractingGeometry.cpp'],
+ LIBS=env['LIBS']+['yade-opengl']),
+ env.SharedLibrary('GLDrawInteractingFacet',['RenderingEngine/GLDrawInteractingGeometry/GLDrawInteractingFacet.cpp']
+ ,LIBS=env['LIBS']+['yade-opengl','InteractingFacet']),
+ env.SharedLibrary('GLDrawBoxShadowVolume',['RenderingEngine/GLDrawShadowVolume/GLDrawBoxShadowVolume.cpp'],
+ LIBS=env['LIBS']+['Box','ParticleParameters','yade-opengl','RigidBodyParameters']),
+ env.SharedLibrary('GLDrawSphereShadowVolume',['RenderingEngine/GLDrawShadowVolume/GLDrawSphereShadowVolume.cpp'],
+ LIBS=env['LIBS']+['Sphere','ParticleParameters','yade-opengl']),
+ env.SharedLibrary('GLDrawClosestFeatures',['RenderingEngine/GLDrawInteractionGeometry/GLDrawClosestFeatures.cpp'],
+ LIBS=env['LIBS']+['yade-base','ClosestFeatures','yade-opengl']),
+ env.SharedLibrary('GLDrawNormalInteraction',['RenderingEngine/GLDrawInteractionPhysics/GLDrawNormalInteraction.cpp'],LIBS=env['LIBS']+['yade-opengl','NormalShearInteractions']),
+ env.SharedLibrary('GLDrawParticleState',['RenderingEngine/GLDrawState/GLDrawParticleState.cpp'],
+ LIBS=env['LIBS']+['yade-base','ParticleParameters','yade-opengl']),
+ env.SharedLibrary('GLDrawColorScale',['RenderingEngine/GLDrawWidgets/GLDrawColorScale.cpp'],
+ LIBS=env['LIBS']+['yade-base','ColorScale','yade-opengl']),
+ env.SharedLibrary('GLDrawRigidBodyState',['RenderingEngine/GLDrawState/GLDrawRigidBodyState.cpp'],
+ LIBS=env['LIBS']+['ParticleParameters','RigidBodyParameters','GLDrawParticleState','yade-opengl']),
+ env.SharedLibrary('OpenGLRenderingEngine',['RenderingEngine/OpenGLRenderingEngine/OpenGLRenderingEngine.cpp'],
+ LIBS=env['LIBS']+['yade-base', 'glut', 'GLU', 'GL']),
+ env.SharedLibrary('GLDrawTube',['RenderingEngine/GLDrawGeometricalModel/GLDrawTube.cpp'],
+ LIBS=env['LIBS']+['yade-base','BshTube','yade-opengl']),
+ ])
Modified: trunk/pkg/dem/ConcretePM.cpp
===================================================================
--- trunk/pkg/dem/ConcretePM.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/dem/ConcretePM.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -3,12 +3,14 @@
#include<yade/core/MetaBody.hpp>
#include<yade/pkg-dem/BodyMacroParameters.hpp>
#include<yade/pkg-common/Sphere.hpp>
-#include<yade/lib-QGLViewer/qglviewer.h>
-#include<yade/lib-opengl/GLUtils.hpp>
#include<yade/pkg-dem/DemXDofGeom.hpp>
#include<yade/extra/Shop.hpp>
-YADE_PLUGIN("CpmMat","Ip2_CpmMat_CpmMat_CpmPhys","CpmPhys","Law2_Dem3DofGeom_CpmPhys_Cpm","CpmGlobalCharacteristics","GLDrawCpmPhys","CpmPhysDamageColorizer");
+YADE_PLUGIN("CpmMat","Ip2_CpmMat_CpmMat_CpmPhys","CpmPhys","Law2_Dem3DofGeom_CpmPhys_Cpm","CpmGlobalCharacteristics",
+ #ifdef YADE_OPENGL
+ "GLDrawCpmPhys",
+ #endif
+ "CpmPhysDamageColorizer");
/********************** Ip2_CpmMat_CpmMat_CpmPhys ****************************/
@@ -206,79 +208,80 @@
applyForceAtContactPoint(BC->normalForce+BC->shearForce, contGeom->contactPoint, I->getId1(), contGeom->se31.position, I->getId2(), contGeom->se32.position, rootBody);
}
+#ifdef YADE_OPENGL
+ /********************** GLDrawCpmPhys ****************************/
+ #include<yade/lib-opengl/OpenGLWrapper.hpp>
+ #include<yade/lib-opengl/GLUtils.hpp>
+ #include<yade/lib-QGLViewer/qglviewer.h>
-/********************** GLDrawCpmPhys ****************************/
+ CREATE_LOGGER(GLDrawCpmPhys);
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
+ bool GLDrawCpmPhys::contactLine=true;
+ bool GLDrawCpmPhys::dmgLabel=true;
+ bool GLDrawCpmPhys::dmgPlane=false;
+ bool GLDrawCpmPhys::epsNLabel=true;
+ bool GLDrawCpmPhys::epsT=false;
+ bool GLDrawCpmPhys::epsTAxes=false;
+ bool GLDrawCpmPhys::normal=false;
+ bool GLDrawCpmPhys::colorStrain=false;
-CREATE_LOGGER(GLDrawCpmPhys);
-bool GLDrawCpmPhys::contactLine=true;
-bool GLDrawCpmPhys::dmgLabel=true;
-bool GLDrawCpmPhys::dmgPlane=false;
-bool GLDrawCpmPhys::epsNLabel=true;
-bool GLDrawCpmPhys::epsT=false;
-bool GLDrawCpmPhys::epsTAxes=false;
-bool GLDrawCpmPhys::normal=false;
-bool GLDrawCpmPhys::colorStrain=false;
+ void GLDrawCpmPhys::go(const shared_ptr<InteractionPhysics>& ip, const shared_ptr<Interaction>& i, const shared_ptr<Body>& b1, const shared_ptr<Body>& b2, bool wireFrame){
+ const shared_ptr<CpmPhys>& BC=static_pointer_cast<CpmPhys>(ip);
+ const shared_ptr<Dem3DofGeom>& geom=YADE_PTR_CAST<Dem3DofGeom>(i->interactionGeometry);
+ //Vector3r lineColor(BC->omega,1-BC->omega,0.0); /* damaged links red, undamaged green */
+ Vector3r lineColor=Shop::scalarOnColorScale(1.-BC->relResidualStrength);
-void GLDrawCpmPhys::go(const shared_ptr<InteractionPhysics>& ip, const shared_ptr<Interaction>& i, const shared_ptr<Body>& b1, const shared_ptr<Body>& b2, bool wireFrame){
- const shared_ptr<CpmPhys>& BC=static_pointer_cast<CpmPhys>(ip);
- const shared_ptr<Dem3DofGeom>& geom=YADE_PTR_CAST<Dem3DofGeom>(i->interactionGeometry);
+ if(colorStrain) lineColor=Vector3r(
+ min((Real)1.,max((Real)0.,-BC->epsTrans/BC->epsCrackOnset)),
+ min((Real)1.,max((Real)0.,BC->epsTrans/BC->epsCrackOnset)),
+ min((Real)1.,max((Real)0.,abs(BC->epsTrans)/BC->epsCrackOnset-1)));
- //Vector3r lineColor(BC->omega,1-BC->omega,0.0); /* damaged links red, undamaged green */
- Vector3r lineColor=Shop::scalarOnColorScale(1.-BC->relResidualStrength);
+ if(contactLine) GLUtils::GLDrawLine(b1->physicalParameters->dispSe3.position,b2->physicalParameters->dispSe3.position,lineColor);
+ if(dmgLabel){ GLUtils::GLDrawNum(BC->omega,0.5*(b1->physicalParameters->dispSe3.position+b2->physicalParameters->dispSe3.position),lineColor); }
+ else if(epsNLabel){ GLUtils::GLDrawNum(BC->epsN,0.5*(b1->physicalParameters->dispSe3.position+b2->physicalParameters->dispSe3.position),lineColor); }
+ if(BC->omega>0 && dmgPlane){
+ Real halfSize=sqrt(1-BC->relResidualStrength)*.5*.705*sqrt(BC->crossSection);
+ Vector3r midPt=.5*Vector3r(b1->physicalParameters->dispSe3.position+b2->physicalParameters->dispSe3.position);
+ glDisable(GL_CULL_FACE);
+ glPushMatrix();
+ glTranslatev(midPt);
+ Quaternionr q; q.Align(Vector3r::UNIT_Z,geom->normal);
+ Vector3r axis; Real angle; q.ToAxisAngle(axis,angle);
+ glRotatef(angle*Mathr::RAD_TO_DEG,axis[0],axis[1],axis[2]);
+ glBegin(GL_POLYGON);
+ glColor3v(lineColor);
+ glVertex3d(halfSize,0.,0.);
+ glVertex3d(.5*halfSize,.866*halfSize,0.);
+ glVertex3d(-.5*halfSize,.866*halfSize,0.);
+ glVertex3d(-halfSize,0.,0.);
+ glVertex3d(-.5*halfSize,-.866*halfSize,0.);
+ glVertex3d(.5*halfSize,-.866*halfSize,0.);
+ glEnd();
+ glPopMatrix();
+ }
- if(colorStrain) lineColor=Vector3r(
- min((Real)1.,max((Real)0.,-BC->epsTrans/BC->epsCrackOnset)),
- min((Real)1.,max((Real)0.,BC->epsTrans/BC->epsCrackOnset)),
- min((Real)1.,max((Real)0.,abs(BC->epsTrans)/BC->epsCrackOnset-1)));
+ const Vector3r& cp=static_pointer_cast<Dem3DofGeom>(i->interactionGeometry)->contactPoint;
+ if(epsT){
+ Real maxShear=(BC->undamagedCohesion-BC->sigmaN*BC->tanFrictionAngle)/BC->G;
+ Real relShear=BC->epsT.Length()/maxShear;
+ Real scale=.5*geom->refLength;
+ Vector3r dirShear=BC->epsT; dirShear.Normalize();
+ if(epsTAxes){
+ GLUtils::GLDrawLine(cp-Vector3r(scale,0,0),cp+Vector3r(scale,0,0));
+ GLUtils::GLDrawLine(cp-Vector3r(0,scale,0),cp+Vector3r(0,scale,0));
+ GLUtils::GLDrawLine(cp-Vector3r(0,0,scale),cp+Vector3r(0,0,scale));
+ }
+ GLUtils::GLDrawArrow(cp,cp+dirShear*relShear*scale,Vector3r(1.,0.,0.));
+ GLUtils::GLDrawLine(cp+dirShear*relShear*scale,cp+dirShear*scale,Vector3r(.3,.3,.3));
- if(contactLine) GLUtils::GLDrawLine(b1->physicalParameters->dispSe3.position,b2->physicalParameters->dispSe3.position,lineColor);
- if(dmgLabel){ GLUtils::GLDrawNum(BC->omega,0.5*(b1->physicalParameters->dispSe3.position+b2->physicalParameters->dispSe3.position),lineColor); }
- else if(epsNLabel){ GLUtils::GLDrawNum(BC->epsN,0.5*(b1->physicalParameters->dispSe3.position+b2->physicalParameters->dispSe3.position),lineColor); }
- if(BC->omega>0 && dmgPlane){
- Real halfSize=sqrt(1-BC->relResidualStrength)*.5*.705*sqrt(BC->crossSection);
- Vector3r midPt=.5*Vector3r(b1->physicalParameters->dispSe3.position+b2->physicalParameters->dispSe3.position);
- glDisable(GL_CULL_FACE);
- glPushMatrix();
- glTranslatev(midPt);
- Quaternionr q; q.Align(Vector3r::UNIT_Z,geom->normal);
- Vector3r axis; Real angle; q.ToAxisAngle(axis,angle);
- glRotatef(angle*Mathr::RAD_TO_DEG,axis[0],axis[1],axis[2]);
- glBegin(GL_POLYGON);
- glColor3v(lineColor);
- glVertex3d(halfSize,0.,0.);
- glVertex3d(.5*halfSize,.866*halfSize,0.);
- glVertex3d(-.5*halfSize,.866*halfSize,0.);
- glVertex3d(-halfSize,0.,0.);
- glVertex3d(-.5*halfSize,-.866*halfSize,0.);
- glVertex3d(.5*halfSize,-.866*halfSize,0.);
- glEnd();
- glPopMatrix();
- }
-
- const Vector3r& cp=static_pointer_cast<Dem3DofGeom>(i->interactionGeometry)->contactPoint;
- if(epsT){
- Real maxShear=(BC->undamagedCohesion-BC->sigmaN*BC->tanFrictionAngle)/BC->G;
- Real relShear=BC->epsT.Length()/maxShear;
- Real scale=.5*geom->refLength;
- Vector3r dirShear=BC->epsT; dirShear.Normalize();
- if(epsTAxes){
- GLUtils::GLDrawLine(cp-Vector3r(scale,0,0),cp+Vector3r(scale,0,0));
- GLUtils::GLDrawLine(cp-Vector3r(0,scale,0),cp+Vector3r(0,scale,0));
- GLUtils::GLDrawLine(cp-Vector3r(0,0,scale),cp+Vector3r(0,0,scale));
+ /* normal strain */ GLUtils::GLDrawArrow(cp,cp+geom->normal*(BC->epsN/maxShear),Vector3r(0.,1.,0.));
}
- GLUtils::GLDrawArrow(cp,cp+dirShear*relShear*scale,Vector3r(1.,0.,0.));
- GLUtils::GLDrawLine(cp+dirShear*relShear*scale,cp+dirShear*scale,Vector3r(.3,.3,.3));
-
- /* normal strain */ GLUtils::GLDrawArrow(cp,cp+geom->normal*(BC->epsN/maxShear),Vector3r(0.,1.,0.));
+ //if(normal) GLUtils::GLDrawArrow(cp,cp+geom->normal*.5*BC->equilibriumDist,Vector3r(0.,1.,0.));
}
- //if(normal) GLUtils::GLDrawArrow(cp,cp+geom->normal*.5*BC->equilibriumDist,Vector3r(0.,1.,0.));
-}
+#endif
-
/********************** CpmGlobalCharacteristics ****************************/
CREATE_LOGGER(CpmGlobalCharacteristics);
Modified: trunk/pkg/dem/ConcretePM.hpp
===================================================================
--- trunk/pkg/dem/ConcretePM.hpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/dem/ConcretePM.hpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -50,7 +50,6 @@
#include<yade/pkg-dem/BodyMacroParameters.hpp>
#include<yade/pkg-common/InteractionPhysicsEngineUnit.hpp>
#include<yade/pkg-dem/SpheresContactGeometry.hpp>
-#include<yade/pkg-common/GLDrawFunctors.hpp>
#include<yade/pkg-common/PeriodicEngines.hpp>
#include<yade/pkg-common/NormalShearInteractions.hpp>
#include<yade/pkg-common/ConstitutiveLaw.hpp>
@@ -292,16 +291,19 @@
};
REGISTER_SERIALIZABLE(CpmGlobalCharacteristics);
-class GLDrawCpmPhys: public GLDrawInteractionPhysicsFunctor {
- public: virtual void go(const shared_ptr<InteractionPhysics>&,const shared_ptr<Interaction>&,const shared_ptr<Body>&,const shared_ptr<Body>&,bool wireFrame);
- virtual ~GLDrawCpmPhys() {};
- REGISTER_ATTRIBUTES(/*no base*/,(contactLine)(dmgLabel)(dmgPlane)(epsT)(epsTAxes)(normal)(colorStrain)(epsNLabel));
- RENDERS(CpmPhys);
- REGISTER_CLASS_AND_BASE(GLDrawCpmPhys,GLDrawInteractionPhysicsFunctor);
- DECLARE_LOGGER;
- static bool contactLine,dmgLabel,dmgPlane,epsT,epsTAxes,normal,colorStrain,epsNLabel;
-};
-REGISTER_SERIALIZABLE(GLDrawCpmPhys);
+#ifdef YADE_OPENGL
+ #include<yade/pkg-common/GLDrawFunctors.hpp>
+ class GLDrawCpmPhys: public GLDrawInteractionPhysicsFunctor {
+ public: virtual void go(const shared_ptr<InteractionPhysics>&,const shared_ptr<Interaction>&,const shared_ptr<Body>&,const shared_ptr<Body>&,bool wireFrame);
+ virtual ~GLDrawCpmPhys() {};
+ REGISTER_ATTRIBUTES(/*no base*/,(contactLine)(dmgLabel)(dmgPlane)(epsT)(epsTAxes)(normal)(colorStrain)(epsNLabel));
+ RENDERS(CpmPhys);
+ REGISTER_CLASS_AND_BASE(GLDrawCpmPhys,GLDrawInteractionPhysicsFunctor);
+ DECLARE_LOGGER;
+ static bool contactLine,dmgLabel,dmgPlane,epsT,epsTAxes,normal,colorStrain,epsNLabel;
+ };
+ REGISTER_SERIALIZABLE(GLDrawCpmPhys);
+#endif
class CpmPhysDamageColorizer: public PeriodicEngine {
struct BodyStats{ short nCohLinks; Real dmgSum; Real epsPlSum; BodyStats(): nCohLinks(0), dmgSum(0), epsPlSum(0.){} };
Modified: trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.cpp
===================================================================
--- trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -1,7 +1,11 @@
#include "Dem3DofGeom_FacetSphere.hpp"
#include<yade/pkg-common/InteractingSphere.hpp>
#include<yade/pkg-common/InteractingFacet.hpp>
-YADE_PLUGIN("Dem3DofGeom_FacetSphere","GLDraw_Dem3DofGeom_FacetSphere","ef2_Facet_Sphere_Dem3DofGeom");
+YADE_PLUGIN("Dem3DofGeom_FacetSphere",
+ #ifdef YADE_OPENGL
+ "GLDraw_Dem3DofGeom_FacetSphere",
+ #endif
+ "ef2_Facet_Sphere_Dem3DofGeom");
CREATE_LOGGER(Dem3DofGeom_FacetSphere);
Dem3DofGeom_FacetSphere::~Dem3DofGeom_FacetSphere(){}
@@ -152,46 +156,48 @@
return true;
}
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
-#include<yade/lib-opengl/GLUtils.hpp>
+#ifdef YADE_OPENGL
-bool GLDraw_Dem3DofGeom_FacetSphere::normal=false;
-bool GLDraw_Dem3DofGeom_FacetSphere::rolledPoints=false;
-bool GLDraw_Dem3DofGeom_FacetSphere::unrolledPoints=false;
-bool GLDraw_Dem3DofGeom_FacetSphere::shear=false;
-bool GLDraw_Dem3DofGeom_FacetSphere::shearLabel=false;
+ #include<yade/lib-opengl/OpenGLWrapper.hpp>
+ #include<yade/lib-opengl/GLUtils.hpp>
-void GLDraw_Dem3DofGeom_FacetSphere::go(const shared_ptr<InteractionGeometry>& ig, const shared_ptr<Interaction>& ip, const shared_ptr<Body>& b1, const shared_ptr<Body>& b2, bool wireFrame){
- Dem3DofGeom_FacetSphere* fs = static_cast<Dem3DofGeom_FacetSphere*>(ig.get());
- //const Se3r& se31=b1->physicalParameters->dispSe3,se32=b2->physicalParameters->dispSe3;
- const Se3r& se31=b1->physicalParameters->se3,se32=b2->physicalParameters->se3;
- const Vector3r& pos1=se31.position; const Vector3r& pos2=se32.position;
- const Quaternionr& ori1=se31.orientation; const Quaternionr& ori2=se32.orientation;
- const Vector3r& contPt=fs->contactPoint;
-
- if(normal){
- GLUtils::GLDrawArrow(contPt,contPt+fs->refLength*fs->normal); // normal of the contact
- }
- // sphere center to point on the sphere
- if(rolledPoints){
- //cerr<<pos1<<" "<<pos1+ori1*fs->cp1pt<<" "<<contPt<<endl;
- GLUtils::GLDrawLine(pos1+ori1*fs->cp1pt,contPt,Vector3r(0,.5,1));
- GLUtils::GLDrawLine(pos2,pos2+(ori2*fs->cp2rel*Vector3r::UNIT_X*fs->effR2),Vector3r(0,1,.5));
- }
- // contact point to projected points
- if(unrolledPoints||shear){
- Vector3r ptTg1=fs->contPtInTgPlane1(), ptTg2=fs->contPtInTgPlane2();
- if(unrolledPoints){
- //TRVAR3(ptTg1,ptTg2,ss->normal)
- GLUtils::GLDrawLine(contPt,contPt+ptTg1,Vector3r(0,.5,1));
- GLUtils::GLDrawLine(contPt,contPt+ptTg2,Vector3r(0,1,.5)); GLUtils::GLDrawLine(pos2,contPt+ptTg2,Vector3r(0,1,.5));
+ bool GLDraw_Dem3DofGeom_FacetSphere::normal=false;
+ bool GLDraw_Dem3DofGeom_FacetSphere::rolledPoints=false;
+ bool GLDraw_Dem3DofGeom_FacetSphere::unrolledPoints=false;
+ bool GLDraw_Dem3DofGeom_FacetSphere::shear=false;
+ bool GLDraw_Dem3DofGeom_FacetSphere::shearLabel=false;
+
+ void GLDraw_Dem3DofGeom_FacetSphere::go(const shared_ptr<InteractionGeometry>& ig, const shared_ptr<Interaction>& ip, const shared_ptr<Body>& b1, const shared_ptr<Body>& b2, bool wireFrame){
+ Dem3DofGeom_FacetSphere* fs = static_cast<Dem3DofGeom_FacetSphere*>(ig.get());
+ //const Se3r& se31=b1->physicalParameters->dispSe3,se32=b2->physicalParameters->dispSe3;
+ const Se3r& se31=b1->physicalParameters->se3,se32=b2->physicalParameters->se3;
+ const Vector3r& pos1=se31.position; const Vector3r& pos2=se32.position;
+ const Quaternionr& ori1=se31.orientation; const Quaternionr& ori2=se32.orientation;
+ const Vector3r& contPt=fs->contactPoint;
+
+ if(normal){
+ GLUtils::GLDrawArrow(contPt,contPt+fs->refLength*fs->normal); // normal of the contact
}
- if(shear){
- GLUtils::GLDrawLine(contPt+ptTg1,contPt+ptTg2,Vector3r(1,1,1));
- if(shearLabel) GLUtils::GLDrawNum(fs->displacementT().Length(),contPt,Vector3r(1,1,1));
+ // sphere center to point on the sphere
+ if(rolledPoints){
+ //cerr<<pos1<<" "<<pos1+ori1*fs->cp1pt<<" "<<contPt<<endl;
+ GLUtils::GLDrawLine(pos1+ori1*fs->cp1pt,contPt,Vector3r(0,.5,1));
+ GLUtils::GLDrawLine(pos2,pos2+(ori2*fs->cp2rel*Vector3r::UNIT_X*fs->effR2),Vector3r(0,1,.5));
}
+ // contact point to projected points
+ if(unrolledPoints||shear){
+ Vector3r ptTg1=fs->contPtInTgPlane1(), ptTg2=fs->contPtInTgPlane2();
+ if(unrolledPoints){
+ //TRVAR3(ptTg1,ptTg2,ss->normal)
+ GLUtils::GLDrawLine(contPt,contPt+ptTg1,Vector3r(0,.5,1));
+ GLUtils::GLDrawLine(contPt,contPt+ptTg2,Vector3r(0,1,.5)); GLUtils::GLDrawLine(pos2,contPt+ptTg2,Vector3r(0,1,.5));
+ }
+ if(shear){
+ GLUtils::GLDrawLine(contPt+ptTg1,contPt+ptTg2,Vector3r(1,1,1));
+ if(shearLabel) GLUtils::GLDrawNum(fs->displacementT().Length(),contPt,Vector3r(1,1,1));
+ }
+ }
}
-}
+#endif
-
Modified: trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp
===================================================================
--- trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.hpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -38,16 +38,18 @@
};
REGISTER_SERIALIZABLE(Dem3DofGeom_FacetSphere);
-#include<yade/pkg-common/GLDrawFunctors.hpp>
-class GLDraw_Dem3DofGeom_FacetSphere:public GLDrawInteractionGeometryFunctor{
- public:
- virtual void go(const shared_ptr<InteractionGeometry>&,const shared_ptr<Interaction>&,const shared_ptr<Body>&,const shared_ptr<Body>&,bool wireFrame);
- static bool normal,rolledPoints,unrolledPoints,shear,shearLabel;
- RENDERS(Dem3DofGeom_FacetSphere);
- REGISTER_CLASS_AND_BASE(GLDraw_Dem3DofGeom_FacetSphere,GLDrawInteractionGeometryFunctor);
- REGISTER_ATTRIBUTES(GLDrawInteractionGeometryFunctor, (normal)(rolledPoints)(unrolledPoints)(shear)(shearLabel) );
-};
-REGISTER_SERIALIZABLE(GLDraw_Dem3DofGeom_FacetSphere);
+#ifdef YADE_OPENGL
+ #include<yade/pkg-common/GLDrawFunctors.hpp>
+ class GLDraw_Dem3DofGeom_FacetSphere:public GLDrawInteractionGeometryFunctor{
+ public:
+ virtual void go(const shared_ptr<InteractionGeometry>&,const shared_ptr<Interaction>&,const shared_ptr<Body>&,const shared_ptr<Body>&,bool wireFrame);
+ static bool normal,rolledPoints,unrolledPoints,shear,shearLabel;
+ RENDERS(Dem3DofGeom_FacetSphere);
+ REGISTER_CLASS_AND_BASE(GLDraw_Dem3DofGeom_FacetSphere,GLDrawInteractionGeometryFunctor);
+ REGISTER_ATTRIBUTES(GLDrawInteractionGeometryFunctor, (normal)(rolledPoints)(unrolledPoints)(shear)(shearLabel) );
+ };
+ REGISTER_SERIALIZABLE(GLDraw_Dem3DofGeom_FacetSphere);
+#endif
#include<yade/pkg-common/InteractionGeometryEngineUnit.hpp>
class ef2_Facet_Sphere_Dem3DofGeom:public InteractionGeometryEngineUnit{
Modified: trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp
===================================================================
--- trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -2,7 +2,11 @@
#include<yade/pkg-common/InteractingSphere.hpp>
#include<yade/core/Omega.hpp>
-YADE_PLUGIN("Dem3DofGeom_SphereSphere","GLDraw_Dem3DofGeom_SphereSphere","ef2_Sphere_Sphere_Dem3DofGeom");
+YADE_PLUGIN("Dem3DofGeom_SphereSphere",
+ #ifdef YADE_OPENGL
+ "GLDraw_Dem3DofGeom_SphereSphere",
+ #endif
+ "ef2_Sphere_Sphere_Dem3DofGeom");
Dem3DofGeom_SphereSphere::~Dem3DofGeom_SphereSphere(){}
@@ -88,66 +92,63 @@
}
}
+#ifdef YADE_OPENGL
+ #include<yade/lib-opengl/OpenGLWrapper.hpp>
+ #include<yade/lib-opengl/GLUtils.hpp>
+ bool GLDraw_Dem3DofGeom_SphereSphere::normal=false;
+ bool GLDraw_Dem3DofGeom_SphereSphere::rolledPoints=false;
+ bool GLDraw_Dem3DofGeom_SphereSphere::unrolledPoints=false;
+ bool GLDraw_Dem3DofGeom_SphereSphere::shear=false;
+ bool GLDraw_Dem3DofGeom_SphereSphere::shearLabel=false;
-#include<yade/lib-opengl/OpenGLWrapper.hpp>
-#include<yade/lib-opengl/GLUtils.hpp>
-
-
-
-bool GLDraw_Dem3DofGeom_SphereSphere::normal=false;
-bool GLDraw_Dem3DofGeom_SphereSphere::rolledPoints=false;
-bool GLDraw_Dem3DofGeom_SphereSphere::unrolledPoints=false;
-bool GLDraw_Dem3DofGeom_SphereSphere::shear=false;
-bool GLDraw_Dem3DofGeom_SphereSphere::shearLabel=false;
-
-void GLDraw_Dem3DofGeom_SphereSphere::go(const shared_ptr<InteractionGeometry>& ig, const shared_ptr<Interaction>& ip, const shared_ptr<Body>& b1, const shared_ptr<Body>& b2, bool wireFrame){
- Dem3DofGeom_SphereSphere* ss = static_cast<Dem3DofGeom_SphereSphere*>(ig.get());
- //const Se3r& se31=b1->physicalParameters->dispSe3,se32=b2->physicalParameters->dispSe3;
- const Se3r& se31=b1->physicalParameters->se3,se32=b2->physicalParameters->se3;
- const Vector3r& pos1=se31.position,pos2=se32.position;
- Vector3r& contPt=ss->contactPoint;
-
- if(normal){
- GLUtils::GLDrawArrow(contPt,contPt+ss->normal*.5*ss->refLength); // normal of the contact
- }
- #if 0
- // never used, since bending/torsion not used
- //Vector3r contPt=se31.position+(ss->effR1/ss->refLength)*(se32.position-se31.position); // must be recalculated to not be unscaled if scaling displacements ...
- GLUtils::GLDrawLine(pos1,pos2,Vector3r(.5,.5,.5));
- Vector3r bend; Real tors;
- ss->bendingTorsionRel(bend,tors);
- GLUtils::GLDrawLine(contPt,contPt+10*ss->radius1*(bend+ss->normal*tors),Vector3r(1,0,0));
+ void GLDraw_Dem3DofGeom_SphereSphere::go(const shared_ptr<InteractionGeometry>& ig, const shared_ptr<Interaction>& ip, const shared_ptr<Body>& b1, const shared_ptr<Body>& b2, bool wireFrame){
+ Dem3DofGeom_SphereSphere* ss = static_cast<Dem3DofGeom_SphereSphere*>(ig.get());
+ //const Se3r& se31=b1->physicalParameters->dispSe3,se32=b2->physicalParameters->dispSe3;
+ const Se3r& se31=b1->physicalParameters->se3,se32=b2->physicalParameters->se3;
+ const Vector3r& pos1=se31.position,pos2=se32.position;
+ Vector3r& contPt=ss->contactPoint;
+
+ if(normal){
+ GLUtils::GLDrawArrow(contPt,contPt+ss->normal*.5*ss->refLength); // normal of the contact
+ }
#if 0
- GLUtils::GLDrawNum(bend[0],contPt-.2*ss->normal*ss->radius1,Vector3r(1,0,0));
- GLUtils::GLDrawNum(bend[1],contPt,Vector3r(0,1,0));
- GLUtils::GLDrawNum(bend[2],contPt+.2*ss->normal*ss->radius1,Vector3r(0,0,1));
- GLUtils::GLDrawNum(tors,contPt+.5*ss->normal*ss->radius2,Vector3r(1,1,0));
+ // never used, since bending/torsion not used
+ //Vector3r contPt=se31.position+(ss->effR1/ss->refLength)*(se32.position-se31.position); // must be recalculated to not be unscaled if scaling displacements ...
+ GLUtils::GLDrawLine(pos1,pos2,Vector3r(.5,.5,.5));
+ Vector3r bend; Real tors;
+ ss->bendingTorsionRel(bend,tors);
+ GLUtils::GLDrawLine(contPt,contPt+10*ss->radius1*(bend+ss->normal*tors),Vector3r(1,0,0));
+ #if 0
+ GLUtils::GLDrawNum(bend[0],contPt-.2*ss->normal*ss->radius1,Vector3r(1,0,0));
+ GLUtils::GLDrawNum(bend[1],contPt,Vector3r(0,1,0));
+ GLUtils::GLDrawNum(bend[2],contPt+.2*ss->normal*ss->radius1,Vector3r(0,0,1));
+ GLUtils::GLDrawNum(tors,contPt+.5*ss->normal*ss->radius2,Vector3r(1,1,0));
+ #endif
#endif
- #endif
- // sphere center to point on the sphere
- if(rolledPoints){
- GLUtils::GLDrawLine(pos1,pos1+(ss->ori1*ss->cp1rel*Vector3r::UNIT_X*ss->effR1),Vector3r(0,.5,1));
- GLUtils::GLDrawLine(pos2,pos2+(ss->ori2*ss->cp2rel*Vector3r::UNIT_X*ss->effR2),Vector3r(0,1,.5));
- }
- //TRVAR4(pos1,ss->ori1,pos2,ss->ori2);
- //TRVAR2(ss->cp2rel,pos2+(ss->ori2*ss->cp2rel*Vector3r::UNIT_X*ss->effR2));
- // contact point to projected points
- if(unrolledPoints||shear){
- Vector3r ptTg1=ss->contPtInTgPlane1(), ptTg2=ss->contPtInTgPlane2();
- if(unrolledPoints){
- //TRVAR3(ptTg1,ptTg2,ss->normal)
- GLUtils::GLDrawLine(contPt,contPt+ptTg1,Vector3r(0,.5,1)); GLUtils::GLDrawLine(pos1,contPt+ptTg1,Vector3r(0,.5,1));
- GLUtils::GLDrawLine(contPt,contPt+ptTg2,Vector3r(0,1,.5)); GLUtils::GLDrawLine(pos2,contPt+ptTg2,Vector3r(0,1,.5));
+ // sphere center to point on the sphere
+ if(rolledPoints){
+ GLUtils::GLDrawLine(pos1,pos1+(ss->ori1*ss->cp1rel*Vector3r::UNIT_X*ss->effR1),Vector3r(0,.5,1));
+ GLUtils::GLDrawLine(pos2,pos2+(ss->ori2*ss->cp2rel*Vector3r::UNIT_X*ss->effR2),Vector3r(0,1,.5));
}
- if(shear){
- GLUtils::GLDrawLine(contPt+ptTg1,contPt+ptTg2,Vector3r(1,1,1));
- if(shearLabel) GLUtils::GLDrawNum(ss->displacementT().Length(),contPt,Vector3r(1,1,1));
+ //TRVAR4(pos1,ss->ori1,pos2,ss->ori2);
+ //TRVAR2(ss->cp2rel,pos2+(ss->ori2*ss->cp2rel*Vector3r::UNIT_X*ss->effR2));
+ // contact point to projected points
+ if(unrolledPoints||shear){
+ Vector3r ptTg1=ss->contPtInTgPlane1(), ptTg2=ss->contPtInTgPlane2();
+ if(unrolledPoints){
+ //TRVAR3(ptTg1,ptTg2,ss->normal)
+ GLUtils::GLDrawLine(contPt,contPt+ptTg1,Vector3r(0,.5,1)); GLUtils::GLDrawLine(pos1,contPt+ptTg1,Vector3r(0,.5,1));
+ GLUtils::GLDrawLine(contPt,contPt+ptTg2,Vector3r(0,1,.5)); GLUtils::GLDrawLine(pos2,contPt+ptTg2,Vector3r(0,1,.5));
+ }
+ if(shear){
+ GLUtils::GLDrawLine(contPt+ptTg1,contPt+ptTg2,Vector3r(1,1,1));
+ if(shearLabel) GLUtils::GLDrawNum(ss->displacementT().Length(),contPt,Vector3r(1,1,1));
+ }
}
}
-}
+ CREATE_LOGGER(ef2_Sphere_Sphere_Dem3DofGeom);
+#endif
-CREATE_LOGGER(ef2_Sphere_Sphere_Dem3DofGeom);
-
bool ef2_Sphere_Sphere_Dem3DofGeom::go(const shared_ptr<InteractingGeometry>& cm1, const shared_ptr<InteractingGeometry>& cm2, const Se3r& se31, const Se3r& se32, const shared_ptr<Interaction>& c){
InteractingSphere *s1=static_cast<InteractingSphere*>(cm1.get()), *s2=static_cast<InteractingSphere*>(cm2.get());
Vector3r normal=se32.position-se31.position;
Modified: trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp
===================================================================
--- trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/dem/DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.hpp 2009-06-04 15:50:18 UTC (rev 1790)
@@ -42,16 +42,18 @@
};
REGISTER_SERIALIZABLE(Dem3DofGeom_SphereSphere);
-#include<yade/pkg-common/GLDrawFunctors.hpp>
-class GLDraw_Dem3DofGeom_SphereSphere:public GLDrawInteractionGeometryFunctor{
- public:
- virtual void go(const shared_ptr<InteractionGeometry>&,const shared_ptr<Interaction>&,const shared_ptr<Body>&,const shared_ptr<Body>&,bool wireFrame);
- static bool normal,rolledPoints,unrolledPoints,shear,shearLabel;
- //RENDERS(Dem3DofGeom_SphereSphere);
- //REGISTER_CLASS_AND_BASE(GLDraw_Dem3DofGeom_SphereSphere,GLDrawInteractionGeometryFunctor);
- REGISTER_ATTRIBUTES(GLDrawInteractionGeometryFunctor,(normal)(rolledPoints)(unrolledPoints)(shear)(shearLabel));
-};
-REGISTER_SERIALIZABLE(GLDraw_Dem3DofGeom_SphereSphere);
+#ifdef YADE_OPENGL
+ #include<yade/pkg-common/GLDrawFunctors.hpp>
+ class GLDraw_Dem3DofGeom_SphereSphere:public GLDrawInteractionGeometryFunctor{
+ public:
+ virtual void go(const shared_ptr<InteractionGeometry>&,const shared_ptr<Interaction>&,const shared_ptr<Body>&,const shared_ptr<Body>&,bool wireFrame);
+ static bool normal,rolledPoints,unrolledPoints,shear,shearLabel;
+ //RENDERS(Dem3DofGeom_SphereSphere);
+ //REGISTER_CLASS_AND_BASE(GLDraw_Dem3DofGeom_SphereSphere,GLDrawInteractionGeometryFunctor);
+ REGISTER_ATTRIBUTES(GLDrawInteractionGeometryFunctor,(normal)(rolledPoints)(unrolledPoints)(shear)(shearLabel));
+ };
+ REGISTER_SERIALIZABLE(GLDraw_Dem3DofGeom_SphereSphere);
+#endif
#include<yade/pkg-common/InteractionGeometryEngineUnit.hpp>
class ef2_Sphere_Sphere_Dem3DofGeom:public InteractionGeometryEngineUnit{
Modified: trunk/pkg/dem/SConscript
===================================================================
--- trunk/pkg/dem/SConscript 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/dem/SConscript 2009-06-04 15:50:18 UTC (rev 1790)
@@ -14,10 +14,6 @@
'SDECLinkGeometry',
'SpheresContactGeometry',
'BodyMacroParameters',
- 'yade-serialization',
- 'yade-base',
- 'GLDrawInteractingSphere',
- 'yade-multimethods',
'Sphere',
'RigidBodyParameters',
'InteractingSphere',
@@ -37,8 +33,8 @@
env.Install('$PREFIX/lib/yade$SUFFIX/pkg-dem',[
env.SharedLibrary('DemXDofGeom',['DataClass/InteractionGeometry/DemXDofGeom.cpp']),
- env.SharedLibrary('Dem3DofGeom_SphereSphere',['DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp'],LIBS=env['LIBS']+['RigidBodyParameters','InteractingSphere','yade-opengl','DemXDofGeom']),
- env.SharedLibrary('Dem3DofGeom_FacetSphere',['DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.cpp'],LIBS=env['LIBS']+['RigidBodyParameters','InteractingSphere','InteractingFacet','yade-opengl','Dem3DofGeom_SphereSphere','DemXDofGeom']),
+ env.SharedLibrary('Dem3DofGeom_SphereSphere',['DataClass/InteractionGeometry/Dem3DofGeom_SphereSphere.cpp'],LIBS=env['LIBS']+['RigidBodyParameters','InteractingSphere','DemXDofGeom','yade-opengl' if 'YADE_OPENGL' in env['CPPDEFINES'] else '']),
+ env.SharedLibrary('Dem3DofGeom_FacetSphere',['DataClass/InteractionGeometry/Dem3DofGeom_FacetSphere.cpp'],LIBS=env['LIBS']+['RigidBodyParameters','InteractingSphere','InteractingFacet','Dem3DofGeom_SphereSphere','DemXDofGeom','yade-opengl' if 'YADE_OPENGL' in env['CPPDEFINES'] else '']),
env.SharedLibrary('FacetTopologyAnalyzer',['Engine/StandAloneEngine/FacetTopologyAnalyzer.cpp'],LIBS=env['LIBS']+['InteractingFacet']),
@@ -241,10 +237,6 @@
'DemXDofGeom',
'SpheresContactGeometry',
'BodyMacroParameters',
- 'yade-serialization',
- 'yade-base',
- 'GLDrawInteractingSphere',
- 'yade-multimethods',
'Sphere',
'RigidBodyParameters']),
@@ -359,35 +351,7 @@
'TriaxialStressController',
'Shop']),
- env.SharedLibrary('GLDrawInteractingMyTetrahedron',
- ['RenderingEngine/GLDrawInteractingMyTetrahedron/GLDrawInteractingMyTetrahedron.cpp'],
- LIBS=env['LIBS']+['InteractingMyTetrahedron', 'yade-opengl']),
- env.SharedLibrary('GLDrawCohesiveFrictionalContactInteraction',
- ['RenderingEngine/GLDrawCohesiveFrictionalContactInteraction/GLDrawCohesiveFrictionalContactInteraction.cpp'],
- LIBS=env['LIBS']+['CohesiveFrictionalContactInteraction','SpheresContactGeometry',
- 'GLDrawElasticContactInteraction',
- 'ElasticContactInteraction',
- 'yade-opengl','$QGLVIEWER_LIB']),
-
- env.SharedLibrary('GLDrawElasticContactInteraction',
- ['RenderingEngine/GLDrawElasticContactInteraction/GLDrawElasticContactInteraction.cpp'],
- LIBS=env['LIBS']+['SpheresContactGeometry',
- 'ElasticContactInteraction',
- 'yade-opengl','$QGLVIEWER_LIB']),
-
- env.SharedLibrary('GLDrawSpheresContactGeometry',
- ['RenderingEngine/GLDrawSpheresContactGeometry/GLDrawSpheresContactGeometry.cpp'],
- LIBS=env['LIBS']+['SpheresContactGeometry',
- 'ElasticContactInteraction',
- 'yade-opengl','$QGLVIEWER_LIB']),
-
- env.SharedLibrary('GLDrawSDECLinkGeometry',
- ['RenderingEngine/GLDrawSDECLinkGeometry/GLDrawSDECLinkGeometry.cpp'],
- LIBS=env['LIBS']+['SDECLinkGeometry',
- 'SDECLinkPhysics',
- 'yade-opengl']),
-
env.SharedLibrary('Funnel',
['PreProcessor/Funnel.cpp'],
LIBS=env['LIBS']+['SDECLinkGeometry',
@@ -980,10 +944,6 @@
,['DataClass/InteractionPhysics/ViscoelasticInteraction.cpp']
,LIBS=env['LIBS']+['ElasticContactInteraction'])
- ,env.SharedLibrary('GLDrawViscoelasticInteraction'
- ,['RenderingEngine/GLDrawViscoelasticInteraction/GLDrawViscoelasticInteraction.cpp']
- ,LIBS=env['LIBS']+['yade-opengl','ViscoelasticInteraction'])
-
,env.SharedLibrary('SimpleViscoelasticRelationships'
,['Engine/EngineUnit/SimpleViscoelasticRelationships.cpp']
,LIBS=env['LIBS']+['SimpleViscoelasticBodyParameters'
@@ -1112,3 +1072,39 @@
#chdir='/home/bruno/YADE/trunk_svn/extra/triangulation')
])
+
+if 'YADE_OPENGL' in env['CPPDEFINES']:
+ env.Install('$PREFIX/lib/yade$SUFFIX/pkg-dem',[
+
+ env.SharedLibrary('GLDrawInteractingMyTetrahedron',
+ ['RenderingEngine/GLDrawInteractingMyTetrahedron/GLDrawInteractingMyTetrahedron.cpp'],
+ LIBS=env['LIBS']+['InteractingMyTetrahedron', 'yade-opengl']),
+
+ env.SharedLibrary('GLDrawCohesiveFrictionalContactInteraction',
+ ['RenderingEngine/GLDrawCohesiveFrictionalContactInteraction/GLDrawCohesiveFrictionalContactInteraction.cpp'],
+ LIBS=env['LIBS']+['CohesiveFrictionalContactInteraction','SpheresContactGeometry',
+ 'GLDrawElasticContactInteraction',
+ 'ElasticContactInteraction',
+ 'yade-opengl','$QGLVIEWER_LIB']),
+
+ env.SharedLibrary('GLDrawElasticContactInteraction',
+ ['RenderingEngine/GLDrawElasticContactInteraction/GLDrawElasticContactInteraction.cpp'],
+ LIBS=env['LIBS']+['SpheresContactGeometry',
+ 'ElasticContactInteraction',
+ 'yade-opengl','$QGLVIEWER_LIB']),
+
+ env.SharedLibrary('GLDrawSpheresContactGeometry',
+ ['RenderingEngine/GLDrawSpheresContactGeometry/GLDrawSpheresContactGeometry.cpp'],
+ LIBS=env['LIBS']+['SpheresContactGeometry',
+ 'ElasticContactInteraction',
+ 'yade-opengl','$QGLVIEWER_LIB']),
+
+ env.SharedLibrary('GLDrawSDECLinkGeometry',
+ ['RenderingEngine/GLDrawSDECLinkGeometry/GLDrawSDECLinkGeometry.cpp'],
+ LIBS=env['LIBS']+['SDECLinkGeometry',
+ 'SDECLinkPhysics',
+ 'yade-opengl']),
+ env.SharedLibrary('GLDrawViscoelasticInteraction'
+ ,['RenderingEngine/GLDrawViscoelasticInteraction/GLDrawViscoelasticInteraction.cpp']
+ ,LIBS=env['LIBS']+['yade-opengl','ViscoelasticInteraction'])
+ ])
Modified: trunk/pkg/lattice/SConscript
===================================================================
--- trunk/pkg/lattice/SConscript 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/lattice/SConscript 2009-06-04 15:50:18 UTC (rev 1790)
@@ -111,42 +111,6 @@
'LatticeNodeParameters'],
CPPPATH=env['CPPPATH']+['DataClass/PhysicalParameters']),
- env.SharedLibrary('GLDrawLineSegment',
- ['RenderingEngine/GLDrawLineSegment/GLDrawLineSegment.cpp'],
- LIBS=env['LIBS']+['yade-base', 'LineSegment', 'yade-opengl'],
- CPPPATH=env['CPPPATH']+['DataClass/GeometricalModel']),
-
- env.SharedLibrary('GLDrawLatticeBeamState',
- ['RenderingEngine/GLDrawLatticeBeamState/GLDrawLatticeBeamState.cpp'],
- LIBS=env['LIBS']+['yade-base', 'LatticeBeamParameters', 'yade-opengl'],
- CPPPATH=env['CPPPATH']+['DataClass/PhysicalParameters']),
-
- env.SharedLibrary('GLDrawLatticeSetGeometry',
- ['RenderingEngine/GLDrawLatticeSetGeometry/GLDrawLatticeSetGeometry.cpp'],
- LIBS=env['LIBS']+['yade-base',
- 'LatticeSetGeometry',
- 'LatticeSetParameters',
- 'LatticeBeamParameters',
- 'LatticeNodeParameters',
- 'yade-opengl',
- 'yade-computational-geometry'],
- CPPPATH=env['CPPPATH']+['DataClass/GeometricalModel',
- 'DataClass/PhysicalParameters']),
-
- env.SharedLibrary('GLDrawLatticeInteractingGeometry',
- ['RenderingEngine/GLDrawLatticeInteractingGeometry/GLDrawLatticeInteractingGeometry.cpp'],
- LIBS=env['LIBS']+['yade-base',
- 'LatticeSetGeometry',
- 'LatticeSetParameters',
- 'LatticeBeamParameters',
- 'LatticeNodeParameters',
- 'LatticeInteractingGeometry',
- 'yade-opengl',
- 'yade-computational-geometry'],
- CPPPATH=env['CPPPATH']+['DataClass/GeometricalModel',
- 'DataClass/InteractingGeometry',
- 'DataClass/PhysicalParameters']),
-
env.SharedLibrary('LatticeExampleSimple',
['PreProcessor/LatticeExampleSimple.cpp'],
LIBS=env['LIBS']+['yade-base',
@@ -259,3 +223,39 @@
'DataClass/PhysicalParameters'])
])
+if 'YADE_OPENGL' in env['CPPDEFINES']:
+ env.Install('$PREFIX/lib/yade$SUFFIX/pkg-lattice',[
+ env.SharedLibrary('GLDrawLineSegment',
+ ['RenderingEngine/GLDrawLineSegment/GLDrawLineSegment.cpp'],
+ LIBS=env['LIBS']+['yade-base', 'LineSegment', 'yade-opengl'],
+ CPPPATH=env['CPPPATH']+['DataClass/GeometricalModel']),
+ env.SharedLibrary('GLDrawLatticeBeamState',
+ ['RenderingEngine/GLDrawLatticeBeamState/GLDrawLatticeBeamState.cpp'],
+ LIBS=env['LIBS']+['yade-base', 'LatticeBeamParameters', 'yade-opengl'],
+ CPPPATH=env['CPPPATH']+['DataClass/PhysicalParameters']),
+ env.SharedLibrary('GLDrawLatticeSetGeometry',
+ ['RenderingEngine/GLDrawLatticeSetGeometry/GLDrawLatticeSetGeometry.cpp'],
+ LIBS=env['LIBS']+['yade-base',
+ 'LatticeSetGeometry',
+ 'LatticeSetParameters',
+ 'LatticeBeamParameters',
+ 'LatticeNodeParameters',
+ 'yade-opengl',
+ 'yade-computational-geometry'],
+ CPPPATH=env['CPPPATH']+['DataClass/GeometricalModel',
+ 'DataClass/PhysicalParameters']),
+ env.SharedLibrary('GLDrawLatticeInteractingGeometry',
+ ['RenderingEngine/GLDrawLatticeInteractingGeometry/GLDrawLatticeInteractingGeometry.cpp'],
+ LIBS=env['LIBS']+['yade-base',
+ 'LatticeSetGeometry',
+ 'LatticeSetParameters',
+ 'LatticeBeamParameters',
+ 'LatticeNodeParameters',
+ 'LatticeInteractingGeometry',
+ 'yade-opengl',
+ 'yade-computational-geometry'],
+ CPPPATH=env['CPPPATH']+['DataClass/GeometricalModel',
+ 'DataClass/InteractingGeometry',
+ 'DataClass/PhysicalParameters']),
+ ])
+
Modified: trunk/pkg/snow/SConscript
===================================================================
--- trunk/pkg/snow/SConscript 2009-06-04 14:17:27 UTC (rev 1789)
+++ trunk/pkg/snow/SConscript 2009-06-04 15:50:18 UTC (rev 1790)
@@ -1,48 +1,102 @@
# vim: set filetype=python :
Import('*')
+
+if 'YADE_OPENGL' in env['CPPDEFINES']:
+ env.Install('$PREFIX/lib/yade$SUFFIX/pkg-snow',[
+ env.SharedLibrary('Ef1_IstSnowLayersContact_glDraw',
+ ['RenderingEngine/Ef1_IstSnowLayersContact_glDraw.cpp'],
+ LIBS=env['LIBS']+['SpheresContactGeometry','ElasticContactInteraction','yade-opengl','IstSnowLayersContact',
+ 'BshSnowGrain','BssSnowGrain','$QGLVIEWER_LIB']),
+ env.SharedLibrary('Ef1_BssSnowGrain_glDraw',['RenderingEngine/Ef1_BssSnowGrain_glDraw.cpp'],
+ LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base','BssSnowGrain','GLDrawInteractingSphere','$QGLVIEWER_LIB']),
+ env.SharedLibrary('Ef1_BshSnowGrain_glDraw',['RenderingEngine/Ef1_BshSnowGrain_glDraw.cpp'],
+ LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base','$QGLVIEWER_LIB']),
+ env.SharedLibrary('SnowVoxelsLoader',
+ ['PreProcessor/SnowVoxelsLoader.cpp',
+ 'PreProcessor/Voxel/DataSurface.cpp',
+ 'PreProcessor/Voxel/DataVoxel.cpp',
+ 'PreProcessor/Voxel/GrainSurface.cpp',
+ 'PreProcessor/Voxel/SafeVectors3.cpp',
+ 'PreProcessor/Voxel/VoxelEnvelope.cpp',
+ 'PreProcessor/Voxel/Config.cpp'],
+ LIBS=env['LIBS']+['boost_serialization','boost_program_options']+['SDECLinkGeometry',
+ 'CohesiveFrictionalContactLaw',
+ 'AveragePositionRecorder',
+ 'BshSnowGrain',
+ 'BssSnowGrain',
+ 'VelocityRecorder',
+ 'Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact',
+ 'Ef2_BssSnowGrain_BssSnowGrain_makeIstSnowLayersContact',
+ 'Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry',
+ 'Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry',
+ 'ForceRecorder',
+ 'CohesiveFrictionalRelationships',
+ 'ElasticCriterionTimeStepper',
+ 'InteractingSphere',
+ 'InteractingBox',
+ 'InteractingSphere2InteractingSphere4SpheresContactGeometry',
+ 'InteractingBox2InteractingSphere4SpheresContactGeometry',
+ 'ElawSnowLayersDeformation',
+ 'CundallNonViscousDamping',
+ 'CundallNonViscousDamping',
+ 'MetaInteractingGeometry',
+ 'GravityEngines',
+ 'yade-serialization',
+ 'PhysicalActionContainerReseter',
+ 'InteractionGeometryMetaEngine',
+ 'InteractionPhysicsMetaEngine',
+ 'PhysicalActionApplier',
+ 'PhysicalParametersMetaEngine',
+ 'BoundingVolumeMetaEngine',
+ 'yade-multimethods',
+ 'Box',
+ 'Sphere',
+ 'AABB',
+ 'DistantPersistentSAPCollider',
+ 'MetaInteractingGeometry2AABB',
+ 'TriaxialStressController',
+ 'TriaxialCompressionEngine',
+ 'GlobalStiffnessTimeStepper',
+ 'yade-base',
+ 'Shop',
+ 'TriaxialStateRecorder',
+ 'PositionOrientationRecorder',
+ 'HydraulicForceEngine']),
+ ])
+
+
env.Install('$PREFIX/lib/yade$SUFFIX/pkg-snow',[
- env.SharedLibrary('Ef1_IstSnowLayersContact_glDraw',
- ['RenderingEngine/Ef1_IstSnowLayersContact_glDraw.cpp'],
- LIBS=env['LIBS']+['SpheresContactGeometry','ElasticContactInteraction','yade-opengl','IstSnowLayersContact',
- 'BshSnowGrain','BssSnowGrain','$QGLVIEWER_LIB']),
-
env.SharedLibrary('IstSnowLayersContact',
['DataClass/IstSnowLayersContact.cpp'],
LIBS=env['LIBS']+['yade-serialization','yade-base','SpheresContactGeometry']),
env.SharedLibrary('Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact',
['Engine/Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact.cpp'],
- LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base',
+ LIBS=env['LIBS']+['BshSnowGrain','yade-base',
'BssSnowGrain','InteractingBox','IstSnowLayersContact',
'Ef2_BssSnowGrain_BssSnowGrain_makeIstSnowLayersContact','Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry']),
env.SharedLibrary('Ef2_BssSnowGrain_BssSnowGrain_makeIstSnowLayersContact',
['Engine/Ef2_BssSnowGrain_BssSnowGrain_makeIstSnowLayersContact.cpp'],
- LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base','IstSnowLayersContact',
+ LIBS=env['LIBS']+['BshSnowGrain','yade-base','IstSnowLayersContact',
'BssSnowGrain','InteractingSphere','Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry']),
env.SharedLibrary('Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry',
['Engine/Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry.cpp'],
- LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base',
+ LIBS=env['LIBS']+['BshSnowGrain','yade-base',
'BssSnowGrain','InteractingBox','InteractingBox2InteractingSphere4SpheresContactGeometry']),
env.SharedLibrary('Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry',
['Engine/Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry.cpp'],
- LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base',
+ LIBS=env['LIBS']+['BshSnowGrain','yade-base',
'BssSnowGrain','InteractingSphere','InteractingSphere2InteractingSphere4SpheresContactGeometry']),
env.SharedLibrary('Ef2_BssSnowGrain_AABB_makeAABB',['Engine/Ef2_BssSnowGrain_AABB_makeAABB.cpp'],
LIBS=env['LIBS']+['BoundingVolumeMetaEngine','InteractingSphere','BssSnowGrain','AABB']),
- env.SharedLibrary('Ef1_BssSnowGrain_glDraw',['RenderingEngine/Ef1_BssSnowGrain_glDraw.cpp'],
- LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base','BssSnowGrain','GLDrawInteractingSphere','$QGLVIEWER_LIB']),
-
- env.SharedLibrary('Ef1_BshSnowGrain_glDraw',['RenderingEngine/Ef1_BshSnowGrain_glDraw.cpp'],
- LIBS=env['LIBS']+['BshSnowGrain','yade-opengl','yade-base','$QGLVIEWER_LIB']),
-
env.SharedLibrary('BshSnowGrain',['DataClass/BshSnowGrain.cpp'],LIBS=['boost_serialization','yade-base']),
env.SharedLibrary('BssSnowGrain',['DataClass/BssSnowGrain.cpp'],LIBS=['boost_serialization','yade-base','BshSnowGrain',
'InteractingSphere']),
@@ -62,57 +116,6 @@
'Sphere',
'RigidBodyParameters']),
- env.SharedLibrary('SnowVoxelsLoader',
- ['PreProcessor/SnowVoxelsLoader.cpp',
- 'PreProcessor/Voxel/DataSurface.cpp',
- 'PreProcessor/Voxel/DataVoxel.cpp',
- 'PreProcessor/Voxel/GrainSurface.cpp',
- 'PreProcessor/Voxel/SafeVectors3.cpp',
- 'PreProcessor/Voxel/VoxelEnvelope.cpp',
- 'PreProcessor/Voxel/Config.cpp'],
- LIBS=env['LIBS']+['boost_serialization','boost_program_options']+['SDECLinkGeometry',
- 'CohesiveFrictionalContactLaw',
- 'AveragePositionRecorder',
- 'BshSnowGrain',
- 'BssSnowGrain',
- 'VelocityRecorder',
- 'Ef2_InteractingBox_BssSnowGrain_makeIstSnowLayersContact',
- 'Ef2_BssSnowGrain_BssSnowGrain_makeIstSnowLayersContact',
- 'Ef2_InteractingBox_BssSnowGrain_makeSpheresContactGeometry',
- 'Ef2_BssSnowGrain_BssSnowGrain_makeSpheresContactGeometry',
- 'ForceRecorder',
- 'CohesiveFrictionalRelationships',
- 'ElasticCriterionTimeStepper',
- 'InteractingSphere',
- 'InteractingBox',
- 'InteractingSphere2InteractingSphere4SpheresContactGeometry',
- 'InteractingBox2InteractingSphere4SpheresContactGeometry',
- 'ElawSnowLayersDeformation',
- 'CundallNonViscousDamping',
- 'CundallNonViscousDamping',
- 'MetaInteractingGeometry',
- 'GravityEngines',
- 'yade-serialization',
- 'PhysicalActionContainerReseter',
- 'InteractionGeometryMetaEngine',
- 'InteractionPhysicsMetaEngine',
- 'PhysicalActionApplier',
- 'PhysicalParametersMetaEngine',
- 'BoundingVolumeMetaEngine',
- 'yade-multimethods',
- 'Box',
- 'Sphere',
- 'AABB',
- 'DistantPersistentSAPCollider',
- 'MetaInteractingGeometry2AABB',
- 'TriaxialStressController',
- 'TriaxialCompressionEngine',
- 'GlobalStiffnessTimeStepper',
- 'yade-base',
- 'Shop',
- 'TriaxialStateRecorder',
- 'PositionOrientationRecorder',
- 'HydraulicForceEngine']),
env.SharedLibrary('SnowCreepTest',
['PreProcessor/SnowCreepTest.cpp'],