From 2a10fd4ba3dbbce03907ea5f67d3276228666dce Mon Sep 17 00:00:00 2001
From: vahrenkamp <vahrenkamp@042f3d55-54a8-47e9-b7fb-15903f145c44>
Date: Wed, 12 Jun 2013 11:08:26 +0000
Subject: [PATCH] Fixing trajectory interpolation Renamed coin factory classes
 for building transformations

git-svn-id: http://svn.code.sf.net/p/simox/code/trunk@385 042f3d55-54a8-47e9-b7fb-15903f145c44
---
 .../GraspPlanner/GraspPlannerWindow.cpp       |  4 ++--
 .../GraspQuality/GraspQualityWindow.cpp       |  2 +-
 .../examples/GraspRRT/GraspRrtWindow.cpp      |  2 +-
 .../MTPlanningScenery.cpp                     |  4 ++--
 VirtualRobot/Trajectory.cpp                   |  4 ++--
 .../CoinVisualizationFactory.cpp              | 20 +++++++++----------
 .../CoinVisualizationFactory.h                |  4 ++--
 7 files changed, 20 insertions(+), 20 deletions(-)

diff --git a/GraspPlanning/examples/GraspPlanner/GraspPlannerWindow.cpp b/GraspPlanning/examples/GraspPlanner/GraspPlannerWindow.cpp
index cf47a5c37..7e6ad3cad 100644
--- a/GraspPlanning/examples/GraspPlanner/GraspPlannerWindow.cpp
+++ b/GraspPlanning/examples/GraspPlanner/GraspPlannerWindow.cpp
@@ -226,7 +226,7 @@ void GraspPlannerWindow::buildVisu()
 			Eigen::Matrix4f ma;
 			ma.setIdentity();
 			ma.block(0,3,3,1) = contacts[i].contactPointFingerGlobal;
-			SoMatrixTransform *m = CoinVisualizationFactory::getMatrixTransformMM(ma);
+			SoMatrixTransform *m = CoinVisualizationFactory::getMatrixTransformScaleMM2M(ma);
 			s->addChild(m);
 			s->addChild(CoinVisualizationFactory::CreateArrow(contacts[i].approachDirectionGlobal,10.0f,1.0f));
 			frictionConeSep->addChild(s);
@@ -323,7 +323,7 @@ void GraspPlannerWindow::plan()
 	{
 		Eigen::Matrix4f m = grasps->getGrasp(i)->getTcpPoseGlobal(object->getGlobalPose());
 		SoSeparator *sep1 = new SoSeparator();
-		SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransformMM(m);
+		SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransformScaleMM2M(m);
 		sep1->addChild(mt);
 		sep1->addChild(eefVisu);
 		graspsSep->addChild(sep1);
diff --git a/GraspPlanning/examples/GraspQuality/GraspQualityWindow.cpp b/GraspPlanning/examples/GraspQuality/GraspQualityWindow.cpp
index 405ed7080..a4e22744b 100644
--- a/GraspPlanning/examples/GraspQuality/GraspQualityWindow.cpp
+++ b/GraspPlanning/examples/GraspQuality/GraspQualityWindow.cpp
@@ -387,7 +387,7 @@ void GraspQualityWindow::showGWS()
 	ows1Sep->removeAllChildren();
 	ows2Sep->removeAllChildren();
 	Eigen::Matrix4f m = object->getGlobalPose();
-	SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransformMM(m);
+	SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransformScaleMM2M(m);
 
 #if 0
 	// test
diff --git a/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp b/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp
index 07d9b1c55..cded146bf 100644
--- a/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp
+++ b/MotionPlanning/examples/GraspRRT/GraspRrtWindow.cpp
@@ -199,7 +199,7 @@ void GraspRrtWindow::buildVisu()
 
 			Eigen::Matrix4f m = grasps[i]->getTcpPoseGlobal(targetObject->getGlobalPose());
 			SoSeparator *sep1 = new SoSeparator();
-			SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransformMM(m);
+			SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransformScaleMM2M(m);
 			sep1->addChild(mt);
 			sep1->addChild(eefVisu);
 			graspsSep->addChild(sep1);
diff --git a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp
index a26c5b9f8..50e2bbf12 100644
--- a/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp
+++ b/MotionPlanning/examples/MultiThreadedPlanning/MTPlanningScenery.cpp
@@ -343,10 +343,10 @@ void MTPlanningScenery::buildPlanningThread(bool bMultiCollisionCheckers, int id
 		return;
 	pRobot->setJointValues(kinChain,start);
 	Eigen::Matrix4f gp = rn->getGlobalPose();
-	SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransformM(gp);//no transformation -> our scene is already in MM units
+	SoMatrixTransform *mt = CoinVisualizationFactory::getMatrixTransform(gp);//no transformation -> our scene is already in MM units
 	pRobot->setJointValues(kinChain,goal);
 	gp = rn->getGlobalPose();
-	SoMatrixTransform *mt2 =CoinVisualizationFactory::getMatrixTransformM(gp);//no transformation -> our scene is already in MM units
+	SoMatrixTransform *mt2 =CoinVisualizationFactory::getMatrixTransform(gp);//no transformation -> our scene is already in MM units
 
 	SoSeparator *sep1 = new SoSeparator();
 	sep1->addChild(mt);
diff --git a/VirtualRobot/Trajectory.cpp b/VirtualRobot/Trajectory.cpp
index 0460d07a5..c6ea4cd85 100644
--- a/VirtualRobot/Trajectory.cpp
+++ b/VirtualRobot/Trajectory.cpp
@@ -224,7 +224,7 @@ void Trajectory::interpolate( float t, Eigen::VectorXf &storePathPos, int *store
 	{
 		storePathPos = getPoint(getNrOfPoints()-1);
 		if (storeIndex!=NULL)
-			*storeIndex = (int)path.size();
+			*storeIndex = (int)path.size()-1;
 		return;
 	}
 
@@ -277,7 +277,7 @@ float Trajectory::getLength() const
 	float pathLength = 0.0f;
 	Eigen::VectorXf c1,c2;
 	float l;
-	for (int i=0;i<(int)getNrOfPoints()-2;i++)
+	for (int i=0;i<(int)getNrOfPoints()-1;i++)
 	{
 		c1 = path[i];
 		c2 = path[i+1];
diff --git a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp
index e324467da..0f3cb4a2c 100644
--- a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp
+++ b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.cpp
@@ -1062,7 +1062,7 @@ namespace VirtualRobot {
         res->addChild(sepGrasp);
 
         // transform
-        SoMatrixTransform *mT = getMatrixTransformMM(mat);
+        SoMatrixTransform *mT = getMatrixTransformScaleMM2M(mat);
         sepGrasp->addChild(mT);
 
         // eef Visu
@@ -1255,7 +1255,7 @@ namespace VirtualRobot {
     {
         SoSeparator *res = new SoSeparator;
         SoNode *res1 = CoinVisualizationFactory::getCoinVisualization(model,showNormals);
-        SoMatrixTransform *mt = getMatrixTransformMM(pose);
+        SoMatrixTransform *mt = getMatrixTransformScaleMM2M(pose);
         res->addChild(mt);
         res->addChild(res1);
 
@@ -1263,7 +1263,7 @@ namespace VirtualRobot {
         return node;
     }
 
-    SoMatrixTransform* CoinVisualizationFactory::getMatrixTransformM( Eigen::Matrix4f &m )
+    SoMatrixTransform* CoinVisualizationFactory::getMatrixTransform( Eigen::Matrix4f &m )
     {
         SoMatrixTransform *mt = new SoMatrixTransform;
         SbMatrix m_(reinterpret_cast<SbMat*>(m.data()));
@@ -1271,7 +1271,7 @@ namespace VirtualRobot {
         return mt;
     }
 
-    SoMatrixTransform* CoinVisualizationFactory::getMatrixTransformMM( Eigen::Matrix4f &m )
+    SoMatrixTransform* CoinVisualizationFactory::getMatrixTransformScaleMM2M( Eigen::Matrix4f &m )
     {
         SoMatrixTransform *mt = new SoMatrixTransform;
         SbMatrix m_(reinterpret_cast<SbMat*>(m.data()));
@@ -1411,7 +1411,7 @@ namespace VirtualRobot {
                 if (transformToGlobalPose)
                     reachSpace->toGlobal(pose);
 
-                SoMatrixTransform *mt = getMatrixTransformMM(pose);
+                SoMatrixTransform *mt = getMatrixTransformScaleMM2M(pose);
                 sep->addChild(mt);
                 sep->addChild(arrow);
                 res->addChild(sep);
@@ -1514,7 +1514,7 @@ namespace VirtualRobot {
                         col->diffuseColor.setValue(color.r,color.g,color.b);
                         col->transparency.setValue(color.transparency);
                         sep->addChild(col);
-                        SoMatrixTransform *mt = getMatrixTransformMM(m);
+                        SoMatrixTransform *mt = getMatrixTransformScaleMM2M(m);
                         sep->addChild(mt);
                         sep->addChild(arrow);
                         res->addChild(sep);
@@ -1811,7 +1811,7 @@ namespace VirtualRobot {
                     gp(1,3) = yPos;
 
                     SoSeparator *sep1 = new SoSeparator();
-                    SoMatrixTransform* matTr = getMatrixTransformM(gp); // we are already in mm, no conversion to m needed
+                    SoMatrixTransform* matTr = getMatrixTransform(gp); // we are already in mm, no conversion to m needed
 
                     float intensity = (float)v;
                     intensity /= maxEntry;
@@ -1931,7 +1931,7 @@ namespace VirtualRobot {
                     gp(1,3) = yPos;
 
                     SoSeparator *sep1 = new SoSeparator();
-                    SoMatrixTransform* matTr = getMatrixTransformM(gp); // we are in mm unit environment -> no conversion to m needed
+                    SoMatrixTransform* matTr = getMatrixTransform(gp); // we are in mm unit environment -> no conversion to m needed
 
                     float intensity = (float)v;
                     intensity /= maxEntry;
@@ -2042,7 +2042,7 @@ namespace VirtualRobot {
 					gp(1,3) = yPos;
 
 					SoSeparator *sep1 = new SoSeparator();
-					SoMatrixTransform* matTr = getMatrixTransformM(gp); // we are in mm unit environment -> no conversion to m needed
+					SoMatrixTransform* matTr = getMatrixTransform(gp); // we are in mm unit environment -> no conversion to m needed
 
 					float intensity = (float)v;
 					intensity /= maxEntry;
@@ -2512,7 +2512,7 @@ void CoinVisualizationFactory::applyDisplacement( VisualizationNodePtr o, Eigen:
 		{
 			SoSeparator *s = new SoSeparator;
 			s->ref();
-			SoMatrixTransform *ma = getMatrixTransformM(m);
+			SoMatrixTransform *ma = getMatrixTransform(m);
 			s->addChild(ma);
 			s->addChild(n->copy(FALSE));
 
diff --git a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h
index da95991bd..3fdec13ec 100644
--- a/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h
+++ b/VirtualRobot/Visualization/CoinVisualization/CoinVisualizationFactory.h
@@ -227,14 +227,14 @@ public:
         Create a SoMatrixTransform from the given pose
         \param m The pose with translation given in meter.
     */
-	static SoMatrixTransform* getMatrixTransformM(Eigen::Matrix4f &m);
+	static SoMatrixTransform* getMatrixTransform(Eigen::Matrix4f &m);
 
     /*!
         Create a SoMatrixTransform from the given pose
         Converts the pose from MM to M (scales by 0.001)
         \param m The pose with translation given in millimeter.
     */
-    static SoMatrixTransform* getMatrixTransformMM(Eigen::Matrix4f &m);
+    static SoMatrixTransform* getMatrixTransformScaleMM2M(Eigen::Matrix4f &m);
 	static SoNode* createCoinLine(const Eigen::Matrix4f &from, const Eigen::Matrix4f &to, float width, float colorR, float colorG, float colorB);
 
 	/*! 
-- 
GitLab