Get BaseObject from ObjectData



  • On 10/02/2016 at 04:57, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   R17 
    Platform:      
    Language(s) :     C++  ;

    ---------
    Here is the newbie again, I've managed to create my object derived from ObjectData but what if I want to move it from inside itself?

    Moving it seems to be trivial using BaseObject* functions but I cannot find the way to get it.

    Regards and thank you in advance again!



  • On 10/02/2016 at 05:38, xxxxxxxx wrote:

    From inside your ObjectData-derived class, you can use either the GeListNode* node passed to the method in the class:

    //*---------------------------------------------------------------------------*
    Bool MyObjectData::Message(GeListNode* node, Int32 type, void* data)
    //*---------------------------------------------------------------------------*
    {
    	if (!node)
    		return FALSE;
      
    	BaseObject*	pObject =	static_cast<BaseObject*>(node);
      
    	// etc.
      
    	return SUPER::Message(node,type,data);
    }
    

    Or you can use the NodeData::Get() method:

    //*---------------------------------------------------------------------------*
    Bool MyObjectData::MyMethod()
    //*---------------------------------------------------------------------------*
    {
    	GeListNode*	node =	Get();
    	if (!node)
    		return FALSE;
      
    	BaseObject*	pObject =	static_cast<BaseObject*>(node);
      
    	// etc.
      
    	return TRUE;
    }
    


  • On 10/02/2016 at 10:02, xxxxxxxx wrote:

    Thank you second method is perfect for me


Log in to reply