Clarisse 5.0 SP8 SDK  5.0.5.8.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | List of all members
TubeMeshFast3d Class Reference
Inheritance diagram for TubeMeshFast3d:
TubeMeshFast TubeMesh GeometryObject ResourceData EventObject CoreCustomData CoreBaseObject CoreBaseType

Public Member Functions

 TubeMeshFast3d (const TubeMeshFast3d &src)
 
 TubeMeshFast3d (const TubeMeshFast3d &src, const CurveMesh &curve_mesh)
 
virtual GeometryObjectget_copy () const override
 Get a copy of the current geometry.
 
virtual TubeMeshget_copy (const CurveMesh &curve_mesh) const override
 
double get_primitive_intersection_cost () const override
 Return an estimation of the intersection cost of primitives.
 
virtual void intersect_primitive (const CtxEval &eval_ctx, const unsigned int &id, GeometryRaytraceCtx &raytrace_ctx) const override
 Compute the list of intersections between rays and a primitive.
 
virtual void compute_fragment_sample (const CtxEval &eval_ctx, const GeometryFragment &fragment, GeometrySample &sample) const override
 Compute a sample (position, derivatives, normals) on the geometry for a given fragment.
 
- Public Member Functions inherited from TubeMeshFast
 TubeMeshFast (const TubeMeshFast &src)
 
 TubeMeshFast (const TubeMeshFast &src, const CurveMesh &curve_mesh)
 
virtual size_t get_memory_size () const override
 Get the amount of memory occupied by the resource.
 
virtual unsigned int get_primitive_count () const override
 Get the number of primitives in the geometry.
 
virtual unsigned int get_primitive_shading_group_index (const unsigned int &primitive_id) const override
 Get the ID of the shading group to which belongs a primitive.
 
virtual unsigned int get_uv_map_count () const override
 Get the number of UV maps defined in the geometry.
 
virtual const CoreStringget_uv_map_name (const unsigned int &map_index) const override
 Get the name of a UV map.
 
virtual bool is_primitive_edge_visible (const unsigned int &primitive_index, const unsigned int &edge_index) const override
 Tell if an edge is visible.
 
virtual void compute_primitive_bbox (const CtxEval &eval_ctx, const unsigned int &id, GMathBbox3d &bbox) const override
 Compute the bounding box of a primitive.
 
virtual void compute_primitive_bbox_at (const CtxEval &eval_ctx, const unsigned int &id, const double &time, GMathBbox3d &bbox) const override
 Compute the bounding box of a primitive at a given time.
 
virtual void compute_primitive_space (const CtxEval &eval_ctx, const unsigned int &id, GMathLinearSpace3d &space) const override
 Compute the space of a primitive.
 
virtual void compute_primitive_bbox (const CtxEval &eval_ctx, const unsigned int &id, const GMathLinearSpace3d &xform, GMathBbox3d &bbox) const override
 Compute the bounding box of a primitive.
 
virtual void compute_primitive_bbox_at (const CtxEval &eval_ctx, const unsigned int &id, const GMathLinearSpace3d &xform, const double &time, GMathBbox3d &bbox) const override
 Compute the bounding box of a primitive at a given time.
 
virtual double estimate_primitive_area (const CtxEval &eval_ctx, const unsigned int &id, const GMathMatrix4x4d &xform) const override
 Compute an estimation of the area of a primitive.
 
virtual void intersect_primitive (const CtxEval &eval_ctx, const unsigned int &id, GeometryFrustumCtx &frustum_ctx) const override
 Compute the intersection between a frustum and a primitive.
 
virtual void compute_fragment_color (const CtxEval &eval_ctx, const GeometryFragment &fragment, const unsigned int &color_map_index, GMathVec4f &color) const override
 Compute the value of a color map for the requested fragment.
 
virtual void compute_fragment_uvw (const CtxEval &eval_ctx, const GeometryFragment &fragment, const unsigned int &uv_map_index, GMathVec3d &coord, GMathVec3d &dcdu, GMathVec3d &dcdv) const override
 Compute UVW coordinates and derivatives in a UV map for the requested fragment.
 
virtual void compute_edge_uvw (const CtxEval &eval_ctx, const unsigned int &primitive_index, const unsigned int &edge_index, const unsigned int &uv_map_index, const double &t, GMathVec3d &coord) const override
 Compute UVW coordinates and derivatives in a UV map on an edge.
 
void set (const CurveMesh &curve_mesh, const CoreVector< unsigned int > &curve_indices, const double &thickness)
 
virtual unsigned int get_primitive_curve_id (unsigned int primitive_id) const override
 
virtual unsigned int get_segment_count (unsigned int id) const override
 
virtual unsigned int get_segment_index (unsigned int id) const override
 
- Public Member Functions inherited from TubeMesh
 TubeMesh (const TubeMesh &src)
 
 TubeMesh (const TubeMesh &src, const CurveMesh &curve_mesh)
 
virtual GMathBbox3d get_bbox () const override
 Get bounding box of the geometry.
 
virtual bool is_animated () const override
 Indicate if the geometry has an animation for the current frame.
 
virtual const CoreBasicArray
< CoreString > & 
get_shading_group_names () const override
 Get the list of shading groups defined in the geometry.
 
virtual GMathBbox3d get_shading_group_bbox (const unsigned int &id) const override
 Get the bounding box of a shading group.
 
virtual unsigned int get_primitive_edge_count (const unsigned int &id) const override
 Get the number of edges of a primitive.
 
virtual unsigned int get_color_map_count () const override
 Get the number of color maps defined in the geometry.
 
virtual const CoreStringget_color_map_name (const unsigned int &map_index) const override
 Get the name of a color map.
 
virtual unsigned int get_normal_map_count () const override
 Get the number of normal maps defined in the geometry.
 
virtual const CoreStringget_normal_map_name (const unsigned int &map_index) const override
 Get the name of a normal map.
 
void compute_fragment_normal (const CtxEval &eval_ctx, const GeometryFragment &fragment, const unsigned int &color_map_index, GMathVec3f &normal) const
 
void set_radius_info (const bool &override_radius, const float &base_radius, const float &tip_radius, const float &radius_factor)
 
void get_root_sample (const CtxEval &eval_ctx, const GeometrySampleDescriptor &sd, GeometryPointSample &sample, float &radius) const
 
const CurveMeshget_curves () const
 
bool is_overriding_radius () const
 
float get_tip_radius () const
 
float get_base_radius () const
 
float get_radius_factor () const
 
float get_thickness () const
 
- Public Member Functions inherited from GeometryObject
 GeometryObject (const GeometryObject &other)
 
virtual GMathBbox3d get_bbox_at (const CtxEval &eval_ctx, const double &time) const
 Get the bounding box of the geometry for the given time.
 
virtual void get_primitive_indices (CoreArray< unsigned int > &indices) const
 Get the list of vertex indices that define all primitives.
 
virtual const GeometryPointCloudget_point_cloud () const
 Get the point cloud defined by the geometry.
 
virtual bool set_point_cloud (const GeometryPointCloud &point_cloud, AppProgressBar *progress_bar=0)
 Replace the point cloud.
 
virtual unsigned int get_vertex_count () const
 Get the number of vertices in the geometry.
 
virtual double estimate_area (const CtxEval &eval_ctx, const GMathMatrix4x4d &xform) const
 Compute an estimation of the area of the geometry.
 
virtual double estimate_shading_group_area (const CtxEval &eval_ctx, const unsigned int &id, const GMathMatrix4x4d &xform) const
 Compute an estimation of the area of a shading group.
 
const CoreStringget_primitive_shading_group_name (const unsigned int &id) const
 Get the name of the shading group to which belongs a primitive.
 
bool get_uv_map_index (const CoreString &uv_map_name, unsigned int &uv_map_index) const
 Get the index of a UV map by name.
 
virtual bool get_uv_map_data (const unsigned int &uv_map_index, CoreArray< GMathVec3f > &uvs, CoreArray< unsigned int > &indices) const
 Get the data of a UV map.
 
bool get_uv_map (const unsigned int &uv_map_index, GeometryUvMap &uv_map) const
 Get a UV map.
 
void get_uv_maps (CoreArray< GeometryUvMap > &uv_maps) const
 Get all UV maps.
 
virtual bool get_color_map_data (const unsigned int &color_map_index, CoreArray< GMathVec4uc > &colors, CoreArray< unsigned int > &indices) const
 Get the data of a color map.
 
bool get_color_map (const unsigned int &color_map_index, GeometryColorMap &color_map) const
 Get a color map.
 
void get_color_maps (CoreArray< GeometryColorMap > &color_maps) const
 Get all color maps.
 
virtual bool get_normal_map_data (const unsigned int &normal_map_index, CoreArray< GMathVec3f > &normals, CoreArray< unsigned int > &indices) const
 Get the description of a normal map.
 
bool get_normal_map (const unsigned int &normal_map_index, GeometryNormalMap &normal_map) const
 Get a normal map.
 
void get_normal_maps (CoreArray< GeometryNormalMap > &normal_maps) const
 Get all normal maps.
 
virtual bool is_primitive_uv_mapped (const unsigned int &primitive_id, const unsigned int &uv_map_index) const
 Tell if a primitive has a representation in a UV map.
 
virtual bool is_geometry_linear () const
 Tell if the geometry is linear.
 
virtual bool is_primitive_linear (const unsigned int &primitive_index) const
 Tell if a primitive is linear.
 
virtual bool is_primitive_edge_linear (const unsigned int &primitive_index, const unsigned int &edge_index) const
 Tell if an edge on a primitive is linear.
 
virtual void compute_edge_sample (const CtxEval &eval_ctx, const unsigned int &primitive_id, const unsigned int &edge_index, const double &t, const GMathVec3d &eye_dir, GeometrySample &sample) const
 Compute a sample (position, derivatives, normals) on an edge of the geometry.
 
void get_uv_tiles (const GeometryUvMap &uv_map, CoreArray< GeometryUvTile > &tiles) const
 Get the non empty UV tiles from a uv map.
 
void 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.
 
GMathVec4f get_uv_range (const GeometryUvMap &uv_map) const
 
GMathVec4f get_uv_range (const unsigned int &uv_map_index) const
 
- Public Member Functions inherited from ResourceData
 ResourceData (const ResourceData &other)
 
ResourceImportDataget_import_data () const
 
void set_import_data (ResourceImportData *data)
 
virtual Core128BitHashKey get_hash_key () const
 Get the hash key of the resource.
 
virtual bool is_serializable () const
 Tell if the resource can be serialized or not.
 
virtual void * serialize (size_t &serial_size) const
 Serialize the resource data.
 
virtual bool deserialize (void *serial, const size_t &serial_size)
 Deserialize the resource data.
 
void advert_memory_changed () const
 Adverts that the memory usage of the resource has changed.
 
bool is_protected () const
 
- Public Member Functions inherited from EventObject
 EventObject ()
 Constructor.
 
 EventObject (const EventObject &src)
 Copy Constructor.
 
virtual ~EventObject () override
 Destructor.
 
void connect (EventObject &sender, const CoreString &event_id, EventInfoMethod event_cb, void *data=0)
 Connects this to an object to listen to a specific event.
 
void connect (EventObject &sender, EventInfoMethod event_cb, void *data=0)
 Connects this to an object to listen any of its events.
 
bool disconnect (EventObject &sender, const CoreString &event_id, EventInfoMethod event_cb, void *data=0)
 
bool disconnect_all (EventObject &sender)
 Disconnects from all objects sender was listening on.
 
void disconnect_all ()
 Disconnects from all objects we were listening on.
 
void remove_all_connection ()
 Disconnects object from other objects it is listening to, and also disconnects all objects listening to it.
 
void raise_event (const CoreString &event_id) const
 sends an event
 
void raise_event (const EventInfo &event_info) const
 sends an event
 
bool is_connected (EventObject &sender, const CoreString &event_id, void *data)
 
void set_mute (const bool &mute)
 Asks for object muting. This will increase or decrease the muting counter. Unmuting may not be immediat since it will happen only when counter reaches 0.
 
bool is_mute () const
 Returns if object is muted.
 
CoreArray< EventObject * > get_senders () const
 
unsigned int get_sender_count () const
 
unsigned int get_receiver_count () const
 
void connect (EventObject &sender, const CoreString &event_id, EventMethod event_cb, void *data=0)
 Connects this to an object to listen to a specific event.
 
void connect (EventObject &sender, EventMethod event_cb, void *data=0)
 Connects this to an object to listen any of its events.
 
bool disconnect (EventObject &sender, const CoreString &event_id, EventMethod event_cb, void *data=0)
 Disconnects this from an object for a specific event.
 
- Public Member Functions inherited from CoreCustomData
 CoreCustomData (const CoreCustomData &src)
 
void add_custom_data (void *key, const bool &data)
 
void add_custom_data (void *key, const int &data)
 
void add_custom_data (void *key, const unsigned int &data)
 
void add_custom_data (void *key, const char *data)
 
void add_custom_data (void *key, const CoreString &data)
 
void add_custom_data (void *key, const double &data)
 
void add_custom_data (void *key, void *data)
 
void remove_custom_data (void *key)
 
void remove_all_custom_data ()
 
void set_custom_data (void *key, const bool &data)
 
void set_custom_data (void *key, const int &data)
 
void set_custom_data (void *key, const unsigned int &data)
 
void set_custom_data (void *key, const double &data)
 
void set_custom_data (void *key, const char *data)
 
void set_custom_data (void *key, const CoreString &data)
 
void set_custom_data (void *key, void *data)
 
void get_custom_data (void *key, bool &data) const
 
void get_custom_data (void *key, int &data) const
 
void get_custom_data (void *key, unsigned int &data) const
 
void get_custom_data (void *key, double &data) const
 
void get_custom_data (void *key, CoreString &data) const
 
void get_custom_data (void *key, void *&data) const
 
- Public Member Functions inherited from CoreBaseObject
bool is_kindof (const CoreBaseObject &object) const
 
CoreString get_class_info_name () const
 
const unsigned long & get_class_info_id () const
 
virtual bool is_kindof (const CoreClassInfo &cinfo) const
 
virtual const CoreClassInfoget_class_info () const
 
template<class T >
T * cast ()
 
template<class T >
const T * cast () const
 
- Public Member Functions inherited from CoreBaseType
bool is_kindof (const CoreClassInfo &cinfo) const
 

Additional Inherited Members

- Public Types inherited from EventObject
typedef void(* EventInfoFunction )(EventObject &, const EventInfo &, void *)
 event callback signature for free functions / static methods.
 
typedef void(EventObject::* EventInfoMethod )(EventObject &, const EventInfo &, void *)
 event callback signature for methods.
 
typedef void(* EventFunction )(EventObject &, const CoreString &, void *)
 
typedef void(EventObject::* EventMethod )(EventObject &, const CoreString &, void *)
 
- Static Public Member Functions inherited from EventObject
static void connect (EventObject &sender, const CoreString &event_id, EventObject &receiver, EventInfoMethod event_cb, void *data=0)
 Static version of the above function.
 
static void connect (EventObject &sender, EventObject &receiver, EventInfoMethod event_cb, void *data=0)
 Static version of the above function.
 
static void connect (EventObject &sender, const CoreString &event_id, EventInfoFunction event_cb, void *data=0)
 Connects to an object to listen to a specific event.
 
static void connect (EventObject &sender, EventInfoFunction event_cb, void *data=0)
 Connects to an object to listen any of its events.
 
static bool disconnect (EventObject &sender, const CoreString &event_id, EventInfoFunction event_cb, void *data=0)
 
static void raise_event (EventObject &sender, const CoreString &event_id)
 Sends an event.
 
static void raise_event (EventObject &sender, const EventInfo &event_info)
 Sends an event.
 
static void connect (EventObject &sender, const CoreString &event_id, EventFunction event_cb, void *data=0)
 Connects to an object to listen to a specific event.
 
static void connect (EventObject &sender, EventFunction event_cb, void *data=0)
 Connects to an object to listen any of its events.
 
static void connect (EventObject &sender, const CoreString &event_id, EventObject &receiver, EventMethod event_cb, void *data=0)
 Static version of the above function.
 
static void connect (EventObject &sender, EventObject &receiver, EventMethod event_cb, void *data=0)
 Static version of the above function.
 
static bool disconnect (EventObject &sender, const CoreString &event_id, EventFunction event_cb, void *data=0)
 Disconnects this from an object for a specific event.
 
- Protected Member Functions inherited from TubeMeshFast
template<class VertexArray , class PointType >
CORE_FORCE_INLINE void get_position_control_points (const VertexArray &vertices, const unsigned int &curve_id, const unsigned int &segment_id, PointType *position_controls) const
 
CORE_FORCE_INLINE void get_radius_control_points (const unsigned int &curve_id, const unsigned int &segment_id, float *radius_controls) const
 
template<class VertexArray , class PointType >
void get_primitive_control_points (const VertexArray &vertices, const unsigned int &primitive_id, PointType *position_controls) const
 
template<class VertexArray , class PointType , class RadiusType >
void get_primitive_control_points (const VertexArray &vertices, const unsigned int &primitive_id, PointType *position_controls, RadiusType *radius_controls) const
 
template<class VertexArray >
void compute_primitive_bbox (const VertexArray &vertices, unsigned int primitive_id, GMathBbox3d &bbox) const
 
template<class VertexArray >
void compute_primitive_space (const VertexArray &vertices, unsigned int primitive_id, GMathLinearSpace3d &space) const
 
template<class VertexArray >
void compute_primitive_bbox (const VertexArray &vertices, unsigned int primitive_id, const GMathLinearSpace3d &xform, GMathBbox3d &bbox) const
 
template<class VertexArray >
void compute_bbox (const VertexArray &vertices, GMathBbox3d &bbox) const
 
- Protected Attributes inherited from TubeMeshFast
Primitivem_primitives
 
unsigned int * m_curve_primitive_offset
 
unsigned int m_primitive_count
 

Member Function Documentation

void TubeMeshFast3d::compute_fragment_sample ( const CtxEval eval_ctx,
const GeometryFragment fragment,
GeometrySample sample 
) const
overridevirtual

Compute a sample (position, derivatives, normals) on the geometry for a given fragment.

Parameters
[in]eval_ctxa valid evaluation context
[in]fragmentthe requested fragment
[out]sampleoutput sample

Reimplemented from TubeMeshFast.

virtual GeometryObject* TubeMeshFast3d::get_copy ( ) const
inlineoverridevirtual

Get a copy of the current geometry.

Returns
a new object that is the copy of the current one

Reimplemented from TubeMeshFast.

double TubeMeshFast3d::get_primitive_intersection_cost ( ) const
inlineoverridevirtual

Return an estimation of the intersection cost of primitives.

Note
This is used by accelleration structures to balance the tree. This value might be adjusted by trial and error in order to find the value that gives the best raytracing performance.

Reimplemented from TubeMeshFast.

void TubeMeshFast3d::intersect_primitive ( const CtxEval eval_ctx,
const unsigned int &  id,
GeometryRaytraceCtx raytrace_ctx 
) const
overridevirtual

Compute the list of intersections between rays and a primitive.

Parameters
[in]eval_ctxa valid evaluation context
[in]idthe ID of the primitive
[in,out]raytrace_ctxthe context containing rays information and output results

Reimplemented from TubeMeshFast.