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

Class defining an implicit unit square. More...

Inheritance diagram for GeometrySquare:
GeometrySquareSampler<> GeometryObject GeometryPrimitive ResourceData EventObject CoreCustomData CoreBaseObject CoreBaseType

Public Member Functions

 GeometrySquare (const SideFlags &side=SIDE_BOTH)
 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 &) const override
 Get the number of edges of a primitive.
 
virtual unsigned int get_primitive_shading_group_index (const unsigned int &) const override
 Get the ID of the shading group to which belongs a primitive.
 
virtual void compute_primitive_bbox (const CtxEval &, const unsigned int &, 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 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.
 
void set_scale (const double scale)
 
- Public Member Functions inherited from GeometrySquareSampler<>
 GeometrySquareSampler (doublescale=GMath< double >::one(), const SideFlags &side=SIDE_BOTH)
 
void set_scale (const doublescale)
 
double get_scale () const
 
void set_sidedness (const SideFlags &sidedness)
 
double estimate_area (const GMathMatrix4x4< double > &xform) const
 
void compute_surface_point (GMathVec3< double > &position, GMathVec3< double > &dpdu, GMathVec3< double > &dpdv, GMathVec3< double > &normal, GMathVec3< double > &dndu, GMathVec3< double > &dndv, doubleu, doublev) const
 
bool intersect_primitive (const GMathBasicRay< double > &ray, double &t, double &u, double &v) const
 
void init_fragment_data (FragmentEvaluationData &fragment_data, const GMathMatrix4x4< double > &xform) const
 
double compute_solid_angle (const FragmentEvaluationData &fragment_data, const GMathVec3< double > &position, const GMathVec3< double > &normal) const
 
double surface_sample (const GMathMatrix4x4< double > &xform, const FragmentEvaluationData &fragment_data, const GMathVec2< double > &sample, const GMathVec3< double > &position, GMathVec3< double > &direction, double &distance) const
 
double surface_pdf (const FragmentEvaluationData &fragment_data, const GMathVec3< double > &direction, const double &distance) const
 
void init_directional_fragment_data (DirectionalFragmentData &fragment_data, const GMathVec3< double > &position, const GMathMatrix4x4< double > &inv_xform) const
 
void init_directional_fragment_data (DirectionalFragmentData &fragment_data, const GMathVec3< double > &position, const DirectionalSamplingData &data) const
 
double direction_sample (const GMathMatrix4x4< double > &xform, const GMathMatrix4x4< double > &inv_xform, doubledet_xform, const DirectionalFragmentData &fragment_data, const GMathVec2< double > &sample, const GMathVec3< double > &position, GMathVec3< double > &direction, double &distance) const
 
double direction_sample (const GMathMatrix4x4< double > &xform, const GMathMatrix4x4< double > &inv_xform, doubledet_xform, const GMathVec2< double > &sample, const GMathVec3< double > &position, GMathVec3< double > &direction, double &distance) const
 
double direction_sample (const DirectionalSamplingData &data, const DirectionalFragmentData &fragment_data, const GMathVec2< double > &sample, const GMathVec3< double > &position, GMathVec3< double > &direction, double &distance) const
 
double direction_sample (const DirectionalSamplingData &data, const GMathVec2< double > &sample, const GMathVec3< double > &position, GMathVec3< double > &direction, double &distance) const
 
double direction_pdf (const GMathMatrix4x4< double > &xform, const GMathMatrix4x4< double > &inv_xform, doubledet_xform, const DirectionalFragmentData &fragment_data, const GMathVec3< double > &position, const GMathVec3< double > &direction, const double &distance) const
 
double direction_pdf (const GMathMatrix4x4< double > &xform, const GMathMatrix4x4< double > &inv_xform, doubledet_xform, const GMathVec3< double > &position, const GMathVec3< double > &direction, const double &distance) const
 
double direction_pdf (const DirectionalSamplingData &data, const DirectionalFragmentData &fragment_data, const GMathVec3< double > &position, const GMathVec3< double > &direction, const double &distance) const
 
double direction_pdf (const DirectionalSamplingData &data, const GMathVec3< double > &position, const GMathVec3< double > &direction, const double &distance) const
 
double init_ray_scatter (EquiAngularSampling< double > &eas, const GRandomDefault &rng, const GMathVec3< double > &center, const GMathVec3< double > &normal, const GMathMatrix4x4< double > &xform, const GMathBasicRay< double > *ray, const double &t_min, const double &t_max) 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 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
 Compute UVW coordinates and derivatives in a UV map on an edge.
 
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.
 
virtual void intersect_primitive (const CtxEval &eval_ctx, const unsigned int &id, GeometryFrustumCtx &frustum_ctx) const
 Compute the intersection between a frustum and a primitive.
 
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 GeometrySquareSampler<>
static void init_directional_sampling_data (DirectionalSamplingData &data, const GMathMatrix4x4< double > &xform)
 
- 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 GeometrySquareSampler<>
SideFlags m_side
 
double m_scale
 

Detailed Description

Class defining an implicit unit square.

Constructor & Destructor Documentation

GeometrySquare::GeometrySquare ( const SideFlags side = SIDE_BOTH)
explicit

Constructor.

Parameters
[in]sidethe visible sides

Member Function Documentation

void GeometrySquare::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.

virtual void GeometrySquare::compute_primitive_bbox ( const CtxEval eval_ctx,
const unsigned int &  id,
GMathBbox3d &  bbox 
) const
inlineoverridevirtual

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 GeometrySquare::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 GeometrySquare::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 GeometrySquare::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.

virtual GMathBbox3d GeometrySquare::get_bbox ( ) const
inlineoverridevirtual

Get bounding box of the geometry.

Returns
the bounding box

Implements GeometryObject.

virtual GeometryObject* GeometrySquare::get_copy ( ) const
inlineoverridevirtual

Get a copy of the current geometry.

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

Implements GeometryObject.

virtual unsigned int GeometrySquare::get_primitive_count ( ) const
inlineoverridevirtual

Get the number of primitives in the geometry.

Returns
the number of primitives

Implements GeometryObject.

virtual unsigned int GeometrySquare::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 GeometrySquare::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>& GeometrySquare::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 GeometrySquare::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.