SIM/SIM_Utils.h File Reference

#include "SIM_API.h"
#include "SIM_Data.h"
#include "SIM_DataFilter.h"
#include "SIM_Time.h"
#include "SIM_Names.h"
#include <GEO/GEO_Primitive.h>
#include <UT/UT_SysSpecific.h>
#include <UT/UT_RefArray.h>

Go to the source code of this file.

Classes

class  sim_EdgeDataEntry
 Information about a single edge. More...

Defines

#define SIM_DATA_CAST(Data, DataClass)
#define SIM_DATA_CASTCONST(Data, DataClass)
#define SIM_DATA_GET(Parent, DataName, DataClass)   SIM_DATA_CAST((Parent).getNamedSubData(DataName), DataClass)
#define SIM_DATA_GETCONST(Parent, DataName, DataClass)   SIM_DATA_CASTCONST((Parent).getConstNamedSubData(DataName), DataClass)
#define SIM_DATA_GETNTH(Parent, DataClass, N, StartFrom, RecurseFilter)
#define SIM_DATA_GETNTHCONST(Parent, DataClass, N, StartFrom, RecurseFilter)
#define SIM_DATA_CREATE(Parent, DataName, DataClass, Flags)
#define SIM_DATA_GETORCREATE_ALT(Parent, DataName, DataClass)

Typedefs

typedef UT_RefArray
< sim_EdgeDataEntry
SIM_EdgeData

Functions

template<class DataClass >
void SIMconvertConstArray (const SIM_ConstDataArray &src, UT_PtrArray< const DataClass * > &dest, const char *DataClassName, bool includenulls=false)
template<class DataClass >
void SIMconvertArray (const SIM_DataArray &src, UT_PtrArray< DataClass * > &dest, const char *DataClassName, bool includenulls=false)
SIM_API void SIMgetPositionTransform (UT_DMatrix4 &result, const SIM_Object &)
SIM_API void SIMgetGeometryTransform (UT_DMatrix4 &result, const SIM_Object &)
SIM_API void SIMgetObjectProperties (const SIM_Object &obj, const UT_Vector3 &pos, const int ptnum, fpreal &friction, fpreal &bounce, fpreal &dynamicfriction)
 Returns object properties at the given point (if non-negative) or position.
SIM_API bool SIMisTri (const GEO_Primitive &prim)
SIM_API void SIMcalcEdgeData (SIM_EdgeData &edgeData, const GU_Detail &gdp)
DLLEXPORT void initializeSIM (void *data)
SIM_API void initializeSIM ()
SIM_API void SIMbuildAnchorGuideObjectLink (GU_Detail *gdp, GEO_Point *pt, const SIM_Object &object, const SIM_Options &options, const SIM_Relationship &rel)
 Constructs guide geometry to illustrate connection between an anchored.


Define Documentation

#define SIM_DATA_CAST ( Data,
DataClass   ) 

Value:

((DataClass *)(SIM_Data::castPointerToType( \
                   static_cast<SIM_Data *>(Data), #DataClass)))
This macros simplifies calling and casting the return value from the SIM_Data::getPointerToType() function. The returned value is a DataClass pointer.
Examples:
SIM/SIM_GasAdd.C.

Definition at line 33 of file SIM_Utils.h.

#define SIM_DATA_CASTCONST ( Data,
DataClass   ) 

Value:

((const DataClass *)(SIM_Data::castConstPointerToType( \
                         static_cast<const SIM_Data *>(Data), #DataClass)))
This macros simplifies calling and casting the return value from the SIM_Data::getPointerToType() function. The returned value is a const DataClass pointer.
Examples:
SIM/SIM_SolverHair.C, and SIM/SIM_SolverSNOW.C.

Definition at line 39 of file SIM_Utils.h.

#define SIM_DATA_CREATE ( Parent,
DataName,
DataClass,
Flags   ) 

Value:

((DataClass *)(static_cast<SIM_Data &>(Parent)). \
    createNamedSubData(DataName, #DataClass, Flags))
This macro simplifies calling and casting the return value of a call to the SIM_Data::createNamedSubData function.
Examples:
DOP/DOP_GroupAndApply.C, SIM/SIM_SolverHair.C, and SIM/SIM_SolverSNOW.C.

Definition at line 68 of file SIM_Utils.h.

#define SIM_DATA_GET ( Parent,
DataName,
DataClass   )     SIM_DATA_CAST((Parent).getNamedSubData(DataName), DataClass)

This macro simplifies the calling and casting the return value from SIM_Data::getNamedSubData(). The returned value is a DataClass pointer.

Examples:
SIM/SIM_SolverHair.C, and SIM/SIM_SolverSNOW.C.

Definition at line 45 of file SIM_Utils.h.

#define SIM_DATA_GETCONST ( Parent,
DataName,
DataClass   )     SIM_DATA_CASTCONST((Parent).getConstNamedSubData(DataName), DataClass)

This macro simplifies the calling and casting the return value from SIM_Data::getConstNamedSubData(). The returned value is a const DataClass pointer.

Definition at line 50 of file SIM_Utils.h.

#define SIM_DATA_GETNTH ( Parent,
DataClass,
N,
StartFrom,
RecurseFilter   ) 

Value:

SIM_DATA_CAST((Parent).getNthSubData( \
                           NULL, SIM_DataFilterByType(#DataClass), N, \
                           StartFrom, RecurseFilter), DataClass)
This macro simplifies the calling and casting the return value from SIM_Data::getNthSubData(), using SIM_DataFilterByType. The returned value is a DataClass pointer.

Definition at line 55 of file SIM_Utils.h.

#define SIM_DATA_GETNTHCONST ( Parent,
DataClass,
N,
StartFrom,
RecurseFilter   ) 

Value:

SIM_DATA_CASTCONST((Parent).getNthConstSubData( \
                                NULL, SIM_DataFilterByType(#DataClass), N, \
                                StartFrom, RecurseFilter), DataClass)
This macro simplifies the calling and casting the return value from SIM_Data::getNthConstSubData(), using SIM_DataFilterByType. The returned value is a const DataClass pointer.

Definition at line 62 of file SIM_Utils.h.

#define SIM_DATA_GETORCREATE_ALT ( Parent,
DataName,
DataClass   ) 

Value:

SIM_DATA_CAST((Parent).getOrCreateAlternateRepresentation( \
                           DataName, #DataClass), DataClass)
This macro simplifies the calling and casting the return value from SIM_Data::getorCreateAlternateRepresentation(). The returned value is a DataClass pointer.

Definition at line 74 of file SIM_Utils.h.


Typedef Documentation

Definition at line 171 of file SIM_Utils.h.


Function Documentation

SIM_API void initializeSIM (  ) 

Call this initialization function to register all data types, solvers, and colliders in this library.

DLLEXPORT void initializeSIM ( void *   ) 

Declaration of the function that must be implemented by custom SIM library extensions.

This is the hook that Houdini grabs from the dll to link in this. As such, it merely has to implement the data factory for this node.

Examples:
SIM/SIM_ElectricalProperties.C, SIM/SIM_ForceOrbit.C, SIM/SIM_GasAdd.C, SIM/SIM_SolverHair.C, and SIM/SIM_SolverSNOW.C.

Definition at line 37 of file SIM_ElectricalProperties.C.

SIM_API void SIMbuildAnchorGuideObjectLink ( GU_Detail gdp,
GEO_Point pt,
const SIM_Object object,
const SIM_Options options,
const SIM_Relationship rel 
)

Constructs guide geometry to illustrate connection between an anchored.

SIM_API void SIMcalcEdgeData ( SIM_EdgeData edgeData,
const GU_Detail gdp 
)

Calculate information about triangle edges in the given gdp. This is intended as a lightweight alternative to GQ_Detail, with only very basic edge information.

template<class DataClass >
void SIMconvertArray ( const SIM_DataArray src,
UT_PtrArray< DataClass * > &  dest,
const char *  DataClassName,
bool  includenulls = false 
) [inline]

This function converts SIM_Data pointers in an array to pointers of any SIM_Data subclass. If one of the SIM_Data pointers cannot be cast to the requested new type, it is not added to the new array.

Definition at line 107 of file SIM_Utils.h.

template<class DataClass >
void SIMconvertConstArray ( const SIM_ConstDataArray src,
UT_PtrArray< const DataClass * > &  dest,
const char *  DataClassName,
bool  includenulls = false 
) [inline]

This function converts const SIM_Data pointers in an array to pointers of any const SIM_Data subclass. If one of the SIM_Data pointers cannot be cast to the requested new type, it is not added to the new array.

Definition at line 83 of file SIM_Utils.h.

SIM_API void SIMgetGeometryTransform ( UT_DMatrix4 result,
const SIM_Object  
)

A utility method for computing the transform from the local-space of an object's geometry to world-space co-ordinates.

Examples:
SIM/SIM_SolverHair.C.

SIM_API void SIMgetObjectProperties ( const SIM_Object obj,
const UT_Vector3 pos,
const int  ptnum,
fpreal friction,
fpreal bounce,
fpreal dynamicfriction 
)

Returns object properties at the given point (if non-negative) or position.

SIM_API void SIMgetPositionTransform ( UT_DMatrix4 result,
const SIM_Object  
)

A utility method for computing the transform from the local-space of an object to world-space co-ordinates.

SIM_API bool SIMisTri ( const GEO_Primitive prim  ) 

Returns true if the given primitive is a polygon with three vertices.


Generated on Thu May 24 00:09:05 2012 for HDK by  doxygen 1.5.9