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)
doc->GetActiveMaterials(materials);
for (
Int32 i = 0;
i < materials->GetCount(); ++
i)
{
C4DAtom*
const mat = materials->GetIndex(
i);
BaseTake*
const take = takeData->AddTake(materialName,
nullptr,
nullptr);
if (take == nullptr)
if (group == nullptr)
if (tag == nullptr)
}
Py_ssize_t i
Definition: abstract.h:645
Definition: ge_autoptr.h:37
String GetName() const
Definition: c4d_baselist.h:2381
Definition: c4d_basematerial.h:28
Definition: c4d_baseobject.h:225
Definition: lib_takesystem.h:196
BaseTag * AddTag(TakeData *takeData, Int32 type, BaseMaterial *mat)
void AddToGroup(TakeData *takeData, BaseList2D *node)
Definition: c4d_basetag.h:48
Definition: lib_takesystem.h:335
BaseOverrideGroup * AddOverrideGroup()
Definition: c4d_baselist.h:1395
Bool SetParameter(const DescID &id, const GeData &t_data, DESCFLAGS_SET flags)
Definition: lib_description.h:330
Definition: c4d_string.h:39
maxon::Int32 Int32
Definition: ge_sys_math.h:60
#define MAXON_SOURCE_LOCATION
Definition: memoryallocationbase.h:67
#define Ttexture
Texture - TextureTag.
Definition: ge_prepass.h:1392
const char * doc
Definition: pyerrors.h:226
@ TEXTURETAG_PROJECTION
Definition: ttexture.h:10
@ TEXTURETAG_PROJECTION_UVW
Definition: ttexture.h:17
Access
Existing override groups are accessed from the host BaseTake:
if (overrideGroups == nullptr)
for (
Int32 i = 0;
i < overrideGroups->GetCount(); ++
i)
{
if (group == nullptr)
if (group->
Find(takeData, activeObject))
}
Bool Find(TakeData *takeData, BaseObject *op)
Bool GetOverrideGroups(AtomArray &selection)
#define ApplicationOutput(formatString,...)
Definition: debugdiagnostics.h:210
Allocation/Deallocation
A BaseOverrideGroup is created using the host BaseTake.
if (group == nullptr)
group->
SetName(
"New Override Group"_s);
void SetName(const maxon::String &name)
Definition: c4d_baselist.h:2387
Navigation
BaseOverrideGroup instances are organized in a simple BaseList2D list.
while (overrideGroup != nullptr)
{
overrideGroup = overrideGroup->
GetNext();
}
Bool GetBit(Int32 mask) const
Definition: c4d_baselist.h:2270
BaseOverrideGroup * GetNext() const
Definition: lib_takesystem.h:214
BaseOverrideGroup * GetFirstOverrideGroup()
#define BIT_ACTIVE
Active.
Definition: ge_prepass.h:881
Read
Override Group
Objects
A BaseOverrideGroup acts like a null object. Different scene objects can be added to this group.
if (objects == nullptr)
for (
Int32 i = 0;
i < objects->GetCount(); ++
i)
{
}
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)
#define Tcompositing
Compositing/render.
Definition: ge_prepass.h:1397
@ COMPOSITINGTAG_ENABLECHN0
Definition: tcompositing.h:19
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.
BaseTake*
const take = takeData->GetCurrentTake();
if (take == nullptr)
if (objects == nullptr)
if (group == nullptr)
group->
SetName(
"Render Objects"_s);
for (
Int32 i = 0;
i < objects->GetCount(); ++
i)
{
}
void SetEditorMode(Int32 mode)
void SetRenderMode(Int32 mode)
#define MODE_ON
The object is enabled regardless of the state of any parent object.
Definition: c4d_baseobject.h:35
#define MODE_OFF
The object is disabled regardless of the state of any parent object.
Definition: c4d_baseobject.h:36
Further Reading