Clarisse 4.0 SP10 SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Protected Member Functions | Friends | List of all members
ModuleGroup Class Reference
Inheritance diagram for ModuleGroup:
ModuleProjectItem ModuleObject OfModule ResourceUser EventObject CoreCustomData CoreBaseObject CoreBaseType

Public Types

enum  GroupUpdateMode {
enum  GroupUpdateBehavior {
typedef GasObject *(* CreateGasCallback )(OfObject &)
typedef void(* DestroyGasCallback )(OfObject &, GasObject *)
typedef void(* GetSceneObjectInfoCallback )(OfObject &, SceneObjectInfo &info)

Public Member Functions

void get_objects (CoreArray< OfObject * > &objects) const
 Get the list of group objects "as is", does not update it if group is dirty.
void get_updated_objects (CoreArray< OfObject * > &objects)
 Get the list of group objects after having updated it if it was necessary.
const SceneObjectInfoget_scene_object_info () const
void set_inclusion_rule (const CoreString &rule)
void set_exclusion_rule (const CoreString &rule)
CoreString get_inclusion_rule () const
CoreString get_exclusion_rule () const
void set_result_filter (const CoreString &rule)
const CoreVector< const
OfClass * > & 
get_filter_classes () const
 get filter classses
void get_filter_class_names (const CoreVector< const OfClass * > &classes, CoreVector< CoreString > &class_names) const
 get the names of the class filter. This is not the raw value but only the existing classes.
void add_filter (const CoreString &filter)
 add a class filter
void set_filter (const CoreVector< CoreString > &filter, bool is_exclusion_filter=false)
 set a list of filters for the group.
void set_filter (const CoreString &filter)
 Deprecated. Add a filter to the group. Compatibility when groups only accepted one filter. Use add_filter instead.
GasObjectget_gas (const bool &auto_create=true) const
GasObjectget_las (const ModuleIntegrator &integrator, const bool &auto_create=true) const
void destroy_gas ()
void destroy_las ()
void dirty_motion_blur ()
void set_shading_layer (ModuleShadingLayer *shading_layer)
ModuleShadingLayerget_shading_layer () const
void get_shading_gas_ctx (const CtxEval &eval_ctx, const CtxShader &shader_ctx, CtxGas &gas_ctx) const
template<class T >
CoreArray< T * > get_filtered_objects () const
template<class T >
void get_filtered_objects (CoreSet< T * > &set) const
void set_group_update_behavior (const GroupUpdateBehavior &bh)
GroupUpdateBehavior get_group_update_behavior () const
GroupUpdateMode get_update_mode () const
void set_update_mode (const GroupUpdateMode &update_mode)
virtual size_t get_memory_size () const
void get_shading_gas_ctx (ModuleShadingLayer *shading_layer, CtxGas &ctx)
void clear_shading_tables (ModuleShadingLayer *shading_layer)
void clear_shading_gas (ModuleShadingLayer *shading_layer)
void clear_content ()
 reset group content. Clear any rule and included/excluded objects.
const bool & get_is_dirty () const
 Get if the group is dirty. This does not dictate the group content update, for this use check_update() to know if the group must be rebuilt now.
void set_is_dirty (const bool &value=true) const
void force_update_references ()
 Force group to update its reference list from its input and output information. This process is usualy done automaticaly on the main loop when a modifications happent, but in some cases you may want it do be done instantly. Will have no effect is group is not dirty!
bool has_rules ()
void get_inclusion_objects (CoreVector< OfObject * > &included) const
void get_inclusion_rules (CoreVector< CoreString > &rules) const
void get_exclusion_objects (CoreVector< OfObject * > &excluded) const
void get_exclusion_rules (CoreVector< CoreString > &rules) const
void set_inclusion_objects (const CoreBasicArray< OfObject * > &included)
void set_exclusion_objects (const CoreBasicArray< OfObject * > &excluded)
void set_inclusion_objects (const CoreBasicArray< ModuleObject * > &included)
void set_exclusion_objects (const CoreBasicArray< ModuleObject * > &excluded)
void add_inclusion_object (OfObject *obj)
void add_inclusion_objects (const CoreBasicArray< OfObject * > &included)
void add_inclusion_objects (const CoreBasicArray< ModuleObject * > &included)
void add_exclusion_object (OfObject *obj)
void add_exclusion_objects (const CoreBasicArray< OfObject * > &included)
void add_exclusion_objects (const CoreBasicArray< ModuleObject * > &included)
void get_result_filter (CoreVector< CoreString > &rules) const
MatteTableget_matte_table (ModuleLayer3d *layer3d)
 Return a pointer to the matte table associated to the given layer, and create and fill it if necessary.
void clear_matte_table (ModuleLayer3d *layer3d)
 Clear the matte table associated with the given layer and clear everything if a null pointer is passed.
bool build_dynamic_objects ()
 Deprecated. Force group content to be updated.
void set_objects (const CoreBasicArray< OfObject * > &objects)
void set_objects (const CoreBasicArray< ModuleObject * > &objects)
void set_group_rule (const CoreString &rule)
void set_group_exclusion_rule (const CoreString &rule)
CoreString get_group_rule () const
CoreString get_group_exclusion_rule () const

Protected Member Functions

virtual void module_constructor (OfObject &object)
virtual void on_attribute_change (const OfAttr &attr, int &dirtiness, const int &dirtiness_flags)
void set_group_objects (const CoreBasicArray< OfObject * > &new_group_content)
bool check_update () const
 return true if the group content should be updated, false otherwise


class SetGroupFilterCmd
class SetGroupModeCmd
class GroupManager

Additional Inherited Members

- Static Public Member Functions inherited from ModuleObject
static ResourceID declare_resource (const char *tag)
static ResourceID declare_resource (const CoreString &tag)
static bool declare_resource (ResourceID id, const char *tag)
static bool declare_resource (ResourceID id, const CoreString &tag)
static ResourceID get_resource_id (const char *tag)
static ResourceID get_resource_id (const CoreString &tag)
static const char * get_resource_tag (ResourceID id)

Member Function Documentation

const bool& ModuleGroup::get_is_dirty ( ) const

Get if the group is dirty. This does not dictate the group content update, for this use check_update() to know if the group must be rebuilt now.

See Also
MatteTable * ModuleGroup::get_matte_table ( ModuleLayer3d layer3d)

Return a pointer to the matte table associated to the given layer, and create and fill it if necessary.

Crash if a null pointer is passed.
void ModuleGroup::set_filter ( const CoreVector< CoreString > &  filter,
bool  is_exclusion_filter = false 

set a list of filters for the group.

is_exclusion_filterif true, the specified filters are considered as exclusion filters, i.e : class of objects the group cannot reference