← Back to team overview

yade-dev team mailing list archive

[Branch ~yade-dev/yade/trunk] Rev 1786: Add 'deprecated' feature which guards code pending removal.

 

------------------------------------------------------------
revno: 1786
committer: Václav Šmilauer <vaclav@flux>
branch nick: trunk
timestamp: Sun 2009-11-15 10:32:52 +0100
message:
  Add 'deprecated' feature which guards code pending removal.
  To compile those, you have to add 'deprecated' to features. 
  
  Currently, the following parts are deprecated; if they don't compile cleanly, fix it yourself.
  They will be removed shortly (week or so) unless someone actively takes the maintenance over
  (I will not; mailing-list protests are not enough, we're dragging enough crappy code already):
  
   a) BodyRedirectionVector
   b) *MyTetrahedron*
   c) realtime-rigidbody, *ClosestFeatures*
   d) fem
   e) simulation player (since we have VTK & paraview, which works _much_ better), SQLiteRecorder
      (can we remove filtering engines now as well?)
removed:
  pkg/common/Container/
  pkg/common/Container/BodyAssocVector.hpp
  pkg/common/Container/BodyRedirectionVector.hpp
  pkg/common/Container/InteractionHashMap.hpp
  pkg/common/Container/InteractionVecMap.hpp
modified:
  SConstruct
  core/MetaBody.cpp
  core/SConscript
  gui/SConscript
  gui/py/PythonUI.cpp
  gui/qt3/QtGUI-python.cpp
  gui/qt3/YadeQtMainWindow.cpp
  gui/qt3/YadeQtMainWindow.hpp
  gui/qt3/qt.py
  lib/multimethods/FunctorWrapper.hpp
  pkg/common/DataClass/InteractionGeometry/ClosestFeatures.cpp
  pkg/common/RenderingEngine/GLDrawInteractionGeometry/GLDrawClosestFeatures.cpp
  pkg/dem/DataClass/InteractingGeometry/InteractingMyTetrahedron.cpp
  pkg/dem/DataClass/InteractionGeometry/InteractionOfMyTetrahedron.cpp
  pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2AABB.cpp
  pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingBox4InteractionOfMyTetrahedron.cpp
  pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingMyTetrahedron4InteractionOfMyTetrahedron.cpp
  pkg/dem/Engine/EngineUnit/Tetrahedron2InteractingMyTetrahedron.cpp
  pkg/dem/Engine/StandAloneEngine/MyTetrahedronLaw.cpp
  pkg/dem/Engine/StandAloneEngine/SQLiteRecorder.cpp
  pkg/dem/PreProcessor/HydraulicTest.cpp
  pkg/dem/PreProcessor/STLImporterTest.cpp
  pkg/dem/PreProcessor/TestSimpleViscoelastic.cpp
  pkg/dem/PreProcessor/TetrahedronsTest.cpp
  pkg/dem/RenderingEngine/GLDrawInteractingMyTetrahedron/GLDrawInteractingMyTetrahedron.cpp
  pkg/fem/DataClass/GeometricalModel/FEMSetGeometry.cpp
  pkg/fem/DataClass/PhysicalParameters/FEMNodeData.cpp
  pkg/fem/DataClass/PhysicalParameters/FEMSetParameters.cpp
  pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp
  pkg/fem/Engine/EngineUnit/FEMSet2Tetrahedrons.cpp
  pkg/fem/Engine/EngineUnit/FEMSetTextLoader.cpp
  pkg/fem/Engine/EngineUnit/FEMTetrahedronStiffness.cpp
  pkg/fem/Engine/StandAloneEngine/FEMLaw.cpp
  pkg/fem/PreProcessor/FEMBeam.cpp
  pkg/lattice/PreProcessor/LatticeExample.cpp
  pkg/lattice/PreProcessor/LatticeExample.hpp
  pkg/lattice/PreProcessor/LatticeExampleCTData.hpp
  pkg/lattice/PreProcessor/LatticeExampleSimple.hpp
  pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingBox4ClosestFeatures.cpp
  pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingSphere4ClosestFeatures.cpp
  pkg/realtime-rigidbody/Engine/EngineUnit/InteractingSphere2InteractingSphere4ClosestFeatures.cpp
  pkg/realtime-rigidbody/Engine/StandAloneEngine/FrictionLessElasticContactLaw.cpp
  pkg/realtime-rigidbody/PreProcessor/BoxStack.cpp
  pkg/realtime-rigidbody/PreProcessor/RotatingBox.cpp
  pkg/snow/PreProcessor/SnowCreepTest.cpp
  pkg/snow/PreProcessor/SnowVoxelsLoader.cpp


--
lp:yade
https://code.launchpad.net/~yade-dev/yade/trunk

Your team Yade developers is subscribed to branch lp:yade.
To unsubscribe from this branch go to https://code.launchpad.net/~yade-dev/yade/trunk/+edit-subscription.
=== modified file 'SConstruct'
--- SConstruct	2009-11-14 12:32:32 +0000
+++ SConstruct	2009-11-15 09:32:52 +0000
@@ -138,7 +138,7 @@
 	ListVariable('exclude','Yade components that will not be built','none',names=['qt3','gui','extra','common','dem','fem','lattice','realtime-rigidbody','snow']),
 	EnumVariable('PGO','Whether to "gen"erate or "use" Profile-Guided Optimization','',['','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,opengl,gts,openmp',names=['opengl','python','log4cxx','cgal','openmp','gts','vtk']),
+	ListVariable('features','Optional features that are turned on','python,log4cxx,opengl,gts,openmp',names=['opengl','python','log4cxx','cgal','openmp','gts','vtk','deprecated']),
 	('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','..'),

=== modified file 'core/MetaBody.cpp'
--- core/MetaBody.cpp	2009-11-14 12:32:32 +0000
+++ core/MetaBody.cpp	2009-11-15 09:32:52 +0000
@@ -22,7 +22,6 @@
 
 /* this is meant to improve usability: MetaBody is ready by default (so is Omega by that token)
  * and different type of containers can still be used instead by explicit assignment */
-#include<yade/core/BodyRedirectionVector.hpp>
 #include<yade/core/BodyVector.hpp>
 #include<yade/core/InteractionVecMap.hpp>
 

=== modified file 'core/SConscript'
--- core/SConscript	2009-11-14 12:37:19 +0000
+++ core/SConscript	2009-11-15 09:32:52 +0000
@@ -24,10 +24,10 @@
 			'ThreadWorker.cpp',
 			'TimeStepper.cpp',
 			'yade.cpp',
-			'containers/BodyRedirectionVector.cpp',
 			'containers/BodyVector.cpp',
 			'containers/InteractionVecMap.cpp',
-			]),
+			]+(['containers/BodyRedirectionVector.cpp',] if 'deprecated' in env['features'] else [])
+			),
 		LIBS=env['LIBS']+[
 			'yade-support',
 			'sqlite3x',

=== modified file 'gui/SConscript'
--- gui/SConscript	2009-07-29 19:05:42 +0000
+++ gui/SConscript	2009-11-15 09:32:52 +0000
@@ -14,14 +14,12 @@
 				'qt3/SimulationController.cpp',
 				'qt3/YadeQtMainWindow.cpp',
 				'qt3/YadeCamera.cpp',
-				'qt3/GLSimulationPlayerViewer.cpp',
-				'qt3/QtSimulationPlayer.cpp',
 				'qt3/QtGeneratedSimulationController.ui',
-				'qt3/QtGeneratedSimulationPlayer.ui',
 				'qt3/QtGeneratedMessageDialog.ui',
 				'qt3/YadeQtGeneratedMainWindow.ui',
 				'qt3/QtFileGeneratorController.ui',
-				],
+				]+(['qt3/QtSimulationPlayer.cpp','qt3/GLSimulationPlayerViewer.cpp','qt3/QtGeneratedSimulationPlayer.ui',] if 'deprecated' in env['features'] else [])
+				,
 			LIBS=(['PythonUI'] if 'YADE_PYTHON' in env['CPPDEFINES'] else [])+[
 				'yade-serialization-qt',
 				linkPlugins(['GravityEngines','OpenGLRenderingEngine','PositionOrientationRecorder','FilterEngine']),
@@ -34,8 +32,8 @@
 	### HACK that works around https://bugs.launchpad.net/yade/+bug/406343
 	### (not clear why scons is not picking up the dependency automatically, though)
 	###
-	gens=['$buildDir/gui/qt3/'+h for h in 'QtGeneratedSimulationController.h','QtGeneratedSimulationPlayer.h','QtGeneratedMessageDialog.h','YadeQtGeneratedMainWindow.h','QtFileGeneratorController.h']
-	env.Depends(['qt3/FileDialog.cpp','qt3/GLViewer.cpp','qt3/MessageDialog.cpp','qt3/QtFileGenerator.cpp','qt3/QtGUI.cpp','qt3/QtGUIPreferences.cpp','qt3/SimulationController.cpp','qt3/YadeQtMainWindow.cpp','qt3/YadeCamera.cpp','qt3/GLSimulationPlayerViewer.cpp','qt3/QtSimulationPlayer.cpp'],gens)
+	#gens=['$buildDir/gui/qt3/'+h for h in 'QtGeneratedSimulationController.h','QtGeneratedMessageDialog.h','YadeQtGeneratedMainWindow.h','QtFileGeneratorController.h']+(['QtGeneratedSimulationPlayer.h'] if 'deprecated' in env['features'] else [])
+	#env.Depends(['qt3/FileDialog.cpp','qt3/GLViewer.cpp','qt3/MessageDialog.cpp','qt3/QtFileGenerator.cpp','qt3/QtGUI.cpp','qt3/QtGUIPreferences.cpp','qt3/SimulationController.cpp','qt3/YadeQtMainWindow.cpp','qt3/YadeCamera.cpp']+(['qt3/GLSimulationPlayerViewer.cpp','qt3/QtSimulationPlayer.cpp'] if 'deprecated' in env['features'] else []),gens)
 
 import os.path
 

=== modified file 'gui/py/PythonUI.cpp'
--- gui/py/PythonUI.cpp	2009-08-20 09:38:22 +0000
+++ gui/py/PythonUI.cpp	2009-11-15 09:32:52 +0000
@@ -86,7 +86,33 @@
 		PyRun_SimpleString("import yade");
 		PyRun_SimpleString("from __future__ import division");
 
+		std::string features("[");
+		#ifdef YADE_OPENMP
+			features+="'openmp',";
+		#endif
+		#ifdef YADE_OPENGL
+			features+="'opengl',";
+		#endif
+		#ifdef YADE_VTK
+			features+="'vtk',";
+		#endif
+		#ifdef YADE_GTS
+			features+="'gts',";
+		#endif
+		#ifdef YADE_CGAL
+			features+="'cgal',";
+		#endif
+		#ifdef YADE_LOG4CXX
+			features+="'log4cxx',";
+		#endif
+		#ifdef YADE_DEPRECATED
+			features+="'deprecated',";
+		#endif
+		features+="]";
+
+
 		#define PYTHON_DEFINE_STRING(pyName,cxxName) PyRun_SimpleString((string("yade.runtime." pyName "='")+cxxName+"'").c_str())
+		#define PYTHON_DEFINE_RAW(pyName,cxxName) PyRun_SimpleString((string("yade.runtime." pyName "=")+cxxName).c_str())
 		#define PYTHON_DEFINE_BOOL(pyName,cxxName) PyRun_SimpleString((string("yade.runtime." pyName "=")+(cxxName?"True":"False")).c_str())
 			// wrap those in python::handle<> ??
 			PYTHON_DEFINE_STRING("prefix",prefix);
@@ -94,6 +120,7 @@
 			PYTHON_DEFINE_STRING("executable",Omega::instance().origArgv[0]);
 			PYTHON_DEFINE_STRING("simulation",Omega::instance().getSimulationFileName());
 			PYTHON_DEFINE_STRING("script",runScript);
+			PYTHON_DEFINE_RAW("features",features);
 			PYTHON_DEFINE_BOOL("stopAfter",stopAfter);
 			PYTHON_DEFINE_BOOL("nonInteractive",nonInteractive);
 			{ ostringstream oss; oss<<"yade.runtime.argv=["; if(scriptArgs.size()>0){ FOREACH(string s, scriptArgs) oss<<"'"<<s<<"',"; } oss<<"]"; PyRun_SimpleString(oss.str().c_str()); }

=== modified file 'gui/qt3/QtGUI-python.cpp'
--- gui/qt3/QtGUI-python.cpp	2009-08-27 22:29:04 +0000
+++ gui/qt3/QtGUI-python.cpp	2009-11-15 09:32:52 +0000
@@ -2,8 +2,10 @@
 #include<boost/python.hpp>
 #include<yade/pkg-common/OpenGLRenderingEngine.hpp>
 
-#include"GLSimulationPlayerViewer.hpp"
-#include"QtSimulationPlayer.hpp"
+#ifdef YADE_DEPRECATED
+	#include"GLSimulationPlayerViewer.hpp"
+	#include"QtSimulationPlayer.hpp"
+#endif
 
 #include<qapplication.h>
 #include<qcolor.h>
@@ -35,7 +37,9 @@
 void OpenGLRenderingEngine_setBodiesRefSe3(const shared_ptr<OpenGLRenderingEngine>& self){ self->setBodiesRefSe3(Omega::instance().getRootBody()); }
 
 #define POST_SYNTH_EVENT(EVT,checker) void evt##EVT(){QApplication::postEvent(ensuredMainWindow(),new QCustomEvent(YadeQtMainWindow::EVENT_##EVT)); bool wait=true; if(wait){while(!(bool)(ensuredMainWindow()->checker)) usleep(50000);} }
-POST_SYNTH_EVENT(PLAYER,player);
+#ifdef YADE_DEPRECATED
+	POST_SYNTH_EVENT(PLAYER,player);
+#endif
 POST_SYNTH_EVENT(CONTROLLER,controller);
 POST_SYNTH_EVENT(GENERATOR,generator);
 #undef POST_SYNT_EVENT
@@ -44,7 +48,7 @@
 void restoreGLViewerState_str(string str){string* s=new string(str); QApplication::postEvent(ensuredMainWindow(),new QCustomEvent((QEvent::Type)YadeQtMainWindow::EVENT_RESTORE_GLVIEWER_STR,(void*)s));}
 void restoreGLViewerState_num(int dispStateNo){int* i=new int(dispStateNo); QApplication::postEvent(ensuredMainWindow(),new QCustomEvent((QEvent::Type)YadeQtMainWindow::EVENT_RESTORE_GLVIEWER_NUM,(void*)i));}
 
-
+#ifdef YADE_DEPRECATED
 /* This function adds the ability to non-interactively run the player. 
  *
  * @param savedSim is simulation saved by either SQLiteRecorder (preferrably) or 
@@ -114,8 +118,8 @@
 	return python::make_tuple(snapBase2+"-%.04d.png",snaps);
 }
 
-
 BOOST_PYTHON_FUNCTION_OVERLOADS(runPlayerSession_overloads,runPlayerSession,2,7);
+#endif
 
 qglviewer::Vec tuple2vec(python::tuple t){ qglviewer::Vec ret; for(int i=0;i<3;i++){python::extract<Real> e(t[i]); if(!e.check()) throw invalid_argument("Element #"+lexical_cast<string>(i)+" is not a number"); ret[i]=e();} return ret;};
 python::tuple vec2tuple(qglviewer::Vec v){return python::make_tuple(v[0],v[1],v[2]);};
@@ -172,26 +176,29 @@
 	return ret;
 };
 
+#ifdef YADE_DEPRECATED
 pyGLViewer getPlayerView(){
 	shared_ptr<QtSimulationPlayer> player=ensuredMainWindow()->player;
 	if(!player) throw runtime_error("Player is not active, unable to get its view");
 	return pyGLViewer(0);
 }
-
+#endif
 
 BOOST_PYTHON_MODULE(_qt){
 	def("Generator",evtGENERATOR,"Start simulation generator");
 	def("Controller",evtCONTROLLER,"Start simulation controller");
-	def("Player",evtPLAYER,"Start simulation player");
 	def("View",evtVIEW,"Create new 3d view");
 	def("center",centerViews,"Center all existing views.");
 	def("Renderer",ensuredRenderer,"Return wrapped OpenGLRenderingEngine; the renderer is constructed if necessary.");
 	def("close",Quit);
 	def("isActive",qtGuiIsActive,"Whether the Qt GUI is being used.");
 	def("activate",qtGuiActivate,"Attempt to activate the Qt GUI from within python.");
-	def("runPlayerSession",runPlayerSession,runPlayerSession_overloads(args("savedQGLState","dispParamsNo","stride","postLoadHook","startWait")));
 	def("views",getAllViews);
-	def("getPlayerView",getPlayerView,"Get the 3d view of the player (raises exception if player not active)");
+	#ifdef YADE_DEPRECATED
+		def("Player",evtPLAYER,"Start simulation player");
+		def("runPlayerSession",runPlayerSession,runPlayerSession_overloads(args("savedQGLState","dispParamsNo","stride","postLoadHook","startWait")));
+		def("getPlayerView",getPlayerView,"Get the 3d view of the player (raises exception if player not active)");
+	#endif
 
 	python::class_<OpenGLRenderingEngine, shared_ptr<OpenGLRenderingEngine>, python::bases<Serializable>, noncopyable>("OpenGLRenderingEngine")
 		.def("setRefSe3",&OpenGLRenderingEngine_setBodiesRefSe3,"Make current positions and orientation reference for scaleDisplacements and scaleRotations.");

=== modified file 'gui/qt3/YadeQtMainWindow.cpp'
--- gui/qt3/YadeQtMainWindow.cpp	2009-08-20 19:55:52 +0000
+++ gui/qt3/YadeQtMainWindow.cpp	2009-11-15 09:32:52 +0000
@@ -22,6 +22,7 @@
 #include <qtoolbar.h>
 #include <qimage.h>
 #include <qpixmap.h>
+#include <qbutton.h>
 #include <boost/filesystem/operations.hpp>
 #include <boost/filesystem/convenience.hpp>
 #include <boost/date_time/posix_time/posix_time.hpp>
@@ -75,6 +76,10 @@
 	resize(preferences->mainWindowSizeX,preferences->mainWindowSizeY);
 	move(preferences->mainWindowPositionX,preferences->mainWindowPositionY);
 
+	#ifndef YADE_DEPRECATED
+		btPlayer->setEnabled(false);
+	#endif
+
 	// HACK
 	if(!guiMayDisappear && Omega::instance().getSimulationFileName()!="") createController();
 
@@ -87,7 +92,11 @@
 	#if 1
 	//shared_ptr<MetaBody> rb=Omega::instance().getRootBody();
 		//if((rb && rb->bodies->size()>0) ||
-		if(controller || player || generator) {this->hide();}
+		if(controller || 
+			#ifdef YADE_DEPRECATED
+				player ||
+			#endif
+			generator) {this->hide();}
 		else { if(!guiMayDisappear) this->show(); }
 	#endif
 	// update GL views (if any)
@@ -239,7 +248,9 @@
 
 void YadeQtMainWindow::closeAllChilds(bool closeGL){
 	if(closeGL){ while(glViews.size()>0 && glViews[0]!=NULL) { LOG_DEBUG("glViews.size()="<<glViews.size()<<", glViews[0]="<<glViews[0]); closeView(-1);} }
-	if(player) player=shared_ptr<QtSimulationPlayer>();
+	#ifdef YADE_DEPRECATED
+		if(player) player=shared_ptr<QtSimulationPlayer>();
+	#endif
 	if(controller) controller=shared_ptr<SimulationController>();
 	if(generator) generator=shared_ptr<QtFileGenerator>();
 }
@@ -248,7 +259,9 @@
 	switch(e->type()){
 		case EVENT_CONTROLLER: createController(); break;
 		case EVENT_VIEW: createView(); break;
-		case EVENT_PLAYER: createPlayer(); break;
+		#ifdef YADE_DEPRECATED
+			case EVENT_PLAYER: createPlayer(); break;
+		#endif
 		case EVENT_GENERATOR: createGenerator(); break;
 		case EVENT_RESIZE_VIEW: {
 			vector<int>* d=(vector<int>*)e->data();

=== modified file 'gui/qt3/YadeQtMainWindow.hpp'
--- gui/qt3/YadeQtMainWindow.hpp	2009-08-20 19:55:52 +0000
+++ gui/qt3/YadeQtMainWindow.hpp	2009-11-15 09:32:52 +0000
@@ -14,14 +14,18 @@
 #include"YadeQtGeneratedMainWindow.h"
 #include<yade/gui-qt3/SimulationController.hpp>
 #include<yade/gui-qt3/QtFileGenerator.hpp>
-#include<yade/gui-qt3/QtSimulationPlayer.hpp>
+#ifdef YADE_DEPRECATED
+	#include<yade/gui-qt3/QtSimulationPlayer.hpp>
+#endif
 #include<yade/gui-qt3/QtGUIPreferences.hpp>
 
 class YadeQtMainWindow: public YadeQtGeneratedMainWindow
 {
 	public:
 		shared_ptr<SimulationController> controller;
-		shared_ptr<QtSimulationPlayer> player;
+		#ifdef YADE_DEPRECATED
+			shared_ptr<QtSimulationPlayer> player;
+		#endif
 		shared_ptr<QtFileGenerator> generator;
 		vector<shared_ptr<GLViewer> > glViews;
 		shared_ptr<OpenGLRenderingEngine> renderer;
@@ -59,7 +63,9 @@
 		/* each of player, controller, generator have slots for them being opened and closed: create{Player,Controller,Generator} and the instances are kept in player, controller, generator. */
 		#define __MK_RM_CHILD(Child,child,YadeClass,closeGL)  virtual void close##Child(){if(child)child=shared_ptr<YadeClass>();} virtual void create##Child(){closeAllChilds(closeGL); if(!child){child=shared_ptr<YadeClass>(new YadeClass()); connect(child.get(),SIGNAL(closeSignal()),this,SLOT(close##Child())); child->show();} else {child->show(); child->raise();}}
 		__MK_RM_CHILD(Generator,generator,QtFileGenerator,true);
-		__MK_RM_CHILD(Player,player,QtSimulationPlayer,true);
+		#ifdef YADE_DEPRECATED
+			__MK_RM_CHILD(Player,player,QtSimulationPlayer,true);
+		#endif
 		__MK_RM_CHILD(Controller,controller,SimulationController,false);
 		#undef __MK_RM_CHILD
 		virtual void Quit();

=== modified file 'gui/qt3/qt.py'
--- gui/qt3/qt.py	2009-11-13 11:27:22 +0000
+++ gui/qt3/qt.py	2009-11-15 09:32:52 +0000
@@ -9,8 +9,6 @@
 	# will raise ImportError if the GUI could not be activated for some reason
 	activate()
 
-
-
 def makeSimulationVideo(output,realPeriod=1,virtPeriod=0,iterPeriod=0,viewNo=0,fps=24,msecSleep=0):
 	"""Create video by running simulation. SnapshotEngine is added (and removed once done), temporary
 	files are deleted. The video is theora-encoded in the ogg container. Periodicity is controlled
@@ -40,32 +38,37 @@
 	O.engines=origEngines
 
 
-def makePlayerVideo(playerDb,out,viewerState=None,dispParamsNo=-1,stride=1,fps=24,postLoadHook=None,startWait=False):
-	"""Create video by replaying a simulation. Snapshots are taken to temporary files,
-	encoded to a .ogg stream (theora codec); temps are deleted at the end.
-
-	If the output file exists already, a ~[number] is appended and the old file is renamed.
-
-	playerDb is the database with saved simulation states,
-	out is the output file (like a.ogg), fps is frames-per-second for the video that is created,
-	dispParamsNo, stride and postLoadHook are passed to qt.runPlayer (docs in gui/qt3/QtGUI-Python.cpp).
-	
-	You need a display to run this (either virtual, like xvfb, or physical).
-
-	Necessary packages: python-gst0.10 gstreamer0.10-plugins-good python-gobject
-	"""
-	import sys,os
-	from yade import qt,utils
-	# postLoadHook and viewerState have "" instead of None in the c++ interface
-	wildcard,snaps=qt.runPlayerSession(
-		playerDb,
-		'', # snapBase
-		savedQGLState=(viewerState if viewerState else ''),
-		dispParamsNo=dispParamsNo,
-		stride=stride,
-		postLoadHook=(postLoadHook if postLoadHook else ''),
-		startWait=startWait)
-	utils.encodeVideoFromFrames(wildcard,out,renameNotOverwrite=True,fps=fps)
-	print "Cleaning snapshot files."
-	for f in snaps: os.remove(f)
+import yade.runtime
+if 'deprecated' in yade.runtime.features:
+	def makePlayerVideo(playerDb,out,viewerState=None,dispParamsNo=-1,stride=1,fps=24,postLoadHook=None,startWait=False):
+		"""Create video by replaying a simulation. Snapshots are taken to temporary files,
+		encoded to a .ogg stream (theora codec); temps are deleted at the end.
+
+		If the output file exists already, a ~[number] is appended and the old file is renamed.
+
+		playerDb is the database with saved simulation states,
+		out is the output file (like a.ogg), fps is frames-per-second for the video that is created,
+		dispParamsNo, stride and postLoadHook are passed to qt.runPlayer (docs in gui/qt3/QtGUI-Python.cpp).
+		
+		You need a display to run this (either virtual, like xvfb, or physical).
+
+		Necessary packages: python-gst0.10 gstreamer0.10-plugins-good python-gobject
+		"""
+		import sys,os
+		from yade import qt,utils
+		# postLoadHook and viewerState have "" instead of None in the c++ interface
+		wildcard,snaps=qt.runPlayerSession(
+			playerDb,
+			'', # snapBase
+			savedQGLState=(viewerState if viewerState else ''),
+			dispParamsNo=dispParamsNo,
+			stride=stride,
+			postLoadHook=(postLoadHook if postLoadHook else ''),
+			startWait=startWait)
+		utils.encodeVideoFromFrames(wildcard,out,renameNotOverwrite=True,fps=fps)
+		print "Cleaning snapshot files."
+		for f in snaps: os.remove(f)
+else:
+	def makePlayerVideo(*args,**kw):
+		raise RuntimeError("Yade not built with the 'deprecated' feature (needed for makePlayerVideo)")
 

=== modified file 'lib/multimethods/FunctorWrapper.hpp'
--- lib/multimethods/FunctorWrapper.hpp	2009-01-27 02:19:40 +0000
+++ lib/multimethods/FunctorWrapper.hpp	2009-11-15 09:32:52 +0000
@@ -101,15 +101,6 @@
 		typedef typename Impl::Parm4 Parm4;
 		typedef typename Impl::Parm5 Parm5;
 		typedef typename Impl::Parm6 Parm6;
-		typedef typename Impl::Parm7 Parm7;
-		typedef typename Impl::Parm8 Parm8;
-		typedef typename Impl::Parm9 Parm9;
-		typedef typename Impl::Parm10 Parm10;
-		typedef typename Impl::Parm11 Parm11;
-		typedef typename Impl::Parm12 Parm12;
-		typedef typename Impl::Parm13 Parm13;
-		typedef typename Impl::Parm14 Parm14;
-		typedef typename Impl::Parm15 Parm15;
 	
 		ResultType error(int n)
 		{
@@ -117,12 +108,9 @@
 			+ "1. " + typeid(Parm1).name() + "\n" 
 			+ "2. " + typeid(Parm2).name() + "\n"
 			+ "3. " + typeid(Parm3).name() + "\n"
-			+ "5. " + typeid(Parm4).name() + "\n"
-			+ "6. " + typeid(Parm4).name() + "\n"
-			+ "7. " + typeid(Parm4).name() + "\n"
-			+ "8. " + typeid(Parm4).name() + "\n"
-			+ "9. " + typeid(Parm4).name() + "\n"
-			+ "10. " + typeid(Parm4).name() + "\n"
+			+ "4. " + typeid(Parm4).name() + "\n"
+			+ "5. " + typeid(Parm5).name() + "\n"
+			+ "6. " + typeid(Parm6).name() + "\n"
 			+ "number of types used in the call: " + boost::lexical_cast<string>(n) + "\n\n";
 			cerr << err.c_str();
 			throw MultiMethodsBadVirtualCall(err.c_str());
@@ -133,7 +121,7 @@
 		virtual ~FunctorWrapper () {};
 		virtual string checkOrder() const { return ""; };
 
-// in following functions a second throw was added - just to bypass compiler warnings - it will never be executed.
+	// in following functions a second throw was added - just to bypass compiler warnings - it will never be executed.
 
 		virtual ResultType go	(	Parm1) 							{ return error(1); };
 		virtual ResultType go	(	Parm1,Parm2) 						{ return error(2); };
@@ -141,22 +129,6 @@
 		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4) 				{ return error(4); };
 		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5) 				{ return error(5); };
 		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6) 			{ return error(6); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7) 		{ return error(7); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8)	{ return error(8); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9)							{ return error(9); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10)						{ return error(10); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11)					{ return error(11); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12)				{ return error(12); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12,Parm13)			{ return error(13); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12,Parm13,Parm14)		{ return error(14); };
-		virtual ResultType go	(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12,Parm13,Parm14,Parm15)	{ return error(15); };
 		
 		virtual ResultType goReverse(	Parm1) 							{ return error(1); };
 		virtual ResultType goReverse(	Parm1,Parm2) 						{ return error(2); };
@@ -164,22 +136,6 @@
 		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4) 				{ return error(4); };
 		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5) 				{ return error(5); };
 		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6) 			{ return error(6); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7) 		{ return error(7); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8)	{ return error(8); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9)							{ return error(9); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10)						{ return error(10); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11)					{ return error(11); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12)				{ return error(12); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12,Parm13)			{ return error(13); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12,Parm13,Parm14)		{ return error(14); };
-		virtual ResultType goReverse(	Parm1,Parm2,Parm3,Parm4,Parm5,Parm6,Parm7,Parm8,
-						Parm9,Parm10,Parm11,Parm12,Parm13,Parm14,Parm15)	{ return error(15); };
 };
 
 #define DEFINE_FUNCTOR_ORDER_2D(class1,class2)							\

=== removed directory 'pkg/common/Container'
=== removed file 'pkg/common/Container/BodyAssocVector.hpp'
--- pkg/common/Container/BodyAssocVector.hpp	2009-02-26 07:11:21 +0000
+++ pkg/common/Container/BodyAssocVector.hpp	1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#include<yade/core/BodyAssocVector.hpp>

=== removed file 'pkg/common/Container/BodyRedirectionVector.hpp'
--- pkg/common/Container/BodyRedirectionVector.hpp	2008-05-24 11:46:02 +0000
+++ pkg/common/Container/BodyRedirectionVector.hpp	1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#include<yade/core/BodyRedirectionVector.hpp>

=== removed file 'pkg/common/Container/InteractionHashMap.hpp'
--- pkg/common/Container/InteractionHashMap.hpp	2009-02-25 15:49:21 +0000
+++ pkg/common/Container/InteractionHashMap.hpp	1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#include<yade/core/InteractionHashMap.hpp>

=== removed file 'pkg/common/Container/InteractionVecMap.hpp'
--- pkg/common/Container/InteractionVecMap.hpp	2009-02-26 07:11:21 +0000
+++ pkg/common/Container/InteractionVecMap.hpp	1970-01-01 00:00:00 +0000
@@ -1,1 +0,0 @@
-#include<yade/core/InteractionVecMap.hpp>

=== modified file 'pkg/common/DataClass/InteractionGeometry/ClosestFeatures.cpp'
--- pkg/common/DataClass/InteractionGeometry/ClosestFeatures.cpp	2009-08-19 12:00:35 +0000
+++ pkg/common/DataClass/InteractionGeometry/ClosestFeatures.cpp	2009-11-15 09:32:52 +0000
@@ -29,3 +29,6 @@
 // 
 
 YADE_PLUGIN((ClosestFeatures));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/common/RenderingEngine/GLDrawInteractionGeometry/GLDrawClosestFeatures.cpp'
--- pkg/common/RenderingEngine/GLDrawInteractionGeometry/GLDrawClosestFeatures.cpp	2009-08-03 10:02:11 +0000
+++ pkg/common/RenderingEngine/GLDrawInteractionGeometry/GLDrawClosestFeatures.cpp	2009-11-15 09:32:52 +0000
@@ -45,3 +45,6 @@
 
 YADE_PLUGIN((GLDrawClosestFeatures));
 YADE_REQUIRE_FEATURE(OPENGL)
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/DataClass/InteractingGeometry/InteractingMyTetrahedron.cpp'
--- pkg/dem/DataClass/InteractingGeometry/InteractingMyTetrahedron.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/DataClass/InteractingGeometry/InteractingMyTetrahedron.cpp	2009-11-15 09:32:52 +0000
@@ -20,3 +20,6 @@
 
 
 YADE_PLUGIN((InteractingMyTetrahedron));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/DataClass/InteractionGeometry/InteractionOfMyTetrahedron.cpp'
--- pkg/dem/DataClass/InteractionGeometry/InteractionOfMyTetrahedron.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/DataClass/InteractionGeometry/InteractionOfMyTetrahedron.cpp	2009-11-15 09:32:52 +0000
@@ -19,3 +19,6 @@
 }
 
 YADE_PLUGIN((InteractionOfMyTetrahedron));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2AABB.cpp'
--- pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2AABB.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2AABB.cpp	2009-11-15 09:32:52 +0000
@@ -44,3 +44,6 @@
 }
 	
 YADE_PLUGIN((InteractingMyTetrahedron2AABB));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingBox4InteractionOfMyTetrahedron.cpp'
--- pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingBox4InteractionOfMyTetrahedron.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingBox4InteractionOfMyTetrahedron.cpp	2009-11-15 09:32:52 +0000
@@ -131,3 +131,6 @@
 }
 
 YADE_PLUGIN((InteractingMyTetrahedron2InteractingBox4InteractionOfMyTetrahedron));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingMyTetrahedron4InteractionOfMyTetrahedron.cpp'
--- pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingMyTetrahedron4InteractionOfMyTetrahedron.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/Engine/EngineUnit/InteractingMyTetrahedron2InteractingMyTetrahedron4InteractionOfMyTetrahedron.cpp	2009-11-15 09:32:52 +0000
@@ -91,3 +91,6 @@
 }
 
 YADE_PLUGIN((InteractingMyTetrahedron2InteractingMyTetrahedron4InteractionOfMyTetrahedron));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/Engine/EngineUnit/Tetrahedron2InteractingMyTetrahedron.cpp'
--- pkg/dem/Engine/EngineUnit/Tetrahedron2InteractingMyTetrahedron.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/Engine/EngineUnit/Tetrahedron2InteractingMyTetrahedron.cpp	2009-11-15 09:32:52 +0000
@@ -33,3 +33,6 @@
 }
 	
 YADE_PLUGIN((Tetrahedron2InteractingMyTetrahedron));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/Engine/StandAloneEngine/MyTetrahedronLaw.cpp'
--- pkg/dem/Engine/StandAloneEngine/MyTetrahedronLaw.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/Engine/StandAloneEngine/MyTetrahedronLaw.cpp	2009-11-15 09:32:52 +0000
@@ -77,3 +77,6 @@
 
 
 YADE_PLUGIN((MyTetrahedronLaw));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/Engine/StandAloneEngine/SQLiteRecorder.cpp'
--- pkg/dem/Engine/StandAloneEngine/SQLiteRecorder.cpp	2009-09-02 07:32:33 +0000
+++ pkg/dem/Engine/StandAloneEngine/SQLiteRecorder.cpp	2009-11-15 09:32:52 +0000
@@ -6,6 +6,8 @@
 #include<boost/algorithm/string/join.hpp>
 #include<yade/core/MetaBody.hpp>
 
+YADE_REQUIRE_FEATURE(deprecated);
+
 YADE_PLUGIN((SQLiteRecorder));
 using namespace boost;
 CREATE_LOGGER(SQLiteRecorder);

=== modified file 'pkg/dem/PreProcessor/HydraulicTest.cpp'
--- pkg/dem/PreProcessor/HydraulicTest.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/PreProcessor/HydraulicTest.cpp	2009-11-15 09:32:52 +0000
@@ -44,7 +44,6 @@
 #include<yade/pkg-common/PhysicalActionContainerReseter.hpp>
 #include<yade/pkg-common/PhysicalParametersMetaEngine.hpp>
 
-#include<yade/core/BodyRedirectionVector.hpp>
 
 #include<yade/pkg-common/TranslationEngine.hpp>
 

=== modified file 'pkg/dem/PreProcessor/STLImporterTest.cpp'
--- pkg/dem/PreProcessor/STLImporterTest.cpp	2009-08-19 12:00:35 +0000
+++ pkg/dem/PreProcessor/STLImporterTest.cpp	2009-11-15 09:32:52 +0000
@@ -17,7 +17,6 @@
 #include<yade/core/MetaBody.hpp>
 #include<yade/lib-serialization/IOFormatManager.hpp>
 #include<yade/pkg-common/AABB.hpp>
-#include<yade/core/BodyRedirectionVector.hpp>
 #include<yade/pkg-common/BoundingVolumeMetaEngine.hpp>
 #include<yade/pkg-common/CundallNonViscousDamping.hpp>
 #include<yade/pkg-common/CundallNonViscousDamping.hpp>

=== modified file 'pkg/dem/PreProcessor/TestSimpleViscoelastic.cpp'
--- pkg/dem/PreProcessor/TestSimpleViscoelastic.cpp	2009-08-05 07:32:18 +0000
+++ pkg/dem/PreProcessor/TestSimpleViscoelastic.cpp	2009-11-15 09:32:52 +0000
@@ -13,7 +13,6 @@
 #include<yade/core/Interaction.hpp>
 #include<yade/core/MetaBody.hpp>
 #include<yade/pkg-common/AABB.hpp>
-#include<yade/core/BodyRedirectionVector.hpp>
 #include<yade/pkg-common/BoundingVolumeMetaEngine.hpp>
 #include<yade/pkg-common/InteractingSphere.hpp>
 #include<yade/pkg-common/InteractingBox.hpp>

=== modified file 'pkg/dem/PreProcessor/TetrahedronsTest.cpp'
--- pkg/dem/PreProcessor/TetrahedronsTest.cpp	2009-08-05 07:32:18 +0000
+++ pkg/dem/PreProcessor/TetrahedronsTest.cpp	2009-11-15 09:32:52 +0000
@@ -395,3 +395,6 @@
 }
 
 YADE_PLUGIN((TetrahedronsTest));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/dem/RenderingEngine/GLDrawInteractingMyTetrahedron/GLDrawInteractingMyTetrahedron.cpp'
--- pkg/dem/RenderingEngine/GLDrawInteractingMyTetrahedron/GLDrawInteractingMyTetrahedron.cpp	2009-08-03 10:02:11 +0000
+++ pkg/dem/RenderingEngine/GLDrawInteractingMyTetrahedron/GLDrawInteractingMyTetrahedron.cpp	2009-11-15 09:32:52 +0000
@@ -38,3 +38,6 @@
 
 YADE_PLUGIN((GLDrawInteractingMyTetrahedron));
 YADE_REQUIRE_FEATURE(OPENGL)
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/DataClass/GeometricalModel/FEMSetGeometry.cpp'
--- pkg/fem/DataClass/GeometricalModel/FEMSetGeometry.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/DataClass/GeometricalModel/FEMSetGeometry.cpp	2009-11-15 09:32:52 +0000
@@ -21,4 +21,6 @@
 }
 
 
-YADE_PLUGIN((FEMSetGeometry));
\ No newline at end of file
+YADE_PLUGIN((FEMSetGeometry));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/DataClass/PhysicalParameters/FEMNodeData.cpp'
--- pkg/fem/DataClass/PhysicalParameters/FEMNodeData.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/DataClass/PhysicalParameters/FEMNodeData.cpp	2009-11-15 09:32:52 +0000
@@ -21,4 +21,6 @@
 }
 
 
-YADE_PLUGIN((FEMNodeData));
\ No newline at end of file
+YADE_PLUGIN((FEMNodeData));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/DataClass/PhysicalParameters/FEMSetParameters.cpp'
--- pkg/fem/DataClass/PhysicalParameters/FEMSetParameters.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/DataClass/PhysicalParameters/FEMSetParameters.cpp	2009-11-15 09:32:52 +0000
@@ -24,4 +24,6 @@
 
 
 
-YADE_PLUGIN((FEMSetParameters));
\ No newline at end of file
+YADE_PLUGIN((FEMSetParameters));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp'
--- pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/DataClass/PhysicalParameters/FEMTetrahedronData.cpp	2009-11-15 09:32:52 +0000
@@ -183,4 +183,6 @@
 	damping = Damp * mass ;
 }
 
-YADE_PLUGIN((FEMTetrahedronData));
\ No newline at end of file
+YADE_PLUGIN((FEMTetrahedronData));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/Engine/EngineUnit/FEMSet2Tetrahedrons.cpp'
--- pkg/fem/Engine/EngineUnit/FEMSet2Tetrahedrons.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/Engine/EngineUnit/FEMSet2Tetrahedrons.cpp	2009-11-15 09:32:52 +0000
@@ -43,4 +43,6 @@
 	}
 }
 
-YADE_PLUGIN((FEMSet2Tetrahedrons));
\ No newline at end of file
+YADE_PLUGIN((FEMSet2Tetrahedrons));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/Engine/EngineUnit/FEMSetTextLoader.cpp'
--- pkg/fem/Engine/EngineUnit/FEMSetTextLoader.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/Engine/EngineUnit/FEMSetTextLoader.cpp	2009-11-15 09:32:52 +0000
@@ -128,4 +128,6 @@
 	body->physicalParameters	= physics;
 }
 
-YADE_PLUGIN((FEMSetTextLoader));
\ No newline at end of file
+YADE_PLUGIN((FEMSetTextLoader));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/Engine/EngineUnit/FEMTetrahedronStiffness.cpp'
--- pkg/fem/Engine/EngineUnit/FEMTetrahedronStiffness.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/Engine/EngineUnit/FEMTetrahedronStiffness.cpp	2009-11-15 09:32:52 +0000
@@ -35,4 +35,6 @@
 	}
 	
 }
-YADE_PLUGIN((FEMTetrahedronStiffness));
\ No newline at end of file
+YADE_PLUGIN((FEMTetrahedronStiffness));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/Engine/StandAloneEngine/FEMLaw.cpp'
--- pkg/fem/Engine/StandAloneEngine/FEMLaw.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/Engine/StandAloneEngine/FEMLaw.cpp	2009-11-15 09:32:52 +0000
@@ -76,4 +76,6 @@
 
 
 
-YADE_PLUGIN((FEMLaw));
\ No newline at end of file
+YADE_PLUGIN((FEMLaw));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/fem/PreProcessor/FEMBeam.cpp'
--- pkg/fem/PreProcessor/FEMBeam.cpp	2009-08-03 10:02:11 +0000
+++ pkg/fem/PreProcessor/FEMBeam.cpp	2009-11-15 09:32:52 +0000
@@ -238,4 +238,6 @@
 }
 
  
-YADE_PLUGIN((FEMBeam));
\ No newline at end of file
+YADE_PLUGIN((FEMBeam));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/lattice/PreProcessor/LatticeExample.cpp'
--- pkg/lattice/PreProcessor/LatticeExample.cpp	2009-08-19 12:00:35 +0000
+++ pkg/lattice/PreProcessor/LatticeExample.cpp	2009-11-15 09:32:52 +0000
@@ -34,8 +34,7 @@
 
 #include<yade/pkg-common/AABB.hpp>
 
-#include<yade/core/BodyRedirectionVector.hpp>
-
+#include<yade/core/BodyVector.hpp>
 #include<yade/pkg-common/DisplacementEngine.hpp>
 #include<yade/pkg-common/PhysicalParametersMetaEngine.hpp>
 #include<yade/pkg-common/PhysicalActionApplier.hpp>
@@ -362,7 +361,7 @@
 
 	}
 
-        BodyRedirectionVector bc;
+        BodyVector bc;
         bc.clear();
 
 	BodyContainer::iterator bi    = rootBody->bodies->begin();
@@ -691,7 +690,7 @@
 }
 
 /// returns true if angle is bigger than minAngle_betweenBeams_deg
-bool LatticeExample::checkMinimumAngle(BodyRedirectionVector& bc,shared_ptr<Body>& body)
+bool LatticeExample::checkMinimumAngle(BodyVector& bc,shared_ptr<Body>& body)
 {
 	bool answer = true;
 	LatticeBeamParameters* newBeam = static_cast<LatticeBeamParameters*>(body->physicalParameters.get());

=== modified file 'pkg/lattice/PreProcessor/LatticeExample.hpp'
--- pkg/lattice/PreProcessor/LatticeExample.hpp	2009-07-29 10:05:36 +0000
+++ pkg/lattice/PreProcessor/LatticeExample.hpp	2009-11-15 09:32:52 +0000
@@ -11,7 +11,6 @@
 #include<yade/core/FileGenerator.hpp>
 #include <Wm3Vector3.h>
 #include<yade/lib-base/yadeWm3.hpp>
-#include<yade/core/BodyRedirectionVector.hpp>
 
 class LatticeBeamParameters;
 class StrainRecorder;
@@ -290,7 +289,7 @@
 		bool isDeleted(Vector3r pos, Vector3r min, Vector3r max);
                 void calcBeamAngles(Body* body, BodyContainer* bodies,InteractionContainer* ints);
                 void calcAxisAngle(LatticeBeamParameters* beam, BodyContainer* bodies, int otherId,InteractionContainer* ints, int thisId);
-                bool checkMinimumAngle(BodyRedirectionVector&,shared_ptr<Body>&);
+                bool checkMinimumAngle(BodyVector&,shared_ptr<Body>&);
                 bool checkAngle( Vector3r , Vector3r& );
                 void imposeTranslation(shared_ptr<MetaBody>& rootBody, Vector3r min, Vector3r max, Vector3r direction, Real velocity,Vector3r blocked_xyz);
                 void regionDelete(shared_ptr<MetaBody>& rootBody, Vector3r min, Vector3r max);

=== modified file 'pkg/lattice/PreProcessor/LatticeExampleCTData.hpp'
--- pkg/lattice/PreProcessor/LatticeExampleCTData.hpp	2009-07-27 17:08:23 +0000
+++ pkg/lattice/PreProcessor/LatticeExampleCTData.hpp	2009-11-15 09:32:52 +0000
@@ -11,7 +11,6 @@
 #include<yade/core/FileGenerator.hpp>
 #include<Wm3Vector3.h>
 #include<yade/lib-base/yadeWm3.hpp>
-#include<yade/core/BodyRedirectionVector.hpp>
 
 class LatticeBeamParameters;
 class StrainRecorder;

=== modified file 'pkg/lattice/PreProcessor/LatticeExampleSimple.hpp'
--- pkg/lattice/PreProcessor/LatticeExampleSimple.hpp	2009-07-27 17:08:23 +0000
+++ pkg/lattice/PreProcessor/LatticeExampleSimple.hpp	2009-11-15 09:32:52 +0000
@@ -11,7 +11,6 @@
 #include<yade/core/FileGenerator.hpp>
 #include<Wm3Vector3.h>
 #include<yade/lib-base/yadeWm3.hpp>
-#include<yade/core/BodyRedirectionVector.hpp>
 
 class LatticeBeamParameters;
 class StrainRecorder;

=== modified file 'pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingBox4ClosestFeatures.cpp'
--- pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingBox4ClosestFeatures.cpp	2009-08-03 10:02:11 +0000
+++ pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingBox4ClosestFeatures.cpp	2009-11-15 09:32:52 +0000
@@ -5,7 +5,7 @@
 *  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. *
 *************************************************************************/
-
+YADE_REQUIRE_FEATURE(deprecated)
 #include "InteractingBox2InteractingBox4ClosestFeatures.hpp"
 
 
@@ -466,4 +466,4 @@
 
 }
 
-YADE_PLUGIN((InteractingBox2InteractingBox4ClosestFeatures));
\ No newline at end of file
+YADE_PLUGIN((InteractingBox2InteractingBox4ClosestFeatures));

=== modified file 'pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingSphere4ClosestFeatures.cpp'
--- pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingSphere4ClosestFeatures.cpp	2009-08-03 10:02:11 +0000
+++ pkg/realtime-rigidbody/Engine/EngineUnit/InteractingBox2InteractingSphere4ClosestFeatures.cpp	2009-11-15 09:32:52 +0000
@@ -5,7 +5,7 @@
 *  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. *
 *************************************************************************/
-
+YADE_REQUIRE_FEATURE(deprecated)
 #include "InteractingBox2InteractingSphere4ClosestFeatures.hpp"
 #include<yade/pkg-common/InteractingSphere.hpp>
 #include<yade/pkg-common/InteractingBox.hpp>
@@ -128,4 +128,4 @@
 	return isInteracting;
 }
 
-YADE_PLUGIN((InteractingBox2InteractingSphere4ClosestFeatures));
\ No newline at end of file
+YADE_PLUGIN((InteractingBox2InteractingSphere4ClosestFeatures));

=== modified file 'pkg/realtime-rigidbody/Engine/EngineUnit/InteractingSphere2InteractingSphere4ClosestFeatures.cpp'
--- pkg/realtime-rigidbody/Engine/EngineUnit/InteractingSphere2InteractingSphere4ClosestFeatures.cpp	2009-08-03 10:02:11 +0000
+++ pkg/realtime-rigidbody/Engine/EngineUnit/InteractingSphere2InteractingSphere4ClosestFeatures.cpp	2009-11-15 09:32:52 +0000
@@ -5,7 +5,7 @@
 *  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. *
 *************************************************************************/
-
+YADE_REQUIRE_FEATURE(deprecated)
 #include "InteractingSphere2InteractingSphere4ClosestFeatures.hpp"
 #include<yade/pkg-common/InteractingSphere.hpp>
 #include<yade/pkg-common/ClosestFeatures.hpp>
@@ -48,4 +48,4 @@
 	return go(cm1,cm2,se31,se32,c);
 }
 
-YADE_PLUGIN((InteractingSphere2InteractingSphere4ClosestFeatures));
\ No newline at end of file
+YADE_PLUGIN((InteractingSphere2InteractingSphere4ClosestFeatures));

=== modified file 'pkg/realtime-rigidbody/Engine/StandAloneEngine/FrictionLessElasticContactLaw.cpp'
--- pkg/realtime-rigidbody/Engine/StandAloneEngine/FrictionLessElasticContactLaw.cpp	2009-08-03 10:02:11 +0000
+++ pkg/realtime-rigidbody/Engine/StandAloneEngine/FrictionLessElasticContactLaw.cpp	2009-11-15 09:32:52 +0000
@@ -81,4 +81,6 @@
 	}
 }
 
-YADE_PLUGIN((FrictionLessElasticContactLaw));
\ No newline at end of file
+YADE_PLUGIN((FrictionLessElasticContactLaw));
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/realtime-rigidbody/PreProcessor/BoxStack.cpp'
--- pkg/realtime-rigidbody/PreProcessor/BoxStack.cpp	2009-08-05 07:32:18 +0000
+++ pkg/realtime-rigidbody/PreProcessor/BoxStack.cpp	2009-11-15 09:32:52 +0000
@@ -297,3 +297,6 @@
 }
 
 YADE_PLUGIN((BoxStack));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/realtime-rigidbody/PreProcessor/RotatingBox.cpp'
--- pkg/realtime-rigidbody/PreProcessor/RotatingBox.cpp	2009-08-05 07:32:18 +0000
+++ pkg/realtime-rigidbody/PreProcessor/RotatingBox.cpp	2009-11-15 09:32:52 +0000
@@ -32,7 +32,6 @@
 #include<yade/pkg-common/GravityEngines.hpp>
 #include<yade/pkg-common/PhysicalParametersMetaEngine.hpp>
 
-#include<yade/core/BodyRedirectionVector.hpp>
 
 #include<yade/pkg-common/PhysicalActionDamper.hpp>
 #include<yade/pkg-common/PhysicalActionApplier.hpp>
@@ -318,3 +317,6 @@
 
 
 YADE_PLUGIN((RotatingBox));
+
+YADE_REQUIRE_FEATURE(deprecated)
+

=== modified file 'pkg/snow/PreProcessor/SnowCreepTest.cpp'
--- pkg/snow/PreProcessor/SnowCreepTest.cpp	2009-11-14 12:37:19 +0000
+++ pkg/snow/PreProcessor/SnowCreepTest.cpp	2009-11-15 09:32:52 +0000
@@ -56,7 +56,6 @@
 
 #include<yade/pkg-common/PhysicalParametersMetaEngine.hpp>
 
-#include<yade/core/BodyRedirectionVector.hpp>
 
 #include<yade/pkg-dem/Shop.hpp>
 
@@ -178,8 +177,6 @@
 	createActors(rootBody);
 	positionRootBody(rootBody);
 
-	rootBody->bodies 			= shared_ptr<BodyContainer>(new BodyRedirectionVector);
-
 	shared_ptr<Body> body;
 	
 	if(boxWalls)

=== modified file 'pkg/snow/PreProcessor/SnowVoxelsLoader.cpp'
--- pkg/snow/PreProcessor/SnowVoxelsLoader.cpp	2009-11-14 12:37:19 +0000
+++ pkg/snow/PreProcessor/SnowVoxelsLoader.cpp	2009-11-15 09:32:52 +0000
@@ -49,7 +49,6 @@
 
 #include<yade/pkg-common/PhysicalParametersMetaEngine.hpp>
 
-#include<yade/core/BodyRedirectionVector.hpp>
 #include<yade/pkg-snow/ElawSnowLayersDeformation.hpp>
 
 #include<yade/pkg-dem/Shop.hpp>
@@ -200,7 +199,6 @@
 	createActors(rootBody);
 	positionRootBody(rootBody);
 
-	rootBody->bodies 			= shared_ptr<BodyContainer>(new BodyRedirectionVector);
 	
 	if(m_grains.size() == 0)
 	{


Follow ups