Index: mbdyn/struct/planej.cc
===================================================================
RCS file: /var/cvs/mbdyn/mbdyn/mbdyn-1.0/mbdyn/struct/planej.cc,v
retrieving revision 1.43.2.3
diff -u -r1.43.2.3 planej.cc
--- mbdyn/struct/planej.cc	5 Jul 2004 16:10:44 -0000	1.43.2.3
+++ mbdyn/struct/planej.cc	12 Aug 2004 09:39:50 -0000
@@ -960,14 +960,20 @@
    
    switch (i) {
     case 1: {
-	return dTheta;
+       Mat3x3 RTmp(((pNode1->GetRCurr()*R1h).Transpose()
+			*pNode1->GetRPrev()*R1h).Transpose()
+			*((pNode2->GetRCurr()*R2h).Transpose()
+			*pNode2->GetRPrev()*R2h));
+       Vec3 v(MatR2EulerAngles(RTmp.Transpose()));
+
+       return dTheta + v(3);
     }
       
     case 2: {
        Mat3x3 R2TmpT((pNode2->GetRCurr()*R2h).Transpose());
        Vec3 v(R2TmpT*(pNode2->GetWCurr()-pNode1->GetWCurr()));
        
-       return v.dGet(3);
+       return v(3);
     }
       
     default:
@@ -1601,18 +1607,20 @@
    
    switch (i) {
     case 1: {
-	Mat3x3 RTmp(pNode1->GetRCurr().Transpose()*pNode1->GetRPrev()
-			*pNode2->GetRPrev().Transpose()*pNode2->GetRCurr()*R2h);
-	Vec3 v(MatR2EulerAngles(RTmp));
+       Mat3x3 RTmp(((pNode1->GetRCurr()*R1h).Transpose()
+			*pNode1->GetRPrev()*R1h).Transpose()
+			*((pNode2->GetRCurr()*R2h).Transpose()
+			*pNode2->GetRPrev()*R2h));
+       Vec3 v(MatR2EulerAngles(RTmp.Transpose()));
 
-       return dTheta;
+       return dTheta + v(3);
     }
       
     case 2: {
        Mat3x3 R2TmpT((pNode2->GetRCurr()*R2h).Transpose());
        Vec3 v(R2TmpT*(pNode2->GetWCurr()-pNode1->GetWCurr()));
        
-       return v.dGet(3);
+       return v(3);
     }
       
     default:
@@ -2549,7 +2557,13 @@
    
 	switch (i) {
 	case 1: {
-		return dTheta;
+		Mat3x3 RTmp(((pNode1->GetRCurr()*R1h).Transpose()
+				*pNode1->GetRPrev()*R1h).Transpose()
+				*((pNode2->GetRCurr()*R2h).Transpose()
+					*pNode2->GetRPrev()*R2h));
+		Vec3 v(MatR2EulerAngles(RTmp.Transpose()));
+
+		return dTheta + v(3);
 	}
       
 	case 2: 
@@ -3115,14 +3129,14 @@
 	Mat3x3 RTmp(pNode->GetRPrev().Transpose()*pNode->GetRCurr()*Rh);
 	Vec3 v(MatR2EulerAngles(RTmp));
 
-       return dTheta + v.dGet(3);
+       return dTheta + v(3);
     }
       
     case 2: {
        Mat3x3 RTmpT((pNode->GetRCurr()*Rh).Transpose());
        Vec3 v(RTmpT*pNode->GetWCurr());
        
-       return v.dGet(3);
+       return v(3);
     }
       
     default:

