Rotation XYZ



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 21/07/2004 at 03:45, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   6 
    Platform:    Mac  ;  
    Language(s) :   C.O.F.F.E.E  ;

    ---------
    Bonjour

    I want to drive the rotation of an object (a bone) by the rotation of an other object (a bone) but I want to controle the rotation on X Y and Z independently.
    I have write this :
    main(doc,op)

    {     
              var a = 1.00;
              var b = 1.00;
              var c = 1.00;
         
         var tg = doc->FindObject("Os bras G"); if(!tg) return;

    var mo = op->GetMg(); //position globale de l'os tagué
         var mt = tg->GetMg(); //position globale de l'os pilote

    var Roto = mt->GetHPB(); //rotation globale de l'os pilote

    var xo     = RotX( ); // compiler : variable or function expected
                     var yo     = RotY( );
                     var zo     = RotZ( );

    var pos = mo->GetV0();
         var scale = vector(vlen(mo->GetV1()),
                                 vlen(mo->GetV2()),
                                 vlen(mo->GetV3()));

    mo->SetRotX(xo * a);
         mo->SetRotY(yo * b);
         mo->SetRotZ(zo * c);

    mo->SetV0(pos);
         mo->SetV1(vnorm(mo->GetV1()) * scale.x);     
         mo->SetV2(vnorm(mo->GetV2()) * scale.y);     
         mo->SetV3(vnorm(mo->GetV3()) * scale.z);

    op->SetMg(mo);
         
         return;
    }

    When I compile, on the line
              var xo     = RotX( );
    it display : variable or function expected. I don't understand what I have to do.

    Bests regards
    ( Sorry for my english, I am french)



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 21/07/2004 at 05:10, xxxxxxxx wrote:

    I make mistake in my post. The right expression is :
    main(doc,op)

    {     
              var a = 1.00;
              var b = 1.00;
              var c = 1.00;
         
         var tg = doc->FindObject("Os bras G"); if(!tg) return;

    var mo = op->GetMg(); //position globale de l'os tagué
         var mt = tg->GetMg(); //position globale de l'os pilote

    var Roto = mt->GetHPB(); //rotation globale de l'os pilote

    var xo     = RotoX( );   // compiler : varaible or function expected
                  var yo     = RotoY( );
                  var zo     = RotoZ( );

    var pos = mo->GetV0();
         var scale = vector(vlen(mo->GetV1()),
                                 vlen(mo->GetV2()),
                                 vlen(mo->GetV3()));

    mo->SetRotX(xo * a);
         mo->SetRotY(yo * b);
         mo->SetRotZ(zo * c);

    mo->SetV0(pos);
         mo->SetV1(vnorm(mo->GetV1()) * scale.x);     
         mo->SetV2(vnorm(mo->GetV2()) * scale.y);     
         mo->SetV3(vnorm(mo->GetV3()) * scale.z);

    op->SetMg(mo);
         
         return;
    }

    And my problem is on these lines :
          var xo     = RotoX( );
                  var yo     = RotoY( );
                  var zo     = RotoZ( );



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 21/07/2004 at 18:21, xxxxxxxx wrote:

    Try this...
                     var xo     = Roto.x;
                     var yo     = Roto.y;
                     var zo     = Roto.z;



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 22/07/2004 at 00:48, xxxxxxxx wrote:

    Thank you for your response.

    I try that before. No error of compilation and no error when I command "executate". But when I rotate the pilot bone around X axis the other bone turns around Z axis, when I rotate around Y axis the second bone turns only Z axis. In any way the second bone turns only around Z axis.

    Bests regards
    Damator


Log in to reply