Here you will find documentation on all the descriptions that Cinema 4D currently has. You can list them Alphabetically, by Type or Plugin . The sample Python and C++ code is automatically generated and in some cases may not be 100% correct. If something doesn't work then please refer to the official Cinema 4D SDK documentation for more information.

IDs and information for Oxpsplitter

Oxpsplitter

Attributes

  • ENGLISH NAME : X-ParticlesFragmenterObject
  • NAME : Oxpsplitter
  • INCLUDE : Obase
  • PATH : res/description/oxpsplitter.res
  • PLUGIN : X-Particles
  • MAXON online help (may not exist): OXPSPLITTER

Elements

ID UI Name Type Parameters Cycle
XSPL_EMITTER_LINK Emitter LINK  
XSPL_SPLITTER_MODE Mode LONG  
SPLITTER_MODE_FACES Faces(Objects)
SPLITTER_MODE_FACES_POLYS Faces(Polys)
SPLITTER_MODE_OBJECTS Objects
XSPL_SPLITTER_CONNECT ConnectPolys BOOL  
XSPL_SPLITTER_CONNECT_DIST Distance REAL
UNIT METER
MIN 0.0
XSPL_SPLITTER_TEXMODE Texture LONG  
SPLITTER_TEXMODE_ORIG Original
SPLITTER_TEXMODE_RANDOM Random/Multishader
SPLITTER_TEXMODE_PARTICLE UseParticleColor
XSPL_SPLITTER_TEXTURE_REMAP RemapTextures BOOL  
XSPL_SPLITTER_SCALEMODE ScaleMode LONG  
SPLITTER_SCALE_MODE_ORIG UseParticleScale
SPLITTER_SCALE_MODE_RADIUS UseParticleRadius
XSPL_SPLITTER_OBJLIST Objects IN_EXCLUDE
NUM_FLAGS 2
INIT_STATE 3
SEND_SELCHNGMSG 1
SCALE_V
IMAGE_01_ON 1009316
IMAGE_01_OFF 1009320
IMAGE_02_ON 300000231
IMAGE_02_OFF 300000230
XSPL_SPLITTER_EMITTER_SETUP SetUpEmitter BUTTON  
XSPL_SPLITTER_EMITTER_ONEFRAMEONLY EmitonSingleFrame BOOL  
XSPL_SPLITTER_EMITTER_FRAME EmissionFrame LONG STEP
XSPL_HELP_BUTTON BITMAPBUTTON  
XSPL_VIDMAN_BUTTON BITMAPBUTTON  
XSPL_BUTTON_RESET ResettoDefaults BUTTON  
XSPL_BUTTON_SAVE_PRESET SavePreset... BUTTON  
XSPL_BUTTON_LOAD_PRESET LoadPreset... BUTTON  

Example Code

The following code does not use the correct values when setting the data. You should check directly in C4D for the correct values that you should use in place of the ones that are shown. This code is just to show you how to access the values for getting and setting the parameters.

Python

import c4d
from c4d import gui
def main():
    obj = c4d.BaseObject(c4d.Oxpsplitter)
    doc.InsertObject(obj)
    c4d.EventAdd(c4d.EVENT_FORCEREDRAW)
    
    #You can set parameters two different ways. 
    #First way              
    obj[c4d.XSPL_SPLITTER_MODE] = c4d.SPLITTER_MODE_FACES
    obj[c4d.XSPL_SPLITTER_CONNECT] = True
    obj[c4d.XSPL_SPLITTER_CONNECT_DIST] = 0.1
    obj[c4d.XSPL_SPLITTER_TEXMODE] = c4d.SPLITTER_TEXMODE_ORIG
    obj[c4d.XSPL_SPLITTER_TEXTURE_REMAP] = True
    obj[c4d.XSPL_SPLITTER_SCALEMODE] = c4d.SPLITTER_SCALE_MODE_ORIG
    obj[c4d.XSPL_SPLITTER_EMITTER_ONEFRAMEONLY] = True
    obj[c4d.XSPL_SPLITTER_EMITTER_FRAME] = 1
    
    #Second way, using the base container.
    bc = obj.GetDataInstance()
    bc.SetInt32(c4d.XSPL_SPLITTER_MODE,c4d.SPLITTER_MODE_FACES)
    bc.SetBool(c4d.XSPL_SPLITTER_CONNECT,True)
    bc.SetFloat(c4d.XSPL_SPLITTER_CONNECT_DIST,0.1)
    bc.SetInt32(c4d.XSPL_SPLITTER_TEXMODE,c4d.SPLITTER_TEXMODE_ORIG)
    bc.SetBool(c4d.XSPL_SPLITTER_TEXTURE_REMAP,True)
    bc.SetInt32(c4d.XSPL_SPLITTER_SCALEMODE,c4d.SPLITTER_SCALE_MODE_ORIG)
    bc.SetBool(c4d.XSPL_SPLITTER_EMITTER_ONEFRAMEONLY,True)
    bc.SetInt32(c4d.XSPL_SPLITTER_EMITTER_FRAME,1)

if __name__=='__main__':
    main()
             

C++

#include "c4d.h"
#include "../res/description/oxpsplitter.h"
void SampleFunction()
{
    BaseDocument *pDoc = GetActiveDocument();
    BaseObject *pObject = BaseObject::Alloc(Oxpsplitter);
    pDoc->InsertObject(pObject);
    pDoc->StartUndo();
    pDoc->AddUndo(UNDO_NEW,pObject);
    pDoc->EndUndo();
    EventAdd(EVENT_FORCEREDRAW);
    
    //You can set parameters two different ways. 

    //First way              
    //Some objects do not store all their data in the container. You need to use GetParameter()/SetParameter() instead. 

    DESCFLAGS_SET flags = DESCFLAGS_SET_PARAM_SET;
    pObject->SetParameter(DescID(XSPL_SPLITTER_MODE),GeData(SPLITTER_MODE_FACES),flags);
    pObject->SetParameter(DescID(XSPL_SPLITTER_CONNECT),GeData(true),flags);
    pObject->SetParameter(DescID(XSPL_SPLITTER_CONNECT_DIST),GeData(0.1),flags);
    pObject->SetParameter(DescID(XSPL_SPLITTER_TEXMODE),GeData(SPLITTER_TEXMODE_ORIG),flags);
    pObject->SetParameter(DescID(XSPL_SPLITTER_TEXTURE_REMAP),GeData(true),flags);
    pObject->SetParameter(DescID(XSPL_SPLITTER_SCALEMODE),GeData(SPLITTER_SCALE_MODE_ORIG),flags);
    pObject->SetParameter(DescID(XSPL_SPLITTER_EMITTER_ONEFRAMEONLY),GeData(true),flags);
    pObject->SetParameter(DescID(XSPL_SPLITTER_EMITTER_FRAME),GeData(1),flags);
    pObject->Message(MSG_UPDATE);            

    //Second way, using the base container.
    BaseContainer *bc =     pObject->GetDataInstance();
    bc->SetInt32(XSPL_SPLITTER_MODE,SPLITTER_MODE_FACES);
    bc->SetBool(XSPL_SPLITTER_CONNECT,true);
    bc->SetFloat(XSPL_SPLITTER_CONNECT_DIST,0.1);
    bc->SetInt32(XSPL_SPLITTER_TEXMODE,SPLITTER_TEXMODE_ORIG);
    bc->SetBool(XSPL_SPLITTER_TEXTURE_REMAP,true);
    bc->SetInt32(XSPL_SPLITTER_SCALEMODE,SPLITTER_SCALE_MODE_ORIG);
    bc->SetBool(XSPL_SPLITTER_EMITTER_ONEFRAMEONLY,true);
    bc->SetInt32(XSPL_SPLITTER_EMITTER_FRAME,1);
    pObject->Message(MSG_UPDATE);                                                      
}
             

Buttons

This node has buttons. Buttons can manually be executed by calling the following code

Python

c4d.CallButton(obj,c4d.XSPL_SPLITTER_EMITTER_SETUP)
c4d.CallButton(obj,c4d.XSPL_HELP_BUTTON)
c4d.CallButton(obj,c4d.XSPL_VIDMAN_BUTTON)
c4d.CallButton(obj,c4d.XSPL_BUTTON_RESET)
c4d.CallButton(obj,c4d.XSPL_BUTTON_SAVE_PRESET)
c4d.CallButton(obj,c4d.XSPL_BUTTON_LOAD_PRESET)

C++

DescriptionCommand dc;
dc.id = DescID(XSPL_SPLITTER_EMITTER_SETUP);             
pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);

DescriptionCommand dc; dc.id = DescID(XSPL_HELP_BUTTON); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(XSPL_VIDMAN_BUTTON); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(XSPL_BUTTON_RESET); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(XSPL_BUTTON_SAVE_PRESET); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);
DescriptionCommand dc; dc.id = DescID(XSPL_BUTTON_LOAD_PRESET); pObject->Message(MSG_DESCRIPTION_COMMAND, &dc);