Clarisse 4.0 SP5b SDK  4.0.0.0.5.1
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | List of all members
ModuleGeometry Class Reference
Inheritance diagram for ModuleGeometry:
ModuleSceneObject ModuleSceneItem ModuleGlObject ModuleProjectItem ModuleObject OfModule ResourceUser EventObject CoreCustomData CoreBaseObject CoreBaseType ModuleParticle ModulePolymesh ModuleVolume

Public Member Functions

GMathBbox3d get_bbox (const bool &deformed=true, GeometryOverride *override_data=0) const
 
GMathBbox3d get_bbox_at (const CtxEval &eval_ctx, const double &time, const bool &deformed=true, GeometryOverride *override_data=0) const
 
void get_uv_tiles (const GeometryUvMap &uv_map, CoreArray< GeometryUvTile > &tiles) const
 
void get_uv_tiles (const int &index, CoreArray< GeometryUvTile > &tiles) const
 
void get_uv_tiles (const CoreString &uv_map_name, CoreArray< GeometryUvTile > &tiles) const
 
GMathVec4f get_uv_range (const unsigned int &uv_map_index) const
 
GMathVec4f get_uv_range (const CoreString &uv_map_name) const
 
GMathBbox3d get_shading_group_bbox (const unsigned int &id, const bool &deformed=true, GeometryOverride *override_data=0) const
 
void assign_material (ModuleMaterial &material, const unsigned int &shading_group_index)
 Assign the given material to the specified shading group of the geometry.
 
void assign_clip_map (ModuleTexture &clip_map, const unsigned int &shading_group_index)
 Assign the given clip map to the specified shading group of the geometry.
 
void assign_displacement (ModuleDisplacement &displacement, const unsigned int &shading_group_index)
 Assign the given displacement to the specified shading group of the geometry.
 
void set_shading_group_visibility (const unsigned int &shading_group_index, const bool &visible)
 Set whether a shading group is visible or not.
 
bool get_shading_group_visibility (const unsigned int &shading_group_index) const
 Get whether a shading group is visible or not.
 
void dirty_geometries ()
 
const GeometryObjectget_geometry (const bool &deformed=true) const
 
const GeometryObjectget_surface (const bool &deformed=true) const
 
const GeometryObjectget_tessellation (const bool &deformed=true) const
 
const GeometryObjectget_displaced_geometry (const bool &front=true) const
 
const GeometryPropertyCollectionget_properties () const
 
const GeometryPropertyget_geometry_property (const unsigned int &property_id, GeometryOverride *override_data=0) const
 
const GeometryPropertyget_tessellation_property (const unsigned int &property_id, GeometryOverride *override_data=0) const
 
const GeometryPropertyget_property (const unsigned int &property_id, GeometryOverride *override_data=0) const
 
const GeometryPropertyget_property (const CoreString &name, GeometryOverride *override_data=0) const
 
GasObjectget_gas (GeometryOverride *override_data=0) const
 
bool is_deformed () const
 Tell if the geometry has a deformer applied to it.
 
bool is_geometry_animated () const
 Tell if the geometry is animated.
 
bool is_displaced (const bool &front=true) const
 
const CoreBasicArray< unsigned
int > & 
get_displaced_shading_groups (const bool &front=true) const
 
GMathVec3d get_max_displacement_bound () const
 
bool is_shading_group_displaced (const unsigned int &index) const
 Tell if a shading group is displaced.
 
bool is_geometry () const
 Return true if the scene object is a geometry.
 
const CoreArray< CoreString > & get_uv_map_names (const bool blocking=true) const
 Get the names of the UV maps defined the by geometry.
 
double get_geometry_count () const
 Return the total number of geometries.
 
virtual double get_primitive_count () const
 Return the total number of primitives.
 
void get_geometries (CoreArray< ModuleSceneObjectGeometry > &handles, GeometryOverride *override) const
 
void get_geometries_at (const CtxEval &eval_ctx, const double &anim_dt, CoreArray< ModuleSceneObjectGeometry > &handles, GeometryOverride *override) const
 
void get_geometry (const CoreBasicArray< unsigned int > &geometry_id_hierarchy, CoreArray< ModuleSceneObjectGeometry > &handles, GeometryOverride *override) const
 
void get_geometry_at (const CoreBasicArray< unsigned int > &geometry_id_hierarchy, const CtxEval &eval_ctx, const double &anim_dt, CoreArray< ModuleSceneObjectGeometry > &handles, GeometryOverride *override) const
 
virtual ModuleMaterialget_default_material () const
 Get the default material for the geometry.
 
const unsigned int & get_raytrace_quality () const
 Get the quality of the raytracing.
 
double get_smoothing_approximation () const
 Get the value of the smoothing approximation to use during the shading.
 
void pre_evaluate (CtxEval &eval_ctx) const
 
virtual size_t get_memory_size () const
 
void end_evaluation () const
 
void stop_evaluation ()
 Stops the GeometryEvaluator of this Geometry.
 
void on_displacement_storage_mode_change ()
 
- Public Member Functions inherited from ModuleSceneObject
void register_component_implementation ()
 
const CoreArray< CoreString > & get_shading_groups () const
 Return the array of shading group names. C++ only.
 
const CoreArray
< ModuleMaterial * > & 
get_materials () const
 Return the array of materials. C++ only.
 
const CoreArray< ModuleTexture * > & get_clip_maps () const
 Return the array of clip map textures. C++ only.
 
const CoreArray
< ModuleDisplacement * > & 
get_displacements () const
 Return the array of displacements. C++ only.
 
const CoreArray
< ShadingVariablesCtx * > & 
get_sg_shading_variables () const
 Return the array of shading variables per shading group. C++ only.
 
const unsigned int & get_shading_group_count () const
 Return the number of shading groups.
 
virtual const unsigned int & get_object_shading_group_count (const unsigned int &sub_object_index) const
 Return the number of shading groups for the specified sub object //!
 
virtual unsigned int get_object_shading_group_offset (const unsigned int &sub_object_index) const
 Return the shading group offset for the specified sub object //!
 
const unsigned int & get_material_count () const
 Return the number of shading materials.
 
const unsigned int & get_displacement_count () const
 Return the number of displacements.
 
const unsigned int & get_clip_map_count () const
 Return the number of clip maps.
 
const CoreStringget_shading_group (const unsigned int &index) const
 Return the name of the shading group from the specified index.
 
ModuleMaterialget_material (const unsigned int &index) const
 Return the material assigned to the specified shading group index.
 
ModuleTextureget_clip_map (const unsigned int &index) const
 Return the texture used as clip map assigned to the specified shading group index.
 
ModuleDisplacementget_displacement (const unsigned int &index) const
 Return the displacement assigned to the specified shading group index.
 
ShadingVariablesCtxget_sg_shading_variables (const unsigned int &index) const
 Return shading variables assigned to the specified shading group index.
 
void dirty_shading_groups () const
 Flag shading groups as dirty. For internal use only.
 
void dirty_materials () const
 Flag materials as dirty. For internal use only.
 
void dirty_clip_maps () const
 Flag clip maps as dirty. For internal use only.
 
void dirty_displacements () const
 Flag displacements as dirty. For internal use only.
 
void dirty_sg_shading_variables () const
 Flag shading group shading variables as dirty. For internal use only.
 
ModuleMaterialget_override_material () const
 Return the override material.
 
void set_override_material (ModuleMaterial *material)
 Set the override material.
 
const CoreArray< ModuleLight * > & get_lights () const
 Return the explicit array of light assigned to the scene object. C++ only.
 
ModuleGroupget_light_group () const
 Return the light group explicitly attached to the scene object.
 
const unsigned int & get_light_count () const
 Return the number of explicit lights assigned to the scene object.
 
ModuleLightget_light (const unsigned int &index) const
 Return the explicit light assigned to the scene object at the specified index.
 
bool has_lights () const
 Return true if the scene object has lights.
 
bool cast_shadows () const
 Return true if the scene object casts shadows.
 
bool receive_shadows () const
 Return true if the scene object receive shadows.
 
bool receive_self_shadows () const
 Return true if the scene object receive self shadows.
 
bool unseen_by_renderer () const
 Return true if the scene object is invisible to the renderer.
 
bool unseen_by_camera () const
 Return true if the scene object is invisible to the camera.
 
bool unseen_by_rays () const
 Return true if the scene object is unseen by rays.
 
bool unseen_by_reflections () const
 Return true if the scene object is unseen by reflections.
 
bool unseen_by_refractions () const
 Return true if the scene object is unseen by refractions.
 
bool unseen_by_gi () const
 Return true if the scene object is unseen by global illumination.
 
bool unseen_by_sss () const
 Return true if the scene object is unseen by sub-surface scattering.
 
bool unseen_by_query () const
 Return true if the scene object is unseen by queries.
 
void set_unseen_by_query (const bool &value)
 set if the scene object is unseen by queries.
 
bool seen_by_query () const
 Return true if the scene object is seen by queries eventhough not visible.
 
void set_seen_by_query (const bool &value)
 set if the scene object is seen by queries eventhough not visible.
 
bool is_emitter () const
 Return true if the scene object emits global illumination.
 
bool is_matte_object () const
 Return true if the scene object is matte.
 
const GMathVec3d & get_matte_color () const
 Return the matte color.
 
const double & get_matte_alpha () const
 Return the matte alpha.
 
const unsigned int & get_display_mode () const
 Return the display mode.
 
const unsigned int & get_highlight_mode () const
 Return the highlight mode.
 
const double & get_raytrace_geometric_offset () const
 Return the raytrace geometric offset in meter.
 
bool is_visible_by_ray_type (const unsigned int &ray_type) const
 
const unsigned int & get_active_material_count () const
 
const ModuleMaterial::Flags & get_all_material_flags () const
 
const ModuleMaterial::Flags & get_common_material_flags () const
 
virtual const unsigned int & get_object_active_material_count (const unsigned int sub_object_index=0) const
 
virtual const
ModuleMaterial::Flags & 
get_object_all_material_flags (const unsigned int sub_object_index=0) const
 
virtual const
ModuleMaterial::Flags & 
get_object_common_material_flags (const unsigned int sub_object_index=0) const
 
virtual GeometryOverrideget_geometry_override (const GeometryOverrideConfig &config) const
 
virtual void get_geometry_attributes_override (const GeometryOverrideConfig &config, GeometryAttributesOverride &attributes) const
 
virtual const ResourceDataget_resource_override (const int &resource_id, GeometryResourceOverride &override_data, void *data=0) const
 
void ray_hit (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryRaytraceCtx &raytrace_ctx) const
 
void ray_hit_nearest (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryRaytraceCtx &raytrace_ctx) const
 
void frustum_hit (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryFrustumCtx &frustum_ctx) const
 
void ray_frustum_hit (const CtxEval &eval_ctx, CtxShader &shader_ctx, GeometryRayFrustumCtx &ray_frustum_ctx) const
 
virtual unsigned int get_object_count () const
 Return the total number of sub objects.
 
virtual double get_point_count () const
 Return the total number of points.
 
unsigned int sample_geometries_one_point (const CoreBasicArray< ModuleSceneObjectGeometry > &geometries, CoreArray< CoreArray< GeometryPrimitiveSampleDescriptor > > &geometry_samples, const long &seed, const double jittering=0.0) const
 
unsigned int sample_geometries_count (const CoreBasicArray< ModuleSceneObjectGeometry > &geometries, CoreArray< GeometryPrimitiveSampleDescriptor > *geometry_samples, const CtxEval &eval_ctx, const SamplingAlgorithm &algorithm, const SamplingSpace &space, const unsigned int &max_sample_count, const long &seed=0, AppProgressBar *progress_bar=0) const
 
unsigned int sample_geometries_density (const CoreBasicArray< ModuleSceneObjectGeometry > &geometries, CoreArray< GeometryPrimitiveSampleDescriptor > *geometry_samples, const CtxEval &eval_ctx, const SamplingAlgorithm &algorithm, const SamplingSpace &space, const double &max_density, const long &seed=0, AppProgressBar *progress_bar=0) const
 
bool has_shading_variables () const
 
void set_shading_variables (const CoreString &text)
 
void remove_all_shading_variables ()
 
CoreVariant get_shading_variable (const CoreString &variable_name) const
 
ShadingVariablesCtxget_shading_variables () const
 
Structure * get_structure () const
 
bool is_overriding_children_visibility () const
 
void add_geometry_override (GeometryOverride *override) const
 
void set_custom_id (const unsigned int &value)
 Set the Custom ID.
 
unsigned int get_custom_id () const
 Get the Custom ID.
 
- Public Member Functions inherited from ModuleSceneItem
void register_component_implementation ()
 
bool is_translatable () const
 return true if the item can be translated
 
bool is_rotatable () const
 return true if the item can be rotated
 
bool is_scalable () const
 return true if the item can be scaled
 
bool is_pivot_translatable () const
 return true if the pivot of the item can be translated
 
bool is_pivot_rotatable () const
 return true if the pivot of the item can be rotated
 
bool is_pivot_scalable () const
 return true if the pivot of the item can be scaled
 
ModuleSceneItemget_parent () const
 Returns the apparent scene item kinematic parent object if any, with respect to attr muted value or parent disabled state.
 
void set_parent (ModuleSceneItem *item, const ParentInPlaceMode &mode=PARENT_IN_PLACE_FORCED_OFF)
 Set the kinematic parent for this item.
 
ModuleSceneItemget_serialized_parent () const
 Returns the actual scene item kinematic parent object if any, without considering attr muted value or parent disabled state.
 
void set_rotation_order (const GMathRotationOrder &order)
 
void set_rotation_offset_order (const GMathRotationOrder &order)
 
GMathRotationOrder get_rotation_order () const
 
GMathRotationOrder get_rotation_offset_order () const
 
void set_transform (const GMathTransform &xform)
 
void set_translation (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the item translation in the given space.
 
void set_rotation (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the item rotation in the given space.
 
void set_scaling (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the item scaling in the given space.
 
void set_shearing (const GMathVec3d &sh, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the item scaling in the given space.
 
void change_translation (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 
void change_rotation (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 
void change_scaling (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 
void change_shearing (const GMathVec3d &sh, const Space &space=SPACE_LOCAL, void *requester=0)
 
void set_translation_offset (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the item translation offset in the given space.
 
void set_rotation_offset (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the item rotation offset in the given space.
 
void set_scaling_offset (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the item scaling offset in the given space.
 
void change_translation_offset (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 
void change_rotation_offset (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 
void change_scaling_offset (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 
void set_rotation_pivot (const GMathVec3d &r, const Space &space=SPACE_LOCAL)
 Set the position of the rotation pivot in the given space.
 
void set_scaling_pivot (const GMathVec3d &s, const Space &space=SPACE_LOCAL)
 Set the position of the scaling pivot in the given space.
 
void change_rotation_pivot (const GMathVec3d &r, const Space &space=SPACE_LOCAL)
 
void change_scaling_pivot (const GMathVec3d &s, const Space &space=SPACE_LOCAL)
 
void reset_rotation_pivot ()
 Reset the rotation pivot to its initial position.
 
void reset_scaling_pivot ()
 Reset the scaling pivot to its initial position.
 
void inplace_set_translation (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the kinematic translation without moving the object (offset the translation)
 
void inplace_set_rotation (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the kinematic rotation without moving the object (offset the rotatation)
 
void inplace_set_scaling (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the kinematic scaling without moving the object (offset the scale)
 
void inplace_change_translation (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 
void inplace_change_rotation (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 
void inplace_change_scaling (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 
void inplace_set_translation_offset (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the translation offset without moving the object.
 
void inplace_set_rotation_offset (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the rotation offset without moving the object.
 
void inplace_set_scaling_offset (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 Set the scaling offset without moving the object.
 
void inplace_change_translation_offset (const GMathVec3d &t, const Space &space=SPACE_LOCAL, void *requester=0)
 
void inplace_change_rotation_offset (const GMathVec3d &r, const Space &space=SPACE_LOCAL, void *requester=0)
 
void inplace_change_scaling_offset (const GMathVec3d &s, const Space &space=SPACE_LOCAL, void *requester=0)
 
void set_matrix (const GMathMatrix4x4d &matrix, const Space &space)
 Extract translation, rotation, scale and shear values from the given matrix.
 
GMathTransform get_transform (const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 
GMathTransform get_transform_at (const double &time) const
 
GMathTransform compute_transform_at (const double &time) const
 
void get_translation (GMathVec3d &t, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item translation in the given space.
 
void get_rotation (GMathVec3d &r, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item rotation in the given space.
 
void get_scaling (GMathVec3d &s, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item scale in the given space.
 
void get_shearing (GMathVec3d &sh, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item shear in the given space.
 
void get_translation_offset (GMathVec3d &t, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item translation in the given space.
 
void get_rotation_offset (GMathVec3d &r, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item rotation in the given space.
 
void get_scaling_offset (GMathVec3d &s, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item scaling in the given space.
 
void get_rotation_pivot (GMathVec3d &r, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the position of the rotation pivot in the given space.
 
void get_scaling_pivot (GMathVec3d &s, const Space &space=SPACE_LOCAL, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the position of the scaling pivot in the given space.
 
void get_rotation_pivot_matrix (GMathMatrix4x4d &r, const Space &space, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item rotation pivot matrix in the given space.
 
void get_scaling_pivot_matrix (GMathMatrix4x4d &r, const Space &space, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 Returns the item scaling pivot matrix in the given space.
 
const GMathMatrix4x4d & get_kinematic_matrix (const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 
const GMathMatrix4x4d & get_object_matrix (const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 
const GMathMatrix4x4d & get_global_matrix (const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 
const GMathMatrix4x4d & get_inv_global_matrix (const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 
const GMathMatrix4x4d get_reference_global_matrix () const
 
void get_global_position (GMathVec3d &position, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 
void get_global_orientation (GMathMatrix4x4d &orientation, const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_CURRENT) const
 
void get_translation_at (GMathVec3d &t, const double &time, const Space &space=SPACE_LOCAL) const
 Returns the item translation at the given time in the given space.
 
void get_rotation_at (GMathVec3d &r, const double &time, const Space &space=SPACE_LOCAL) const
 Returns the item rotation at the given time in the given space.
 
void get_scaling_at (GMathVec3d &s, const double &time, const Space &space=SPACE_LOCAL) const
 Returns the item scale at the given time in the given space.
 
void get_shearing_at (GMathVec3d &sh, const double &time, const Space &space=SPACE_LOCAL) const
 Returns the item shear at the given time in the given space.
 
void get_translation_offset_at (GMathVec3d &t, const double &time, const Space &space=SPACE_LOCAL) const
 Returns the item translation in the given space.
 
void get_rotation_offset_at (GMathVec3d &r, const double &time, const Space &space=SPACE_LOCAL) const
 Returns the item rotation in the given space.
 
void get_scaling_offset_at (GMathVec3d &s, const double &time, const Space &space=SPACE_LOCAL) const
 Returns the item scaling in the given space.
 
void get_model_matrix_at (GMathMatrix4x4d &matrix, const double &time) const
 
GMathMatrix4x4d get_kinematic_matrix_at (const double &time) const
 Returns the item kinematic matrix at the given time.
 
GMathMatrix4x4d get_object_matrix_at (const double &time) const
 Returns the item object matrix at the given time.
 
GMathMatrix4x4d get_global_matrix_at (const double &time) const
 Returns the item global matrix at the given time.
 
CoreBasicArray< GMathMatrix4x4d > get_global_matrix_motion_blur_samples (const CtxEval &eval_ctx) const
 Return samples of the global matrix used for the motion blur.
 
GMathMatrix4x4d get_global_matrix_motion_blur_at (const CtxEval &eval_ctx, const double &delta_time) const
 Returns the global matrix for the motion blur at the given time.
 
void get_global_position_at (GMathVec3d &position, const double &time) const
 
void get_global_orientation (GMathMatrix4x4d &orientation, const double &time) const
 
const GMathVec3d & get_display_color () const
 
bool is_display_visible () const
 
bool is_display_pickable () const
 
bool is_constrained () const
 
short get_xform_constraint_modifier () const
 
bool is_animated () const
 
bool is_motion_blur_enabled () const
 
bool is_motion_blur_required () const
 
bool is_motion_blurred () const
 
bool is_locally_motion_blurred () const
 
bool is_animation_motion_blurred () const
 
bool has_kinematic_expression () const
 
bool has_local_animation () const
 
void enable_motion_blur (const bool &flag)
 
void require_motion_blur (const int &increment)
 
void require_motion_blur (const bool &flag)
 
void set_matrices_as_dirty (const OfAttr::ValuePage &page=OfAttr::VALUE_PAGE_PREVIOUS)
 
const unsigned int & get_object_count () const
 
const unsigned int & get_object_id () const
 
bool is_visibility_driven () const
 
CoreString get_kinematic_full_name () const
 return the fullname of the item in the transformation hierarchy (world://item)
 
void set_kinematic_full_name_dirty ()
 
bool is_kinematic_full_name_dirty () const
 
bool is_inherit_transform () const
 
unsigned int get_reference_frame () const
 
double get_reference_time () const
 
void update_animation_motion_blur (const bool has_animation_motion_blur)
 update_animation_motion_blur Set the flag ANIMATED_MODEL_MATRIX according to has_animation_motion_blur. If the item has change is animation state then it will propagate motion blur dirtiness
 
- Public Member Functions inherited from ModuleGlObject
virtual bool pre_paint_gl (GlUtilsCtx &ctx) const
 
virtual bool paint_gl (GlUtilsCtx &ctx) const
 
virtual bool destroy_gl_data (GlUtilsGlCtx &gl_ctx) const
 

Static Public Member Functions

static unsigned int get_property_id (const CoreString &name)
 
static void lock_properties (const bool &lock)
 
static void get_global_property_names (CoreVector< CoreString > &names)
 Get the registered property names.
 
static void register_properties (const CoreBasicArray< CoreString > &names)
 Globally registers the given names as available properties.
 
- Static Public Member Functions inherited from ModuleSceneObject
static void merge_geometries (const CoreVector< ModuleSceneObject * > &objects, CoreArray< GMathVec3d > &vertices, CoreArray< unsigned int > &polygon_indices, CoreArray< unsigned int > &polygon_vertex_count, CoreArray< unsigned int > &polygon_shading_groups, CoreArray< CoreString > &shading_group_names, CoreArray< GeometryUvMap > &uv_maps, CoreArray< GeometryNormalMap > &normal_maps, CoreArray< GeometryColorMap > &color_maps, AppProgressBar *progress_bar=0)
 
- Static Public Member Functions inherited from ModuleSceneItem
static const unsigned int & get_object_count (OfApp &application)
 
static ModuleSceneItemget_scene_item (OfApp &application, const unsigned int &id)
 return the scene item from the specified id
 
static void get_all_scene_items (OfApp &application, CoreVector< ModuleSceneItem * > &items)
 return the most up-to-date array of scene items
 
static VisibilityMode get_visibility_mode (const OfObject &object)
 

Static Public Attributes

static const ResourceID RESOURCE_ID_GEOMETRY = ModuleObject::declare_resource("geometry")
 The geometry reference.
 
static const ResourceID RESOURCE_ID_GEOMETRY_ANIMATED = ModuleObject::declare_resource("geometry_animated")
 The animated version of the geometry.
 
static const ResourceID RESOURCE_ID_GEOMETRY_DEFORMED = ModuleObject::declare_resource("geometry_deformed")
 The same geometry but deformed by a deformer.
 
static const ResourceID RESOURCE_ID_GEOMETRY_PROPERTIES = ModuleObject::declare_resource("geometry_properties")
 List of properties that are bound to the reference geometry.
 
static const ResourceID RESOURCE_ID_TESSELLATION = ModuleObject::declare_resource("tessellation")
 Tessellated version of the reference geometry.
 
static const ResourceID RESOURCE_ID_TESSELLATION_DEFORMED = ModuleObject::declare_resource("tessellation_deformed")
 Tessellated version of the animated/deformed geometry.
 
static const ResourceID RESOURCE_ID_TESSELLATION_PROPERTIES = ModuleObject::declare_resource("tessellation_properties")
 List of properties that are bound to the tessellated geometry.
 
static const ResourceID RESOURCE_ID_SURFACE = ModuleObject::declare_resource("surface")
 Subdivision surface representation of the reference geometry.
 
static const ResourceID RESOURCE_ID_SURFACE_DEFORMED = ModuleObject::declare_resource("surface_deformed")
 Subdivision surface representation of the animated/deformed geometry.
 
static const ResourceID RESOURCE_ID_SURFACE_PROPERTIES = ModuleObject::declare_resource("surface_properties")
 List of properties that are bound to the subdivision surface geometry.
 
static const ResourceID RESOURCE_ID_DISPLACEMENT_TOPOLOGY = ModuleObject::declare_resource("displacement_topology")
 Topology of the displaced version of the animated/deformed geometry.
 
static const ResourceID RESOURCE_ID_DISPLACEMENT_GEOMETRY_FRONT = ModuleObject::declare_resource("displacement_geometry_front")
 Front of the displaced version of the animated/deformed geometry.
 
static const ResourceID RESOURCE_ID_DISPLACEMENT_GEOMETRY_BACK = ModuleObject::declare_resource("displacement_geometry_back")
 Back of the displaced version of the animated/deformed geometry.
 
static const ResourceID RESOURCE_ID_GAS = ModuleObject::declare_resource("gas")
 Geometric accelleration structure used by the raytracer.
 
static const ResourceID RESOURCE_ID_GEOMETRY_SMOOTHED = ModuleObject::declare_resource("geometry_smoothed")
 
static const ResourceID RESOURCE_ID_GEOMETRY_SMOOTHED_DEFORMED = ModuleObject::declare_resource("geometry_smoothed_deformed")
 

Protected Member Functions

void register_component_implementations ()
 
virtual void module_constructor (OfObject &object)
 
virtual void on_attribute_change (const OfAttr &attr, int &dirtiness, const int &dirtiness_flags)
 
virtual ResourceDatacreate_resource (const int &id, void *data) const
 
virtual void on_resource_update (const int &id, ResourceData *resource)
 
virtual void module_destructor ()
 
virtual void build_shading_groups (CoreArray< CoreString > &shading_groups) const
 
virtual void build_materials (CoreArray< ModuleMaterial * > &materials) const
 
virtual void build_clip_maps (CoreArray< ModuleTexture * > &clip_maps) const
 
virtual void build_displacements (CoreArray< ModuleDisplacement * > &displacements) const
 
virtual void build_sg_shading_variables (CoreArray< ShadingVariablesCtx * > &sg_shading_variables) const
 
- Protected Member Functions inherited from ModuleSceneObject
void set_override_children_visibility (const bool &override_children)
 
virtual ResourceDatacreate_resource_override (const int &id, GeometryResourceOverride &override_data, void *data) const
 
virtual void build_shading_groups () const
 
virtual void build_materials () const
 
virtual void build_clip_maps () const
 
virtual void build_displacements () const
 
virtual void build_sg_shading_variables () const
 
void update_material_flags () const
 
void update_geometry_overrides (OfObject &object, const CoreString &event_id, void *data)
 
- Protected Member Functions inherited from ModuleSceneItem
void in_place_set_parent (const ModuleSceneItem *new_parent_module, const bool &in_place)
 

Static Protected Member Functions

static void on_object_removed (OfObjectFactory &factory, const CoreString &event_id, void *data)
 

Additional Inherited Members

- Public Types inherited from ModuleSceneObject
enum  DisplayMode {
  DISPLAY_WIREFRAME = 0,
  DISPLAY_CONSTANT = 1,
  DISPLAY_NORMALS = 2,
  DISPLAY_SIMPLE_SHADING = 3,
  DISPLAY_PREVIZ = 4
}
 
enum  HighlightMode {
  HIGHLIGHT_NONE = 0,
  HIGHLIGHT_BBOX = 1,
  HIGHLIGHT_WIREFRAME = 2,
  HIGHLIGHT_BOTH = HIGHLIGHT_BBOX|HIGHLIGHT_WIREFRAME
}
 
enum  SamplingAlgorithm {
  SAMPLING_RANDOM,
  SAMPLING_BLUE_NOISE,
  SAMPLING_PRIMITIVE_CENTER
}
 
enum  SamplingSpace {
  SAMPLING_LOCAL_BASE = 0,
  SAMPLING_LOCAL_DEFORMED = 1,
  SAMPLING_GLOBAL_BASE = 2,
  SAMPLING_GLOBAL_DEFORMED = 3
}
 
- Protected Attributes inherited from ModuleSceneObject
CoreArray< CoreStringm_shading_groups
 
CoreArray< ModuleMaterial * > m_materials
 
CoreArray< ModuleTexture * > m_clip_maps
 
CoreArray< ModuleDisplacement * > m_displacements
 
CoreArray< ShadingVariablesCtx * > m_sg_shading_variables
 
CoreArray< ModuleLight * > m_lights
 
bool m_shading_groups_dirty
 
bool m_materials_dirty
 
bool m_clip_maps_dirty
 
bool m_displacements_dirty
 
bool m_sg_shading_variables_dirty
 
bool m_lights_dirty
 
SysThreadLockRecursivem_lock
 

Detailed Description

Class defining a geometry in Clarisse. A geometry can expose several resources which correspond to the different way of representing it. Most of the resources are of type GeometryObject but some of them are just here to hold data that is shared by several other resources. All the representations are not always available in memory and they are created on demand. For instance, if subdivision surfaces are not activated, the corresponding resources points directly to the base reprensentations of the geometry.

Member Function Documentation

GMathBbox3d ModuleGeometry::get_bbox ( const bool &  deformed = true,
GeometryOverride override_data = 0 
) const
virtual

Get the bounding box of the geometry.

Parameters
[in]deformedwhen true, the function uses the deformed version of the geometry
[in]override_datageometry override applied to the geometry (time offset, displacement...)
Returns
the bounding box
Note
This function relies on geometry resources and can potentially create one or several of them if they are not available. Therefore, it is recommanded to call it from a thread.

Reimplemented from ModuleSceneObject.

GMathBbox3d ModuleGeometry::get_bbox_at ( const CtxEval eval_ctx,
const double &  time,
const bool &  deformed = true,
GeometryOverride override_data = 0 
) const
virtual

Get the bounding box of the geometry at a given time.

Parameters
[in]eval_ctxa valid evaluation context
[in]timethe absolute time at which the bounding box must be computed
[in]deformedwhen true, the function uses the deformed version of the geometry
[in]override_datageometry override applied to the geometry (time offset, displacement...)
Returns
the bounding box
Note
This function relies on geometry resources and can potentially create one or several of them if they are not available. Therefore, it is recommanded to call it from a thread. Moreover, even if the requested time is absolute, it should stay close to the current frame because geometry resources are created for the current frame.

Reimplemented from ModuleSceneObject.

const GeometryObject * ModuleGeometry::get_displaced_geometry ( const bool &  front = true) const

Get the displaced version of the geometry.

Parameters
[in]frontreturn the front part of the displacement when true, else the back part
Returns
the corresponding resource
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
const CoreBasicArray<unsigned int>& ModuleGeometry::get_displaced_shading_groups ( const bool &  front = true) const
inline

Get the list of displaced shading groups.

Parameters
[in]frontif true, give the status of the front displacement, else of the back one
Returns
a list containing the IDs of the shading groups that are displaced for the corresponding side.
GasObject * ModuleGeometry::get_gas ( GeometryOverride override_data = 0) const

Get the geometry acceleration structure. This structure is used by the raytracer to detect which primitives are hit.

const GeometryObject* ModuleGeometry::get_geometry ( const bool &  deformed = true) const
inline

Get the base version of the geometry.

Parameters
[in]deformedreturn the animated/deformed version when true
Returns
the corresponding resource
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
void ModuleGeometry::get_geometry ( const CoreBasicArray< unsigned int > &  geometry_id_hierarchy,
CoreArray< ModuleSceneObjectGeometry > &  geometries,
GeometryOverride override 
) const
virtual

The get_geometry(_at) function will set an array of ModuleSceneObjectGeometry containing the geometry(ies if there is bundle). The geometry will be found thanks to the geometry_id_hierarchy. This attributes contains all the indices of the object in regards of their parents.

Example : We want to find E ``` scatterer[ A B combiner[ C bundle[D E] ] ] [ 0 1 2 [ 0 1] ] geometry_id_hierarchy = [2, 1] ``` The function will return 2 ModuleSceneObjectGeometry [D E], to get E you will need to use the geometry_local_index that is stored in the intersection

Reimplemented from ModuleSceneObject.

const GeometryProperty * ModuleGeometry::get_geometry_property ( const unsigned int &  property_id,
GeometryOverride override_data = 0 
) const

Get a property by its ID.

Parameters
[in]property_idthe unique ID corresponding to the property
[in]override_datageometry override applied to the geometry (time offset, displacement...)
Returns
the associated property object
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
GMathVec3d ModuleGeometry::get_max_displacement_bound ( ) const
inline

Get the maximum bound of displacement nodes associated to the geometry.

Returns
a 3D vector containing the size of the extension to apply to the bounding box of the geometry for each axis.
const GeometryPropertyCollection * ModuleGeometry::get_properties ( ) const

Return the property array if any exists.

Returns
the property array if any exists.
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
const GeometryProperty * ModuleGeometry::get_property ( const CoreString name,
GeometryOverride override_data = 0 
) const

Get a property by its name.

Parameters
[in]namethe name of the property
[in]override_datageometry override applied to the geometry (time offset, displacement...)
Returns
the associated property object
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
unsigned int ModuleGeometry::get_property_id ( const CoreString name)
static

Get the ID of a property by its name.

Parameters
[in]nameof the property
Returns
a unique ID for this property name
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
GMathBbox3d ModuleGeometry::get_shading_group_bbox ( const unsigned int &  id,
const bool &  deformed = true,
GeometryOverride override_data = 0 
) const

Get the bounding box for a shading group of the geometry.

Parameters
[in]idthe index of the shading group
[in]deformedwhen true, the function uses the deformed version of the geometry
Returns
the bounding box
Note
This function relies on geometry resources and can potentially create one or several of them if they are not available. Therefore, it is recommanded to call it from a thread.
const GeometryObject * ModuleGeometry::get_surface ( const bool &  deformed = true) const

Get the surface of subdivision of the geometry.

Parameters
[in]deformedreturn the animated/deformed version when true
Returns
the corresponding resource
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
const GeometryObject * ModuleGeometry::get_tessellation ( const bool &  deformed = true) const

Get the tessellated version of the geometry.

Parameters
[in]deformedreturn the animated/deformed version when true
Returns
the corresponding resource
Note
This function can potentially create one or more resources so it is recommanded to call it from a thread.
GMathVec4f ModuleGeometry::get_uv_range ( const unsigned int &  uv_map_index) const

Get the UV range from the geometry's uv map at an index.

If no UVs or UV map not found, returns (0, 0, 0, 0).

Parameters
[in]uv_map_indexthe index of the object's uv map
Returns
UV range as a GMathVec4f where values are in this order: U min, V min, U max, V max
GMathVec4f ModuleGeometry::get_uv_range ( const CoreString uv_map_name) const

Get the UV range from the geometry's uv map with the matching name.

If no UVs or UV map index not found, returns (0, 0, 0, 0).

Parameters
[in]uv_map_namethe name of the object's uv map
Returns
UV range as a GMathVec4f where values are in this order: U min, V min, U max, V max
void ModuleGeometry::get_uv_tiles ( const GeometryUvMap uv_map,
CoreArray< GeometryUvTile > &  tiles 
) const

Get the non empty UV tiles from a uv map.

Parameters
[in]uv_mapthe uv map containing the tiles
[out]tilesthe result array of UV tiles
void ModuleGeometry::get_uv_tiles ( const int &  index,
CoreArray< GeometryUvTile > &  tiles 
) const

Get the non empty UV tiles from the geometry's uv map at an index.

Parameters
[in]indexthe index of the object's uv map containing the tiles
[out]tilesthe result array of UV tiles
void ModuleGeometry::get_uv_tiles ( const CoreString uv_map_name,
CoreArray< GeometryUvTile > &  tiles 
) const

Get the non empty UV tiles from the geometry's uv map with the matching name.

Parameters
[in]uv_map_namethe name of the object's uv map containing the tiles
[out]tilesthe result array of UV tiles, the array is empty if no map matches the name
bool ModuleGeometry::is_displaced ( const bool &  front = true) const
inline

Tell if the geometry is displaced.

Parameters
[in]frontif true, give the status of the front displacement, else of the back one
Returns
true if the side is displaced, else false
void ModuleGeometry::lock_properties ( const bool &  lock)
static

Locks the property map.

Parameters
[in]actionto perform: lock or unlock.