Camera - TargetExpressionTag - Cinema 7/8



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

    On 22/07/2003 at 06:11, xxxxxxxx wrote:

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

    ---------
    i want to export the camera target...
    with cinema 7 it works fine, with 8 i get a NIL object ?!
    here the snippet:
     
       // CAM TARGET
       var objTag = pObject->GetFirstTag();
       while(objTag != NULL)
       {
        var objClass = getclass(objTag);
        if (objClass == TargetExpressionTag)
        {
         // TARGET NAME
         var targetContainer = objTag->GetContainer();
         var strTargetName = targetContainer->GetData(TARGETEXPRESSIONTAG_NAME);
         println("camtargetame: ", strTargetName);
         WriteChunk(CHUNK_CAMERA_TARGET_NAME);
         WriteZeroString(strTargetName);
          var tmpObject = g_pDoc->GetFirstObject();
          while(tmpObject != NULL)
          {
           var strTmpName = tmpObject->GetName();
           if ( 0 == strcmp(strTargetName, strTmpName) )
           {
            // TARGET POSITION
            var vecTargetPos = tmpObject->GetPosition();
            println("camtargetpos: ", vecTargetPos);
            WriteChunk(CHUNK_CAMERA_TARGET_POSITION);
            g_pFile->WriteReal(vecTargetPos.x);
            g_pFile->WriteReal(vecTargetPos.y);
            g_pFile->WriteReal(vecTargetPos.z);
           }
           tmpObject = tmpObject->GetNext();
          }
        }
        objTag = objTag->GetNext();
       }



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

    On 23/07/2003 at 06:56, xxxxxxxx wrote:

    Hi,
    in R8 the target object is not a string anymore but a BaseLink. And baselinks are unfortunately not accessible anymore in R8 via COFFEE.
    Either you switch to C++ or you will need to wait for an updated COFFEE SDK (or somebody writes a plugin that allows to pass the baselink to COFFEE - I even remember somebody actually is working on such a plugin).
    There is no workaround for this afaik.
    Best
    Samir



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

    On 24/07/2003 at 14:35, xxxxxxxx wrote:

    how lame...
    and how to get the "up" vector from the camera ?
    rotations ?



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

    On 24/07/2003 at 15:40, xxxxxxxx wrote:

    what do you mean by "up" vector? The rotations of the camera can be accessed just as any other object rotations with GetRotation or u use the local/global matrix of the object for the rotation values.
    See the COFFEE docs for more information. (And maybe a good book about OOP ;)
    Best
    Samir



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

    On 24/07/2003 at 18:03, xxxxxxxx wrote:

    i am coding an exporter for my d3d9 engine...
    and there, the camera has an "eye" (cam-pos), "lookat" (cam-targetpos) and
    "up" (?) vector... opengl also has those 3 vectors...
    so my question is how to get that "up" vector out of cinema.
    www.igoronimo.org/work.html
    some screenshots...



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

    On 25/07/2003 at 11:26, xxxxxxxx wrote:

    Get the matrix of the camera object. It sounds like:

        
        
        var mat = cam->GetMg();  
        eye = mat->GetV0();  
        lookat = mat->GetV3(); // Z axis  
        up = mat->GetV2(); // Y axis
    

    I assume that D3D doesn't store the X axis vector since it's always Y x Z.


Log in to reply