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

Public Types

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
}
 
- Public Types inherited from ModuleSceneItem
enum  Space {
  SPACE_LOCAL,
  SPACE_GLOBAL
}
 
enum  VisibilityMode {
  VISIBILITY_MODE_OVERRIDE = 0,
  VISIBILITY_MODE_USE_PROPERTY,
  VISIBILITY_MODE_USE_PREFERENCES,
  VISIBILITY_MODE_COUNT
}
 VisibilityMode describes how driven visibility attributes are set. More...
 
enum  ParentInPlaceMode {
  PARENT_IN_PLACE_PREFERENCE,
  PARENT_IN_PLACE_FORCED_ON,
  PARENT_IN_PLACE_FORCED_OFF
}
 The ParentInPlaceMode enum.
 

Public Member Functions

void register_component_implementation ()
 
virtual GMathBbox3d get_bbox (const bool &deformed=true, GeometryOverride *override_data=0) const
 Return the bbox in local space.
 
virtual GMathBbox3d get_bbox_at (const CtxEval &eval_ctx, const double &time, const bool &deformed=true, GeometryOverride *override_data=0) const
 Evaluate and return the bbox in local space at the specified time.
 
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 bool is_geometry () const
 Return true if the scene object is a geometry.
 
virtual unsigned int get_object_count () const
 Return the total number of sub objects.
 
virtual double get_geometry_count () const
 Return the total number of geometries.
 
virtual double get_primitive_count () const
 Return the total number of primitives.
 
virtual double get_point_count () const
 Return the total number of points.
 
virtual void get_geometries (CoreArray< ModuleSceneObjectGeometry > &geometries, GeometryOverride *override=0) const
 
virtual void get_geometries_at (const CtxEval &eval_ctx, const double &anim_dt, CoreArray< ModuleSceneObjectGeometry > &geometries, GeometryOverride *override=0) const
 
virtual void get_geometry (const CoreBasicArray< unsigned int > &geometry_id_hierarchy, CoreArray< ModuleSceneObjectGeometry > &geometries, GeometryOverride *override=0) const
 
virtual void get_geometry_at (const CoreBasicArray< unsigned int > &geometry_id_hierarchy, const CtxEval &eval_ctx, const double &anim_dt, CoreArray< ModuleSceneObjectGeometry > &geometries, GeometryOverride *override=0) const
 
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
 
virtual size_t get_memory_size () 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 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)
 

Protected Member Functions

void set_override_children_visibility (const bool &override_children)
 
virtual void module_constructor (OfObject &object)
 
virtual void module_destructor ()
 
virtual void on_attribute_change (const OfAttr &attr, int &dirtiness, const int &dirtiness_flags)
 
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
 
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)
 

Protected Attributes

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
 

Additional Inherited Members

- Static Protected Member Functions inherited from ModuleSceneItem
static bool is_in_place_parenting (OfApp &app, const ModuleSceneItem::ParentInPlaceMode &parent_in_place_mode)
 Compensate the transform of the parent to make sure the object doesn't move in the world.
 

Member Enumeration Documentation

DisplayMode corresponds to the display mode of a scene object in the gl view

See Also
scene_object.cid
Enumerator:
DISPLAY_PREVIZ 

Previz mode. This must be the last one. Anything greater than its value will fallback to previz anyway.

Member Function Documentation

ModuleTexture* ModuleSceneObject::get_clip_map ( const unsigned int &  index) const
inline

Return the texture used as clip map assigned to the specified shading group index.

Parameters
[in]indexshading group index
ModuleDisplacement* ModuleSceneObject::get_displacement ( const unsigned int &  index) const
inline

Return the displacement assigned to the specified shading group index.

Parameters
[in]indexshading group index
virtual void ModuleSceneObject::get_geometry ( const CoreBasicArray< unsigned int > &  geometry_id_hierarchy,
CoreArray< ModuleSceneObjectGeometry > &  geometries,
GeometryOverride override = 0 
) const
inlinevirtual

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 in ModuleGeometry, ModuleSceneObjectTree, and ModuleGeometryBundle.

ModuleGroup* ModuleSceneObject::get_light_group ( ) const
inline

Return the light group explicitly attached to the scene object.

Returns
Null if no light group is assigned.
ModuleMaterial* ModuleSceneObject::get_material ( const unsigned int &  index) const
inline

Return the material assigned to the specified shading group index.

Parameters
[in]indexshading group index
virtual const unsigned int& ModuleSceneObject::get_object_shading_group_count ( const unsigned int &  sub_object_index) const
inlinevirtual

Return the number of shading groups for the specified sub object //!

Parameters
[in]sub_object_indexindex of the sub object

Reimplemented in ModuleSceneObjectTree.

virtual unsigned int ModuleSceneObject::get_object_shading_group_offset ( const unsigned int &  sub_object_index) const
inlinevirtual

Return the shading group offset for the specified sub object //!

Parameters
[in]sub_object_indexindex of the sub object

Reimplemented in ModuleSceneObjectTree.

ModuleMaterial* ModuleSceneObject::get_override_material ( ) const
inline

Return the override material.

Returns
Null if no override material is specified
ShadingVariablesCtx* ModuleSceneObject::get_sg_shading_variables ( const unsigned int &  index) const
inline

Return shading variables assigned to the specified shading group index.

Parameters
[in]indexshading group index
const CoreString& ModuleSceneObject::get_shading_group ( const unsigned int &  index) const
inline

Return the name of the shading group from the specified index.

Parameters
[in]indexshading group index
void ModuleSceneObject::set_override_material ( ModuleMaterial material)
inline

Set the override material.

Parameters
[in]materialOverride material. If Null then no override material is assigned