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:2237
@ TEXTURETAG_PROJECTION_UVW
Definition: ttexture.h:17
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)
@ COMPOSITINGTAG_ENABLECHN0
Definition: tcompositing.h:19
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:1649
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:67
void SetRenderMode(Int32 mode)
@ TEXTURETAG_PROJECTION
Definition: ttexture.h:10
#define BIT_ACTIVE
Active.
Definition: ge_prepass.h:865
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:1361
void SetName(const maxon::String &name)
Definition: c4d_baselist.h:2354
maxon::Int32 Int32
Definition: ge_sys_math.h:60
#define ApplicationOutput(formatString,...)
Definition: debugdiagnostics.h:210
#define Ttexture
Texture - TextureTag.
Definition: ge_prepass.h:1270
Definition: ge_autoptr.h:36
BaseOverrideGroup * GetNext() const
Definition: lib_takesystem.h:199
#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:2348
Bool Find(TakeData *takeData, BaseObject *op)
#define Tcompositing
Compositing/render.
Definition: ge_prepass.h:1275
Definition: c4d_basematerial.h:27
C4DAtom * GetIndex(Int32 idx) const
Definition: c4d_baselist.h:1664