HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
SIM_SweptCollisionUtility.h File Reference
#include "SIM_API.h"
#include "SIM_SweptCollisionData.h"
#include <UT/UT_VectorTypes.h>
#include <GA/GA_PageHandle.h>
#include <GU/GU_DetailHandle.h>
#include <vector>
+ Include dependency graph for SIM_SweptCollisionUtility.h:

Go to the source code of this file.

Classes

struct  SIM_MergedIdentityPoint
 
class  SIM_MergeMap
 
class  SIM_MergeMapObject
 
class  SIM_UnpackedGeometry
 

Functions

bool SIMisValidIndex (const int i, const int n)
 
void SIM_API SIMmergePoints (SIM_MergeMap &merged_points, const UT_Array< const GU_Detail * > &gdps)
 
void SIM_API SIMextractTriangleConnectivityMerged (SIM_TriangleConnectivity &triangles, const SIM_MergeMapObject &merged_points, const SIM_UnpackedGeometry &unpacked_geometry, const char *geopath)
 Extract the triangle connectivity for a single object. More...
 
bool SIM_API SIMgetGeometryAndTransform (const SIM_Geometry *&geometry, UT_DMatrix4 &geometry_to_sim, const SIM_Object &object)
 
bool SIM_API SIMgetGeometryAndTransformAtTime (const SIM_Geometry *&geometry, UT_DMatrix4 &geometry_to_sim, const SIM_Engine &engine, const SIM_Object &undated_object, const SIM_Time &t)
 
void SIM_API SIMreadThicknessPoints (std::vector< fpreal32 > &thickness_points, const SIM_MergeMap &merged_points, const UT_Array< const GU_Detail * > &gdps_end, const fpreal default_thickness)
 
fpreal SIM_API SIMreadBounceParameterObject (const SIM_Object &object, const fpreal default_bounce)
 
fpreal SIM_API SIMreadFrictionParameterObject (const SIM_Object &object, const fpreal default_friction)
 
fpreal SIM_API SIMreadBounceForwardParameterObject (const SIM_Object &object, const fpreal default_bounceforward)
 
void SIM_API SIMreadSweptState (SIM_MergeMap &merged_points, std::vector< SIM_UnpackedGeometry > &unpacked_geometries_end, std::vector< int > &id_objects, std::vector< fpreal32 > *thickness_points, std::vector< fpreal32 > *bounce_points, std::vector< fpreal32 > *friction_points, std::vector< fpreal32 > *bounceforward_points, SIM_PositionPoints &position_points_start, SIM_PositionPoints &position_points_end, SIM_VelocityPoints *velocity_points_end, const SIM_Engine &engine, const std::vector< const SIM_Object * > &objects, const fpreal default_thickness, const fpreal64 t_start, const fpreal64 t_end)
 
void SIM_API SIMreadSweptState (SIM_MergeMap &merged_points, SIM_UnpackedGeometry &unpacked_geo_end, std::vector< fpreal32 > *thickness_points, SIM_PositionPoints &position_points_start, SIM_PositionPoints &position_points_end, SIM_VelocityPoints *velocity_points_end, const GU_Detail *gdp_start, const UT_DMatrix4 &geoxform_start, const GU_Detail *gdp_end, const UT_DMatrix4 &geoxform_end, const fpreal default_thickness, const fpreal64 t_start, const fpreal64 t_end)
 
template<typename FLOAT >
bool SIM_API SIMreadSweptState (const SIM_Object *object, GU_Detail *gdp, GA_Range &arange, typename GA_PageHandleScalar< FLOAT >::ROType *thickness_points, typename GA_PageHandleScalar< FLOAT >::ROType *bounce_points, typename GA_PageHandleScalar< FLOAT >::ROType *friction_points, typename GA_PageHandleScalar< FLOAT >::ROType *dynamicfriction_points, typename GA_PageHandleScalar< FLOAT >::ROType *bounceforward_points, typename GA_PageHandleScalar< FLOAT >::ROType *mass_points, typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &position_points_start, typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &position_points_end, typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType *velocity_points_end, fpreal default_thickness)
 
void SIM_API SIMextractTriangleConnectivityMerged (SIM_TriangleConnectivity &triangles, const SIM_MergeMap &merged_points, const std::vector< SIM_UnpackedGeometry > &unpacked_geometries, const std::vector< const SIM_Object * > &objects)
 Extract the triangle connectivity for a set of objects. More...
 
void SIM_API SIMreadPositionPoints (SIM_PositionPoints &position_points, const SIM_MergeMap &merged_points, const std::vector< UT_DMatrix4 > &transforms, const UT_Array< const GU_Detail * > &gdps)
 
void SIM_API SIMreadVelocityPointsFromAttribute (SIM_VelocityPoints &velocity_points, const SIM_MergeMap &merged_points, const std::vector< UT_DMatrix4 > &transforms, const UT_Array< const GU_Detail * > &gdps)
 
void SIM_API SIMwritePositionAndVelocityPoints (const std::vector< SIM_GeometryCopy * > &geometries, const SIM_MergeMap &merged_points, const SIM_PositionPoints &position_points, const SIM_VelocityPoints &velocity_points, const std::vector< UT_DMatrix4 > &transforms)
 
void SIM_API SIMreadPreviousPositionAttribute (SIM_PositionPoints &position_points, const SIM_MergeMap &merge_map, const std::vector< const SIM_Geometry * > &geometries_end)
 
void SIM_API SIMwritePreviousPositionAttribute (std::vector< SIM_GeometryCopy * > &geometries_end, const SIM_MergeMap &merge_map, const SIM_PositionPoints &position_points)
 
template<typename FLOAT >
void SIM_API SIMcreatePreviousPositionAttribute (GU_Detail *gdp, typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &prevppos_ph, typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &pos_ph)
 
template<typename FLOAT >
void SIM_API SIMcopyAttribute (GU_Detail *gdp, typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &prevppos_ph, typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &pos_ph)
 
bool SIM_API SIMdetectCollisionsAndGenerateImpulses (SIM_Impacts *impacts_a, SIM_Impacts *impacts_b, const SIM_Engine &engine, SIM_Object *const undated_object_a, const SIM_Object *const undated_object_b, const SIM_Time &t_start, const SIM_Time &t_end, const int impact_flags, const bool pscaleisradius)
 

Function Documentation

template<typename FLOAT >
void SIM_API SIMcopyAttribute ( GU_Detail gdp,
typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &  prevppos_ph,
typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &  pos_ph 
)
template<typename FLOAT >
void SIM_API SIMcreatePreviousPositionAttribute ( GU_Detail gdp,
typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &  prevppos_ph,
typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &  pos_ph 
)
bool SIM_API SIMdetectCollisionsAndGenerateImpulses ( SIM_Impacts impacts_a,
SIM_Impacts impacts_b,
const SIM_Engine engine,
SIM_Object *const  undated_object_a,
const SIM_Object *const  undated_object_b,
const SIM_Time t_start,
const SIM_Time t_end,
const int  impact_flags,
const bool  pscaleisradius 
)
void SIM_API SIMextractTriangleConnectivityMerged ( SIM_TriangleConnectivity triangles,
const SIM_MergeMapObject merged_points,
const SIM_UnpackedGeometry unpacked_geometry,
const char *  geopath 
)

Extract the triangle connectivity for a single object.

void SIM_API SIMextractTriangleConnectivityMerged ( SIM_TriangleConnectivity triangles,
const SIM_MergeMap merged_points,
const std::vector< SIM_UnpackedGeometry > &  unpacked_geometries,
const std::vector< const SIM_Object * > &  objects 
)

Extract the triangle connectivity for a set of objects.

bool SIM_API SIMgetGeometryAndTransform ( const SIM_Geometry *&  geometry,
UT_DMatrix4 geometry_to_sim,
const SIM_Object object 
)
bool SIM_API SIMgetGeometryAndTransformAtTime ( const SIM_Geometry *&  geometry,
UT_DMatrix4 geometry_to_sim,
const SIM_Engine engine,
const SIM_Object undated_object,
const SIM_Time t 
)
bool SIMisValidIndex ( const int  i,
const int  n 
)
inline

Definition at line 33 of file SIM_SweptCollisionUtility.h.

void SIM_API SIMmergePoints ( SIM_MergeMap merged_points,
const UT_Array< const GU_Detail * > &  gdps 
)
fpreal SIM_API SIMreadBounceForwardParameterObject ( const SIM_Object object,
const fpreal  default_bounceforward 
)
fpreal SIM_API SIMreadBounceParameterObject ( const SIM_Object object,
const fpreal  default_bounce 
)
fpreal SIM_API SIMreadFrictionParameterObject ( const SIM_Object object,
const fpreal  default_friction 
)
void SIM_API SIMreadPositionPoints ( SIM_PositionPoints position_points,
const SIM_MergeMap merged_points,
const std::vector< UT_DMatrix4 > &  transforms,
const UT_Array< const GU_Detail * > &  gdps 
)
void SIM_API SIMreadPreviousPositionAttribute ( SIM_PositionPoints position_points,
const SIM_MergeMap merge_map,
const std::vector< const SIM_Geometry * > &  geometries_end 
)
void SIM_API SIMreadSweptState ( SIM_MergeMap merged_points,
std::vector< SIM_UnpackedGeometry > &  unpacked_geometries_end,
std::vector< int > &  id_objects,
std::vector< fpreal32 > *  thickness_points,
std::vector< fpreal32 > *  bounce_points,
std::vector< fpreal32 > *  friction_points,
std::vector< fpreal32 > *  bounceforward_points,
SIM_PositionPoints position_points_start,
SIM_PositionPoints position_points_end,
SIM_VelocityPoints velocity_points_end,
const SIM_Engine engine,
const std::vector< const SIM_Object * > &  objects,
const fpreal  default_thickness,
const fpreal64  t_start,
const fpreal64  t_end 
)
void SIM_API SIMreadSweptState ( SIM_MergeMap merged_points,
SIM_UnpackedGeometry unpacked_geo_end,
std::vector< fpreal32 > *  thickness_points,
SIM_PositionPoints position_points_start,
SIM_PositionPoints position_points_end,
SIM_VelocityPoints velocity_points_end,
const GU_Detail gdp_start,
const UT_DMatrix4 geoxform_start,
const GU_Detail gdp_end,
const UT_DMatrix4 geoxform_end,
const fpreal  default_thickness,
const fpreal64  t_start,
const fpreal64  t_end 
)
template<typename FLOAT >
bool SIM_API SIMreadSweptState ( const SIM_Object object,
GU_Detail gdp,
GA_Range arange,
typename GA_PageHandleScalar< FLOAT >::ROType *  thickness_points,
typename GA_PageHandleScalar< FLOAT >::ROType *  bounce_points,
typename GA_PageHandleScalar< FLOAT >::ROType *  friction_points,
typename GA_PageHandleScalar< FLOAT >::ROType *  dynamicfriction_points,
typename GA_PageHandleScalar< FLOAT >::ROType *  bounceforward_points,
typename GA_PageHandleScalar< FLOAT >::ROType *  mass_points,
typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &  position_points_start,
typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType &  position_points_end,
typename GA_PageHandleV< UT_Vector3T< FLOAT >>::RWType *  velocity_points_end,
fpreal  default_thickness 
)
void SIM_API SIMreadThicknessPoints ( std::vector< fpreal32 > &  thickness_points,
const SIM_MergeMap merged_points,
const UT_Array< const GU_Detail * > &  gdps_end,
const fpreal  default_thickness 
)
void SIM_API SIMreadVelocityPointsFromAttribute ( SIM_VelocityPoints velocity_points,
const SIM_MergeMap merged_points,
const std::vector< UT_DMatrix4 > &  transforms,
const UT_Array< const GU_Detail * > &  gdps 
)
void SIM_API SIMwritePositionAndVelocityPoints ( const std::vector< SIM_GeometryCopy * > &  geometries,
const SIM_MergeMap merged_points,
const SIM_PositionPoints position_points,
const SIM_VelocityPoints velocity_points,
const std::vector< UT_DMatrix4 > &  transforms 
)
void SIM_API SIMwritePreviousPositionAttribute ( std::vector< SIM_GeometryCopy * > &  geometries_end,
const SIM_MergeMap merge_map,
const SIM_PositionPoints position_points 
)