Clarisse 4.0 SP5b SDK  4.0.0.0.5.1
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
GeometryProperty Class Reference

Base class for evaluating a property. More...

Inheritance diagram for GeometryProperty:
CoreBaseObject CoreBaseType CurveMeshProperty GeometryPointProperty OsdMeshProperty PolyMeshProperty TubeMeshProperty

Classes

class  LoadDataInfo
 Base class for data given as argument of the deferred loading callback. More...
 

Public Types

typedef void(* LoadData )(const unsigned int &sample_index, LoadDataInfo *)
 Callback that is given to the method set_deferred_loading in order to enable deferred loading of the property data.
 
typedef unsigned int(* EvaluateNaturalCallback )(const GeometryProperty &, const CtxEval &, const GeometryFragment &, const unsigned int &, long long *, long long *, long long *, long long *, const unsigned int &)
 Callback that must be implemented to define how the property must be evaluated for natural numbers.
 
typedef unsigned int(* EvaluateRealCallback )(const GeometryProperty &, const CtxEval &, const GeometryFragment &, const unsigned int &, double *, double *, double *, double *, const unsigned int &)
 Callback that must be implemented to define how the property must be evaluated for real numbers.
 

Public Member Functions

 GeometryProperty (const CoreString &name, const GMathTimeSampling &time_sampling=GMathTimeSampling(0.0), const ResourceProperty::Type &value_type=ResourceProperty::TYPE_COUNT, const unsigned int &value_count=0, const unsigned int &value_extent=0, const unsigned int &index_count=0)
 Constructor.
 
void set_deferred_loading (LoadData load_data_cb, LoadDataInfo *load_data_cb_info)
 Enabled deferred loading of the property data by specifying a loading callback and its arguments.
 
const CoreStringget_name () const
 Get the name of the property.
 
const GMathTimeSamplingget_time_sampling () const
 Get the time sampling of the property.
 
virtual const
ResourceProperty::Type
get_value_type () const
 
virtual const unsigned int & get_value_count () const
 
virtual const unsigned int & get_value_extent () const
 
virtual const unsigned int & get_index_count () const
 
bool is_sampled () const
 Tell whether the property is sampled over the time or not.
 
CORE_FORCE_INLINE void load_data (const unsigned int &sample_index) const
 Forces the property to load its data if deferred data loading is enabled.
 
CORE_FORCE_INLINE unsigned int evaluate (const CtxEval &eval_ctx, const GeometryFragment &fragment, const unsigned int &sample_index, long long *values, long long *values_du, long long *values_dv, long long *values_dw, const unsigned int &value_count) const
 Evaluate the property and its derivatives as a natural number.
 
CORE_FORCE_INLINE unsigned int evaluate (const CtxEval &eval_ctx, const GeometryFragment &fragment, const unsigned int &sample_index, double *values, double *values_du, double *values_dv, double *values_dw, const unsigned int &value_count) const
 Evaluate the property and its derivatives as a real number.
 
- Public Member Functions inherited from CoreBaseObject
bool is_kindof (const CoreBaseObject &object) const
 
virtual size_t get_memory_size () const
 
CoreString get_class_info_name () const
 
CoreString get_class_interface () const
 
const unsigned long & get_class_info_id () const
 
bool is_kindof (const CoreClassInfo &cinfo) const
 
virtual const CoreClassInfoget_class_info () const
 
bool operator== (const CoreBaseObject &obj) 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
 
bool operator== (const CoreBaseType &obj) const
 

Protected Member Functions

void set_evaluate_callbacks (EvaluateNaturalCallback evaluate_natural_callback, EvaluateRealCallback evaluate_real_callback)
 Set the evaluation callbacks to use.
 
void set_time_sampling (const GMathTimeSampling &time_sampling)
 Set the time samplign of the property.
 
void set_name (const CoreString &name)
 Set the name of the property.
 

Protected Attributes

ResourceProperty::Type m_value_type
 
unsigned int m_value_count
 
unsigned int m_value_extent
 
unsigned int m_index_count
 

Additional Inherited Members

- Static Public Member Functions inherited from CoreBaseObject
static const CoreClassInfoclass_info ()
 
static bool ___class_destructor__ (void *instance, const bool &is_array)
 
template<class T >
static T * cast (CoreBaseObject *object)
 
template<class T >
static const T * cast (const CoreBaseObject *object)
 

Detailed Description

Base class for evaluating a property.

Constructor & Destructor Documentation

GeometryProperty::GeometryProperty ( const CoreString name,
const GMathTimeSampling time_sampling = GMathTimeSampling(0.0),
const ResourceProperty::Type value_type = ResourceProperty::TYPE_COUNT,
const unsigned int &  value_count = 0,
const unsigned int &  value_extent = 0,
const unsigned int &  index_count = 0 
)

Constructor.

Parameters
namename of the property
time_samplingthe sampling of values over the time
value_typethe type of each value
value_countthe number of values
value_extentthe extent of each value (i.e. 3 for a 3D vector)
index_countthe number of indices used to remap the values (can be 0)

Member Function Documentation

CORE_FORCE_INLINE unsigned int GeometryProperty::evaluate ( const CtxEval eval_ctx,
const GeometryFragment fragment,
const unsigned int &  sample_index,
long long *  values,
long long *  values_du,
long long *  values_dv,
long long *  values_dw,
const unsigned int &  value_count 
) const
inline

Evaluate the property and its derivatives as a natural number.

Parameters
[in]eval_ctxa valid evaluation context
[in]fragmentthe fragment for which the property has to be evaluated
[in]sample_indexindex of the time sample to evaluate
[out]valuesoutput values
[out]valuesoutput partial derivative of the values for U
[out]valuesoutput partial derivative of the values for V
[out]valuesoutput partial derivative of the values for W
[out]value_countthe number of values to be returned
Returns
the number of values that have been returned
CORE_FORCE_INLINE unsigned int GeometryProperty::evaluate ( const CtxEval eval_ctx,
const GeometryFragment fragment,
const unsigned int &  sample_index,
double *  values,
double *  values_du,
double *  values_dv,
double *  values_dw,
const unsigned int &  value_count 
) const
inline

Evaluate the property and its derivatives as a real number.

Parameters
[in]eval_ctxa valid evaluation context
[in]fragmentthe fragment for which the property has to be evaluated
[in]sample_indexindex of the time sample to evaluate
[out]valuesoutput values
[out]valuesoutput partial derivative of the values for U
[out]valuesoutput partial derivative of the values for V
[out]valuesoutput partial derivative of the values for W
[out]value_countthe number of values to be returned
Returns
the number of values that have been returned