Clarisse 5.0 SP8 SDK
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Types | Public Member Functions | Public Attributes | List of all members
ModuleSceneObjectTreeCallbacks Class Reference
Inheritance diagram for ModuleSceneObjectTreeCallbacks:
ModuleSceneObjectCallbacks ModuleSceneItemCallbacks ModuleGlObjectCallbacks ModuleObjectCallbacks OfClassCallbacks

Public Types

typedef ModuleGeometry *(* GetSupportGeometryCallback )(OfObject &object)
typedef void(* GetSubObjectsCallback )(OfObject &object, CoreArray< ModuleSceneObject * > &sub_objects)
typedef void(* GetInstancesCallback )(OfObject &object, CoreArray< unsigned int > &instances)
typedef void(* GetInstancesTimeCallback )(OfObject &object, const CoreArray< unsigned int > &instances, CoreArray< double > &time_offsets)
typedef void(* DecimateInstancesCallback )(OfObject &object, const CoreArray< unsigned int > &instances, CoreArray< unsigned int > &indices)
typedef void(* GetInstancesMatricesCallback )(OfObject &object, const CoreArray< unsigned int > &instances, CoreArray< GMathMatrix4x4d > &matrices)
typedef void(* GetInstancesMatricesAtCallback )(OfObject &object, const CtxEval &eval_ctx, const double &time, GMathMatrix4x4d *matrices)
typedef void(* GetInstanceTransformsCallback )(OfObject &object, const CoreArray< unsigned int > &instances, const CoreArray< unsigned int > &indices, ModuleSceneObjectTreeTransforms &transforms)
- Public Types inherited from ModuleSceneObjectCallbacks
typedef GMathBbox3d(* GetBboxCallback )(OfObject &, GeometryOverride *)
typedef GMathBbox3d(* GetBboxAtCallback )(OfObject &, const CtxEval &, const double &, GeometryOverride *)
typedef void(* RayHitCallback )(OfObject &, const CtxEval &eval_ctx, CtxShader &, GeometryRaytraceCtx &)
typedef void(* RayHitNearestCallback )(OfObject &, const CtxEval &eval_ctx, CtxShader &, GeometryRaytraceCtx &)
typedef void(* FrustumHitCallback )(OfObject &, const CtxEval &eval_ctx, CtxShader &, GeometryFrustumCtx &)
typedef void(* RayFrustumHitCallback )(OfObject &, const CtxEval &eval_ctx, CtxShader &, GeometryRayFrustumCtx &)
typedef void(* BuildShadingGroupsCallback )(OfObject &, CoreArray< CoreString > &)
typedef void(* BuildMaterialsCallback )(OfObject &, CoreArray< ModuleMaterial * > &)
typedef void(* BuildClipMapsCallback )(OfObject &, CoreArray< ModuleTexture * > &)
typedef void(* BuildDisplacementsCallback )(OfObject &, CoreArray< ModuleDisplacement * > &)
typedef void(* BuildSGShadingVariablesCallback )(OfObject &, CoreArray< ShadingVariablesCtx * > &)
typedef GeometryOverride *(* GetGeometryOverrideCallback )(OfObject &, const GeometryOverrideConfig &)
typedef void(* GetGeometryAttributesOverrideCallback )(OfObject &, const GeometryOverrideConfig &, GeometryAttributesOverride &)
typedef ResourceData *(* CreateResourceOverrideCallback )(OfObject &, const int &, GeometryOverride &, void *)
- Public Types inherited from ModuleSceneItemCallbacks
typedef void(* GetModelMatrixCallback )(OfObject &object, GMathMatrix4x4d &matrix, const double &time)
typedef void(* GetTransformAtCallback )(OfObject &object, GMathTransform &transform, const double &time)
typedef bool(* IsVisibilityDrivenCallback )(OfObject &object)
- Public Types inherited from ModuleGlObjectCallbacks
typedef bool(* PrePaintGlCallback )(OfObject &, GlUtilsCtx &)
 The PrePaintGlCallback is called before the actual draw method. Initialization of objects used in the drawing function should be done here, for example creation of display list, calculus of bounding boxes, init of some GL features.
typedef bool(* PaintGlCallback )(OfObject &, GlUtilsCtx &)
 The PaintGlCallback is used to draw overlay information like bounding boxes, axis, etc... in one of Clarisse views.
typedef bool(* DestroyGlDataCallback )(OfObject &, GlUtilsGlCtx &)
 The DestroyGlDataCallback is called when destroying an object. Memory cleaning should be done in this callback.
typedef GMathBbox3d(* GetGlBboxCallback )(OfObject &, GlUtilsCtx &)
 return the gizmo bbox in local space
- Public Types inherited from ModuleObjectCallbacks
typedef void(* OnDestroyModuleCallback )(OfObject &)
 Called before the module deletion.
typedef ResourceData *(* CreateResourceCallback )(OfObject &, const int &, void *)
 Called lazily when a resource is not cached and has to be created.
typedef ResourceData *(* SetResourceDataCallback )(OfObject &, const int &, void *, const size_t &, const CoreString &)
 Deserialization callback for project resources.
typedef void(* OnResourceUpdateCallback )(OfObject &, const int &, const ResourceData *)
 Called everytime a resource is updated.
typedef CoreString(* MakeResourceKeyCallback )(OfObject &)
 Allows to generate a custom hash key for an object when a resource depends on it.
typedef CoreString(* GetResourceKeyCallback )(OfObject &, ResourceID, GeometryResourceOverride *)
typedef void(* InitiliazeResourcesCallback )(OfObject &)
typedef CoreString(* MakeAttributeKeyCallback )(const OfAttr &)
 Allows to generate a custom hash key for a given attribute. This callback is only called when needed, and on attributes which are listened to by a resource.
typedef ModuleCma *(* CreateCmaCallback )(const CtxEval *)
 Create a Clarisse Module Accessor class for this module, during this evaluation.
typedef bool(* OnNewTime )(OfObject &, const double &)
 Notifies an object every time the main evaluation time changes (using the Timeline widget for instance), to update it and evaluate whether the object state changed or not with the time update.
typedef bool(* RequestVariable )(OfObject &, CoreHashTable< unsigned int, OfObjectVariableValue * > &variables)
 Does nothing.
typedef void(* RegisterVariable )(OfObject &, const CoreBasicArray< OfObjectVariableValue * > &variables, CoreVector< unsigned int > &unknown_variable_indices)
 Called to gather the variables defined in the OfObject and their values, among those requested by the application.
typedef void(* UnRegisterVariable )(OfObject &, const CoreBasicArray< OfObjectVariableValue * > &variables)
 Called to notify when variables are no longer needed by the application.
typedef void *(* CreateClassEvalData )(const OfClass &, const CtxEval &)
 Create a class evaluation data, that will be shared by all objects of this particular class during this evaluation.
typedef void(* DestroyClassEvalData )(const OfClass &, const CtxEval &, void *)
 Delete a class evaluation data, that has been shared by all objects of this particular class during this evaluation.
typedef void *(* CreateEvalData )(const OfObject &, const CtxEval &)
 Create an object evaluation data, that will be used by this particular object during this evaluation.
typedef void(* DestroyEvalData )(const OfObject &, const CtxEval &, void *)
 Delete an object evaluation data, that has been used by this particular object during this evaluation.
typedef void *(* CreateThreadData )(const OfObject &, const CtxEval &)
 Create an object thread data, that will be bound to both the current evaluation thread and the object during this evaluation.
typedef void(* DestroyThreadData )(const OfObject &, const CtxEval &, void *)
 Delete an object thread data, that was bound to both one evaluation thread and the object during this evaluation.
typedef void(* PostEvaluate )(const OfObject &, const CtxEval &)
 Called once at the end of an evaluation, if the object was referenced in the evaluation graph.
typedef void(* GetAttrPresetHints )(const OfObject &, const OfAttr &, CoreArray< bool > &)
 Allows to dynamically enable or disable entries among the list of preset values for an attribute on an object.
typedef void(* GetTrackingFilenames )(const OfObject &, const CoreString &, CoreArray< CoreString > &)
 Allows to customize on the fly the filenames to track for resources dirtiness.
typedef unsigned int(* GetObjectVariableLong )(const OfObject &, const CoreString &, long long *, const unsigned int &)
 Fetch the values of a variable in an object, typed as a long long.
typedef unsigned int(* GetObjectVariableDouble )(const OfObject &, const CoreString &, double *, const unsigned int &)
 Fetch the values of a variable in an object, typed as a double.
typedef GuiWidget *(* DeclareCustomUi )(const CoreVector< OfAttrHandle > &, GuiWidget &, void *custom_data)
 Create a custom user interface for an attribute of type custom_ui.
typedef GuiSpreadsheetCell *(* GetCustomTableCellUi )(const OfAttrTable &table, GuiSpreadsheetRow &parent, unsigned int column, unsigned int row, bool enabled)
 Create a custom spreadsheet cell for a column attribute (e.g. which is part of a table) that has been flagged with custom_cell_ui yes in its definition. When implementing this callback, you only have to create the correct spreadsheet cell type and initialize its content based on the table. Its enabled state will be set automatically.
typedef CoreString(* GetCustomAttributeLabel )(const OfAttr &attribute)
- Public Types inherited from OfClassCallbacks
typedef OfModule *(* CreateModuleCallback )(OfObject &, OfObjectFactory &)
typedef bool(* DestroyModuleCallback )(OfObject &, OfObjectFactory &, OfModule *)
typedef void(* ModuleConstructorCallback )(OfObject &, OfModule *)
typedef void(* ModuleDestructorCallback )(OfObject &, OfModule *)
typedef void *(* CreateModuleDataCallback )(const OfObject &)
typedef bool(* DestroyModuleDataCallback )(const OfObject &, void *)
typedef void(* OnAttributeChangeCallback )(OfObject &, const OfAttr &, int &, const int &)
typedef void(* OnSendEventCallback )(OfObject &, const CoreString &)
typedef void(* OnSerializeObjectCallback )(OfObject &)
typedef void(* OnPreDeserializeCallback )(OfObject &, const CoreVersion &, ParserGroup &parser_group)
typedef void(* OnPreDeserializeObjectCallback )(const CoreVersion &, ParserGroup &parser_group)
typedef void(* OnDeserializeObjectCallback )(OfObject &, const CoreVersion &, const ParserGroup &parser_group, const OfSerialOptions &serial_options)
typedef void(* SerializeUserDataCallback )(const OfObject &, ParserGroup &)
typedef void(* DeserializeUserDataCallback )(const OfObject &, const ParserGroup &)
typedef void(* PreProcessOverrideCallback )(OfObject &object, OfOverrides &overrides, const CoreString &obj_key)
typedef OfItemHandle(* GetTraversalItemCallback )(OfObject &object)
typedef ResourceData *(* CreateResourceCustomCallback )(OfObject &, void *)
typedef void(* OnResourceUpdateCustomCallback )(OfObject &, const int &, const ResourceData *)
typedef ResourceData *(* CreateResourceCustomOverrideCallback )(OfObject &, GeometryOverride &, void *)
typedef void(* SetShadingLayerValuesCallback )(OfObject &object, const CoreBasicArray< OfObject * > &, const CoreBasicArray< OfObject * > &, const CoreBasicArray< OfObject * > &)

Public Member Functions

virtual void init_callbacks (OfClassCallbacks &callbacks)

Public Attributes

GetSupportGeometryCallback cb_get_support_geometry
 Get the support ModuleGeometry.
GetSubObjectsCallback cb_get_sub_objects
 Get the sub-objects. Required.
GetInstancesCallback cb_get_instances
 Get the sub-objects indices for each instance. Required.
GetInstancesTimeCallback cb_get_instances_time
 Get per-instance time offsets.
DecimateInstancesCallback cb_decimate_instances
 Get the list of instance indices that we want to keep. Optional.
GetInstancesMatricesCallback cb_get_instances_matrices
GetInstancesMatricesAtCallback cb_get_instances_matrices_at
 Same as cb_get_instances_matrices, but for motion blur (it should return the matrices at the given time)
GetInstanceTransformsCallback cb_get_instance_transforms
- Public Attributes inherited from ModuleSceneObjectCallbacks
GetBboxCallback cb_get_bbox
GetBboxAtCallback cb_get_bbox_at
RayHitCallback cb_ray_hit
RayHitNearestCallback cb_ray_hit_nearest
FrustumHitCallback cb_frustum_hit
RayFrustumHitCallback cb_ray_frustum_hit
BuildShadingGroupsCallback cb_build_shading_groups
BuildMaterialsCallback cb_build_materials
BuildClipMapsCallback cb_build_clip_maps
BuildDisplacementsCallback cb_build_displacements
BuildSGShadingVariablesCallback cb_build_sg_shading_variables
GetGeometryOverrideCallback cb_get_geometry_override
GetGeometryAttributesOverrideCallback cb_get_geometry_attributes_override
CreateResourceOverrideCallback cb_create_resource_override
- Public Attributes inherited from ModuleSceneItemCallbacks
GetModelMatrixCallback cb_get_model_matrix
GetTransformAtCallback cb_get_transform_at
IsVisibilityDrivenCallback cb_is_visibility_driven
- Public Attributes inherited from ModuleGlObjectCallbacks
PrePaintGlCallback cb_pre_paint_gl
PaintGlCallback cb_paint_gl
DestroyGlDataCallback cb_destroy_gl_data
GetGlBboxCallback cb_get_gl_bbox
- Public Attributes inherited from ModuleObjectCallbacks
OnDestroyModuleCallback cb_on_destroy_module
CreateResourceCallback cb_create_resource
SetResourceDataCallback cb_set_resource_data
OnResourceUpdateCallback cb_on_resource_update
MakeResourceKeyCallback cb_make_resource_key
GetResourceKeyCallback cb_get_resource_key
InitiliazeResourcesCallback cb_initialize_resources
MakeAttributeKeyCallback cb_make_attribute_key
CreateCmaCallback cb_create_cma
OnNewTime cb_on_new_time
RequestVariable cb_request_variables
RegisterVariable cb_register_variables
UnRegisterVariable cb_unregister_variables
CreateClassEvalData cb_create_class_eval_data
DestroyClassEvalData cb_destroy_class_eval_data
CreateEvalData cb_create_eval_data
DestroyEvalData cb_destroy_eval_data
CreateThreadData cb_create_thread_data
DestroyThreadData cb_destroy_thread_data
PostEvaluate cb_post_evaluate
GetAttrPresetHints cb_get_attr_preset_hints
GetTrackingFilenames cb_get_tracking_filenames
GetObjectVariableLong cb_get_object_variable_long
GetObjectVariableDouble cb_get_object_variable_double
DeclareCustomUi cb_declare_custom_ui
GetCustomAttributeLabel cb_get_custom_attribute_label
GetCustomTableCellUi cb_get_custom_table_cell_ui
- Public Attributes inherited from OfClassCallbacks
CreateModuleCallback cb_create_module
DestroyModuleCallback cb_destroy_module
ModuleConstructorCallback cb_module_constructor
ModuleDestructorCallback cb_module_destructor
CreateModuleDataCallback cb_create_module_data
DestroyModuleDataCallback cb_destroy_module_data
OnAttributeChangeCallback cb_on_attribute_change
OnSendEventCallback cb_on_send_event
OnSerializeObjectCallback cb_on_serialize_object
OnDeserializeObjectCallback cb_on_deserialize_object
OnPreDeserializeCallback cb_on_pre_deserialize
OnPreDeserializeObjectCallback cb_on_pre_deserialize_object
SerializeUserDataCallback cb_serialize_user_data
DeserializeUserDataCallback cb_deserialize_user_data
PreProcessOverrideCallback cb_pre_process_override
GetTraversalItemCallback cb_get_traversal_item
SetShadingLayerValuesCallback cb_set_shading_layer_values

Detailed Description

The callbacks used by ModuleSceneObjectTree

Member Typedef Documentation

typedef void(* ModuleSceneObjectTreeCallbacks::DecimateInstancesCallback)(OfObject &object, const CoreArray< unsigned int > &instances, CoreArray< unsigned int > &indices)

Callback type for ModuleSceneObjectTreeCallbacks::cb_decimate_instances.

[in]objectThe object.
[in]instancesThe list of instances that was filled by cb_get_instances.
[out]indicesThe list of instance indices to keep. Values are indices into the instances array.
typedef void(* ModuleSceneObjectTreeCallbacks::GetInstancesCallback)(OfObject &object, CoreArray< unsigned int > &instances)

Callback type for ModuleSceneObjectTreeCallbacks::cb_get_instances.

[in]objectThe object.
[out]instancesThe list of instances. The values are indices into the list of sub-objects that was filled by cb_get_sub_objects.
typedef void(* ModuleSceneObjectTreeCallbacks::GetInstancesMatricesAtCallback)(OfObject &object, const CtxEval &eval_ctx, const double &time, GMathMatrix4x4d *matrices)

Callback type for ModuleSceneObjectTreeCallbacks::cb_get_instances_matrices_at

[in]objectThe object.
[in]timeThe time at which to evaluate the matrices.
[in]matricesPre-allocated array of matrices.
See Also
typedef void(* ModuleSceneObjectTreeCallbacks::GetInstancesMatricesCallback)(OfObject &object, const CoreArray< unsigned int > &instances, CoreArray< GMathMatrix4x4d > &matrices)

Callback type for ModuleSceneObjectTreeCallbacks::cb_get_instances_matrices.

[in]objectThe object.
[in]instancesThe list of instances (after decimation) to get the matrices of.
[out]matricesMatrices corresponding to the instances.
See Also
typedef void(* ModuleSceneObjectTreeCallbacks::GetInstancesTimeCallback)(OfObject &object, const CoreArray< unsigned int > &instances, CoreArray< double > &time_offsets)

Callback type for ModuleSceneObjectTreeCallbacks::cb_get_instances_time

[in]objectThe object.
[in]instancesThe list of instances.
[out]time_offsetsPer-instance time offset. This is used to be able to instanciate animated geoemtry at different time. Offsets are in seconds.
typedef void(* ModuleSceneObjectTreeCallbacks::GetInstanceTransformsCallback)(OfObject &object, const CoreArray< unsigned int > &instances, const CoreArray< unsigned int > &indices, ModuleSceneObjectTreeTransforms &transforms)

Callback type for ModuleSceneObjectTreeCallbacks::cb_get_instance_transforms.

[in]objectThe object.
[in]instancesThe list of instances before decimation.
[in]indicesThe indices on instances to get the transforms of (indices is the one filled in the DecimateInstancesCallback callback)
[out]Theuninitialized transforms. You need to initiliaze it, and then set the values as needed.
typedef void(* ModuleSceneObjectTreeCallbacks::GetSubObjectsCallback)(OfObject &object, CoreArray< ModuleSceneObject * > &sub_objects)

Callback type for ModuleSceneObjectTreeCallbacks::cb_get_sub_objects.

[in]objectThe object.
[out]sub_objectsThe output list of sub-objects.
typedef ModuleGeometry*(* ModuleSceneObjectTreeCallbacks::GetSupportGeometryCallback)(OfObject &object)

Callback type for ModuleSceneObjectTreeCallbacks::cb_get_support_geometry.

[in]objectThe object.
The ModuleGeometry of the support geometry, or nullptr if there is no support geometry.

Member Data Documentation

GetInstanceTransformsCallback ModuleSceneObjectTreeCallbacks::cb_get_instance_transforms

Get the transforms of the given instances. Either cb_get_instances_matrices or cb_get_instance_transforms is required. This callback takes precedence over cb_get_instances_matrices.

See Also
GetInstancesMatricesCallback ModuleSceneObjectTreeCallbacks::cb_get_instances_matrices

Get the matrices of the given instances. Either cb_get_instances_matrices or cb_get_instances_transforms is required.

See Also