00001
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00015
00016 #include <stdio.h>
00017 #include <vpplanejoint.h>
00018 #include <vpdof.h>
00019
00020 VPPlaneJoint::VPPlaneJoint( void ):VPJoint(){
00021
00022 vpSetParent( NULL );
00023 VPDof *d1 = new VPDof( VPVector3D( 0, 0, 1 ), VPPoint3D(), new VPBezier() );
00024 VPDof *d2 = new VPDof( VPVector3D( 1, 0, 0 ), VPPoint3D(), new VPBezier() );
00025 VPDof *d3 = new VPDof( VPVector3D( 0, 1, 0 ), VPPoint3D(), new VPBezier() );
00026 VPDof *d4 = new VPDof( VPVector3D( 1, 0, 0 ), VPPoint3D(), new VPBezier() );
00027 VPDof *d5 = new VPDof( VPVector3D( 0, 1, 0 ), VPPoint3D(), new VPBezier() );
00028 VPDof *d6 = new VPDof( VPVector3D( 0, 0, 1 ), VPPoint3D(), new VPBezier() );
00029 d1->vpSetOwnerJoint( this );
00030 d2->vpSetOwnerJoint( this );
00031 d3->vpSetOwnerJoint( this );
00032 d4->vpSetOwnerJoint( this );
00033 d5->vpSetOwnerJoint( this );
00034 d6->vpSetOwnerJoint( this );
00035 vpAddDof( d1 );
00036 vpAddDof( d2 );
00037 vpAddDof( d3 );
00038 vpAddDof( d4 );
00039 vpAddDof( d5 );
00040 vpAddDof( d6 );
00041 vpMakeLim();
00042 }
00043
00044 VPPlaneJoint::VPPlaneJoint( VPJoint *parent ):VPJoint(){
00045
00046 vpSetParent( parent );
00047 VPDof *d1 = new VPDof( VPVector3D( 0, 0, 1 ), VPPoint3D(), new VPBezier() );
00048 VPDof *d2 = new VPDof( VPVector3D( 1, 0, 0 ), VPPoint3D(), new VPBezier() );
00049 VPDof *d3 = new VPDof( VPVector3D( 0, 1, 0 ), VPPoint3D(), new VPBezier() );
00050 VPDof *d4 = new VPDof( VPVector3D( 1, 0, 0 ), VPPoint3D(), new VPBezier() );
00051 VPDof *d5 = new VPDof( VPVector3D( 0, 1, 0 ), VPPoint3D(), new VPBezier() );
00052 VPDof *d6 = new VPDof( VPVector3D( 0, 0, 1 ), VPPoint3D(), new VPBezier() );
00053 d1->vpSetOwnerJoint( this );
00054 d2->vpSetOwnerJoint( this );
00055 d3->vpSetOwnerJoint( this );
00056 d4->vpSetOwnerJoint( this );
00057 d5->vpSetOwnerJoint( this );
00058 d6->vpSetOwnerJoint( this );
00059 vpAddDof( d1 );
00060 vpAddDof( d2 );
00061 vpAddDof( d3 );
00062 vpAddDof( d4 );
00063 vpAddDof( d5 );
00064 vpAddDof( d6 );
00065 vpMakeLim();
00066 }
00067
00068 VPPlaneJoint::VPPlaneJoint( VPJoint *parent, VPDof *dof1, VPDof *dof2, VPDof *dof3,
00069 VPDof *dof4, VPDof *dof5, VPDof *dof6 ):VPJoint(){
00070
00071 vpSetParent( parent );
00072 dof1->vpSetOwnerJoint( this );
00073 dof2->vpSetOwnerJoint( this );
00074 dof3->vpSetOwnerJoint( this );
00075 dof4->vpSetOwnerJoint( this );
00076 dof5->vpSetOwnerJoint( this );
00077 dof6->vpSetOwnerJoint( this );
00078 vpAddDof( dof1 );
00079 vpAddDof( dof2 );
00080 vpAddDof( dof3 );
00081 vpAddDof( dof4 );
00082 vpAddDof( dof5 );
00083 vpAddDof( dof6 );
00084 vpMakeLim();
00085 }
00086
00087 void
00088 VPPlaneJoint::vpSetFlexionTo( float value ){
00089
00090 vpGetDofList()[0]->vpMoveTo( value );
00091 vpMakeLim();
00092 }
00093
00094 void
00095 VPPlaneJoint::vpSetAdductionTo( float value ){
00096
00097 vpGetDofList()[1]->vpMoveTo( value );
00098 vpMakeLim();
00099 }
00100
00101 void
00102 VPPlaneJoint::vpSetTwistTo( float value ){
00103
00104 vpGetDofList()[2]->vpMoveTo( value );
00105 vpMakeLim();
00106 }
00107
00108 void
00109 VPPlaneJoint::vpSetXSlideTo( float value ){
00110
00111 vpGetDofList()[3]->vpMoveTo( value );
00112 vpMakeLim();
00113 }
00114
00115 void
00116 VPPlaneJoint::vpSetYSlideTo( float value ){
00117
00118 vpGetDofList()[4]->vpMoveTo( value );
00119 vpMakeLim();
00120 }
00121
00122 void
00123 VPPlaneJoint::vpSetZSlideTo( float value ){
00124
00125 vpGetDofList()[5]->vpMoveTo( value );
00126 vpMakeLim();
00127 }