About
A BaseOverrideGroup acts like a virtual null object. It can have multiple child objects. Tags applied to the group are applied to the child objects.
Warning Override groups add tags to the scene and own these tags. It is not possible to delete these tags. NBIT::TAKE_LOCK can be used to check if a tag is owned by a BaseOverrideGroup .
if (object == nullptr )
if (materials == nullptr )
{
if (take == nullptr )
if (group == nullptr )
if (tag == nullptr )
}
Access
Existing override groups are accessed from the host BaseTake :
if (overrideGroups == nullptr )
{
if (group == nullptr )
if (group->
Find (takeData, activeObject))
}
Allocation/Deallocation
A BaseOverrideGroup is created using the host BaseTake .
if (group == nullptr )
group->
SetName (
"New Override Group" _s);
Navigation
BaseOverrideGroup instances are organized in a simple BaseList2D list.
while (overrideGroup != nullptr )
{
overrideGroup = overrideGroup->
GetNext ();
}
Read
Override Group
Objects
A BaseOverrideGroup acts like a null object. Different scene objects can be added to this group.
if (objects == nullptr )
{
}
Tags
Override groups act as virtual null objects that can host different tags. If a take is applied, this tag is added to the objects in question.
if (compositingTag == nullptr )
Modes
With these modes it is possible to control the visibility of the assigned objects when rendering and in the viewport.
The modes are:
MODE_OFF : off; elements are not visible.
MODE_ON : on; elements are always visible.
MODE_UNDEF : undefined; the parent mode applies.
if (take == nullptr )
if (objects == nullptr )
if (group == nullptr )
group->
SetName (
"Render Objects" _s);
{
}
Further Reading
BaseOverrideGroup * AddOverrideGroup()
Bool GetBit(Int32 mask) const
Definition: c4d_baselist.h:2236
Definition: lib_takesystem.h:180
#define MODE_ON
The object is enabled regardless of the state of any parent object.
Definition: c4d_baseobject.h:35
Definition: c4d_baseobject.h:224
Definition: lib_description.h:328
Definition: lib_takesystem.h:319
void AddToGroup(TakeData *takeData, BaseList2D *node)
Definition: c4d_basetag.h:46
BaseTake * AddTake(const String &name, BaseTake *parent, BaseTake *cloneFrom)
BaseOverrideGroup * GetFirstOverrideGroup()
void GetActiveMaterials(AtomArray &selection) const
BaseTag * AddTag(TakeData *takeData, Int32 type, BaseMaterial *mat)
Int32 GetCount() const
Definition: c4d_baselist.h:1648
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:66
void SetRenderMode(Int32 mode)
@ TEXTURETAG_PROJECTION
Definition: ttexture.h:10
#define BIT_ACTIVE
Active.
Definition: ge_prepass.h:844
Definition: c4d_string.h:38
Bool SetParameter(const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
BaseTake * GetCurrentTake()
Bool GetOverrideGroups(AtomArray &selection)
void GetActiveObjects(AtomArray &selection, GETACTIVEOBJECTFLAGS flags) const
void SetEditorMode(Int32 mode)
Definition: c4d_baselist.h:1360
void SetName(const maxon::String &name)
Definition: c4d_baselist.h:2353
maxon::Int32 Int32
Definition: ge_sys_math.h:60
#define ApplicationOutput(formatString,...)
Definition: debugdiagnostics.h:208
#define Ttexture
Texture - TextureTag.
Definition: ge_prepass.h:1245
@ COMPOSITINGTAG_ENABLECHN0
Definition: tcompositing.h:19
Definition: ge_autoptr.h:36
BaseOverrideGroup * GetNext() const
Definition: lib_takesystem.h:199
@ TEXTURETAG_PROJECTION_UVW
Definition: ttexture.h:17
#define MODE_OFF
The object is disabled regardless of the state of any parent object.
Definition: c4d_baseobject.h:36
BaseObject * GetActiveObject(void)
String GetName() const
Definition: c4d_baselist.h:2347
Bool Find(TakeData *takeData, BaseObject *op)
#define Tcompositing
Compositing/render.
Definition: ge_prepass.h:1250
Definition: c4d_basematerial.h:27
C4DAtom * GetIndex(Int32 idx) const
Definition: c4d_baselist.h:1663