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
GeometryCylinder Class Reference

Class defining an implicit cylinder geometry. More...

Inheritance diagram for GeometryCylinder:
PrimitiveCylinder<> GeometryObject GeometryPrimitive ResourceData EventObject CoreCustomData CoreBaseObject CoreBaseType

Public Member Functions

 GeometryCylinder (const float &radius=0.5, const float &height=1.0, const bool &has_caps=false)
 Constructor.
 
virtual GeometryObjectget_copy () const override
 Get a copy of the current geometry.
 
virtual GMathBbox3d get_bbox () const override
 Get bounding box of the geometry.
 
virtual const CoreBasicArray
< CoreString > & 
get_shading_group_names () const override
 Get the list of shading groups defined in the geometry.
 
virtual unsigned int get_primitive_count () const override
 Get the number of primitives in the geometry.
 
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_primitive_shading_group_index (const unsigned int &id) const override
 Get the ID of the shading group to which belongs a primitive.
 
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 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 intersect_primitive (const CtxEval &eval_ctx, const unsigned int &id, GeometryFrustumCtx &frustum_ctx) const override
 Compute the intersection between a frustum and a primitive.
 
void set_has_caps (const bool &has_caps)
 Set whether the cylinder is closed by caps or not.
 
bool has_caps () const
 Tell whether the cylinder is closed by caps or not.
 
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.
 
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.
 
virtual double estimate_area (const CtxEval &eval_ctx, const GMathMatrix4x4d &xform) const override
 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 override
 Compute an estimation of the area of a shading group.
 
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.
 
- Public Member Functions inherited from PrimitiveCylinder<>
 PrimitiveCylinder (const double &radius, const double &height)
 
const double & get_radius () const
 Get the radius of the cylinder.
 
void set_radius (const double &radius)
 Set the radius of the cylinder.
 
const double & get_height () const
 Get the height of the cylinder.
 
void set_height (const double &height)
 Set the height of the cylinder.
 
double estimate_side_area (const GMathVec3< double > &scale) const
 
double estimate_cap_area (const GMathVec3< double > &scale) const
 
void compute_side_surface_point (GMathVec3< double > &position, GMathVec3< double > &dpdu, GMathVec3< double > &dpdv, GMathVec3< double > &normal, GMathVec3< double > &dndu, GMathVec3< double > &dndv, doubleu, doublev) const
 
void compute_cap_surface_point (GMathVec3< double > &position, GMathVec3< double > &dpdu, GMathVec3< double > &dpdv, GMathVec3< double > &normal, GMathVec3< double > &dndu, GMathVec3< double > &dndv, doubleu, doublev) const
 
void compute_uv (const GMathVec3< double > &pos, double &u, double &v) const
 
void compute_cap_uv (const GMathVec3< double > &pos, double &u, double &v) const
 
unsigned int intersect_side (const GMathBasicRay< double > &ray, doubletnear, doubletfar, doublets[2], doubleus[2], doublevs[2]) const
 
bool intersect_cap (const GMathBasicRay< double > &ray, double &t, double &u, double &v) 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 GMathBbox3d get_shading_group_bbox (const unsigned int &id) const
 Get the bounding box of a shading group.
 
virtual void get_primitive_indices (CoreArray< unsigned int > &indices) const
 Get the list of vertex indices that define all primitives.
 
virtual bool is_animated () const
 Indicate if the geometry has an animation for the current frame.
 
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 void compute_primitive_bbox_at (const CtxEval &eval_ctx, const unsigned int &id, const double &time, GMathBbox3d &bbox) const
 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
 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
 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
 Compute the bounding box of a primitive at a given time.
 
const CoreStringget_primitive_shading_group_name (const unsigned int &id) const
 Get the name of the shading group to which belongs a primitive.
 
virtual unsigned int get_uv_map_count () const
 Get the number of UV maps defined in the geometry.
 
virtual const CoreStringget_uv_map_name (const unsigned int &uv_map_index) const
 Get the name of a UV map.
 
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 void compute_fragment_uvw (const CtxEval &eval_ctx, const GeometryFragment &fragment, const unsigned int &uv_map_index, GMathVec3d &coord, GMathVec3d &dcdu, GMathVec3d &dcdv) const
 Compute UVW coordinates and derivatives in a UV map for the requested fragment.
 
virtual unsigned int get_color_map_count () const
 Get the number of color maps defined in the geometry.
 
virtual const CoreStringget_color_map_name (const unsigned int &color_map_index) const
 Get the name of a color map.
 
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 void compute_fragment_color (const CtxEval &eval_ctx, const GeometryFragment &fragment, const unsigned int &color_map_index, GMathVec4f &color) const
 Compute the value of a color map for the requested fragment.
 
virtual unsigned int get_normal_map_count () const
 Get the number of normal maps defined in the geometry.
 
virtual const CoreStringget_normal_map_name (const unsigned int &normal_map_index) const
 Get the name of a normal map.
 
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_primitive_edge_visible (const unsigned int &primitive_index, const unsigned int &edge_index) const
 Tell if an edge is visible.
 
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.
 
virtual double get_primitive_intersection_cost () const
 Return an estimation of the intersection cost of primitives.
 
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)
 
virtual size_t get_memory_size () const override
 Get the amount of memory occupied by the resource.
 
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 GeometryPrimitive
enum  SideFlags {
  SIDE_FRONT = 1,
  SIDE_BACK = 2,
  SIDE_BOTH = 3
}
 Visible side flags. More...
 
- 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 GeometryPrimitive
template<typename REAL >
static bool is_visible (SideFlags side, REAL dot_normal)
 
template<typename REAL >
static void compute_dndu_dndv (GMathVec3< REAL > &dndu, GMathVec3< REAL > &dndv, const GMathVec3< REAL > &dpdu, const GMathVec3< REAL > &dpdv, const GMathVec3< REAL > &normal, const GMathVec3< REAL > &d2pduu, const GMathVec3< REAL > &d2pduv, const GMathVec3< REAL > &d2pdvv)
 Compute the partial derivatives of the normal.
 
- 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 Attributes inherited from PrimitiveCylinder<>
double m_radius
 
double m_height
 

Detailed Description

Class defining an implicit cylinder geometry.

Constructor & Destructor Documentation

GeometryCylinder::GeometryCylinder ( const float &  radius = 0.5,
const float &  height = 1.0,
const bool &  has_caps = false 
)

Constructor.

Parameters
[in]radiusthe radius of the cylinder
[in]heightthe height of the cylinder
[in]has_capsif true, the cylinder is closed by caps

Member Function Documentation

void GeometryCylinder::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
overridevirtual

Compute UVW coordinates and derivatives in a UV map on an edge.

Parameters
[in]eval_ctxa valid evaluation context
[in]primitive_indexthe ID of the primitive to which the edge belongs
[in]edge_indexthe ID of the edge on the primitive
[in]uv_map_indexthe ID of the UV map to use
[in]tposition on the edge [0 - 1.0]
[out]coordoutput UVW coordinates in the UV map

Reimplemented from GeometryObject.

void GeometryCylinder::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

Implements GeometryObject.

void GeometryCylinder::compute_primitive_bbox ( const CtxEval eval_ctx,
const unsigned int &  id,
GMathBbox3d &  bbox 
) const
overridevirtual

Compute the bounding box of a primitive.

Parameters
[in]eval_ctxa valid evaluation context
[in]idthe ID of the primitive
[out]bboxthe returned bounding box

Implements GeometryObject.

double GeometryCylinder::estimate_area ( const CtxEval eval_ctx,
const GMathMatrix4x4d &  xform 
) const
overridevirtual

Compute an estimation of the area of the geometry.

Parameters
[in]eval_ctxa valid evaluation context
[in]xformthe transformation matrix of the geometry
Returns
an estimation of the area

Reimplemented from GeometryObject.

double GeometryCylinder::estimate_primitive_area ( const CtxEval eval_ctx,
const unsigned int &  id,
const GMathMatrix4x4d &  xform 
) const
overridevirtual

Compute an estimation of the area of a primitive.

Parameters
[in]eval_ctxa valid evaluation context
[in]idthe ID of the primitive
[in]xformthe transformation matrix of the geometry
Returns
an estimation of the area

Reimplemented from GeometryObject.

double GeometryCylinder::estimate_shading_group_area ( const CtxEval eval_ctx,
const unsigned int &  id,
const GMathMatrix4x4d &  xform 
) const
overridevirtual

Compute an estimation of the area of a shading group.

Parameters
[in]eval_ctxa valid evaluation context
[in]idthe ID of the shading group
[in]xformthe transformation matrix of the geometry
Returns
an estimation of the area

Reimplemented from GeometryObject.

GMathBbox3d GeometryCylinder::get_bbox ( ) const
overridevirtual

Get bounding box of the geometry.

Returns
the bounding box

Implements GeometryObject.

GeometryObject * GeometryCylinder::get_copy ( ) const
overridevirtual

Get a copy of the current geometry.

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

Implements GeometryObject.

virtual unsigned int GeometryCylinder::get_primitive_count ( ) const
inlineoverridevirtual

Get the number of primitives in the geometry.

Returns
the number of primitives

Implements GeometryObject.

virtual unsigned int GeometryCylinder::get_primitive_edge_count ( const unsigned int &  id) const
inlineoverridevirtual

Get the number of edges of a primitive.

Parameters
[in]idthe ID of the primitive
Returns
the number of edges for the given primitive

Implements GeometryObject.

virtual unsigned int GeometryCylinder::get_primitive_shading_group_index ( const unsigned int &  id) const
inlineoverridevirtual

Get the ID of the shading group to which belongs a primitive.

Parameters
[in]idthe ID of the primitive
Returns
the ID of the shading group

Implements GeometryObject.

virtual const CoreBasicArray<CoreString>& GeometryCylinder::get_shading_group_names ( ) const
inlineoverridevirtual

Get the list of shading groups defined in the geometry.

Returns
the array of shading group names

Implements GeometryObject.

void GeometryCylinder::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

Implements GeometryObject.

void GeometryCylinder::intersect_primitive ( const CtxEval eval_ctx,
const unsigned int &  id,
GeometryFrustumCtx frustum_ctx 
) const
overridevirtual

Compute the intersection between a frustum and a primitive.

Parameters
[in]eval_ctxa valid evaluation context
[in]idthe ID of the primitive
[in,out]frustum_ctxthe context containing the frustum information and the output result

Reimplemented from GeometryObject.