vrecko
virtual reality framework
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
APSpacePartitioning::SNCH_Object Class Reference

#include <SNCH_Object.h>

Inheritance diagram for APSpacePartitioning::SNCH_Object:
APSpacePartitioning::SphereBVH_Object vrecko::SP_ObjectInterface vrecko::Ability vrecko::BaseClass

Classes

struct  InternalPointStruct
 
class  LMDStore
 
struct  LocalMinimumDistance
 
class  OneTri
 

Public Types

typedef std::vector
< LocalMinimumDistance
LMDvector
 

Public Member Functions

 SNCH_Object ()
 
 ~SNCH_Object ()
 
virtual void preInitialize (void)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
float getForce (void)
 
void setNCoeficient (double nc)
 
double getNCoeficient (void)
 
void setMaxForce (double mforce)
 
double getMaxForce (void)
 
virtual bool getCollisions (CollisionParams *params, COLLISION_POINTS_VECTOR **colPoints, unsigned long obj1ID, unsigned long obj2ID)
 
- Public Member Functions inherited from APSpacePartitioning::SphereBVH_Object
 SphereBVH_Object ()
 
 ~SphereBVH_Object ()
 
bool getCollisions (CollisionParams *params, COLLISION_POINTS_VECTOR **colPoints, unsigned long obj1ID, unsigned long obj2ID)
 
- Public Member Functions inherited from vrecko::SP_ObjectInterface
 SP_ObjectInterface ()
 
 ~SP_ObjectInterface ()
 
int getId ()
 usually one of the SP_OBJECT_INTERFACE_ID__* constants More...
 
virtual bool getCollisions (CollisionParams *params, COLLISION_POINTS_VECTOR **colPoints, unsigned long obj1ID, unsigned long obj2ID, float time)
 
- Public Member Functions inherited from vrecko::Ability
virtual ~Ability ()
 copy constructor More...
 
const std::string & getName () const
 Returns the ability name. More...
 
void setPluginName (const char *pName)
 Sets the plugin name. More...
 
const std::string & getPluginName (void) const
 Returns the plugin name. More...
 
const std::string & getID (void) const
 Returns ability the identification string. More...
 
void setID (const char *pID)
 (Internal usage, most people should not need to use it.) Sets the ability ID. More...
 
virtual void clean (void)
 
void setOwner (BaseClass *owner)
 (Internal usage, most people should not need to use it.) Sets ability owner. *l This method is called automatically in World::createAbility(), so one would (almost?) never want to use it directly. More...
 
BaseClassgetOwner (void)
 Returns the ability owner. More...
 
virtual ParameterVectorgetParameterVector (void)
 Return vector of the parameter description. More...
 
bool isUpdated (void)
 Set update flag. More...
 
virtual const std::string & getSenderString (void)
 Returns the identification string of sender. More...
 
- Public Member Functions inherited from vrecko::BaseClass
 BaseClass (const char *startingSenderString)
 The main constructor. More...
 
 BaseClass (BaseClass &bc)
 Copy constructor. Probably not really used. More...
 
virtual ~BaseClass ()
 Destructor. More...
 
virtual bool initialize (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *parameters=NULL)
 Core initialization. More...
 
virtual bool initializeFromString (const char *xmlString)
 Helper method that allows to initialize ability from a XML-formatted string. More...
 
virtual void update (void)
 This method is called periodically in case this instance is registered in Scheduler. More...
 
virtual
XERCES_CPP_NAMESPACE_QUALIFIER
DOMNode
saveXMLParameters (XERCES_CPP_NAMESPACE_QUALIFIER DOMDocument *)
 Save current setting into a XML node. More...
 
bool inputPresent (const std::string &name)
 Returns true if input pin (not request inputpin ) with given name is present. More...
 
bool outputPresent (const std::string &name)
 Returns true if output pin (not request output pin) with given name is present. More...
 
void addInputPin (InputPinBase *pin)
 Adds an input pin. More...
 
void removeInputPin (InputPinBase *pin)
 Removes an input pin. More...
 
void addOutputPin (OutputPinBase *pin)
 Adds an output pin. More...
 
void removeOutputPin (OutputPinBase *pin)
 Removes and output pin. More...
 
void addRequestInputPin (RequestInputPinBase *pin)
 Adds a request input pin. More...
 
void removeRequestInputPin (RequestInputPinBase *pin)
 Removes a request input pin. More...
 
void addRequestOutputPin (RequestOutputPinBase *pin)
 Adds a request output pin. More...
 
void removeRequestOutputPin (RequestOutputPinBase *pin)
 Removes a request output pin. More...
 
bool addNotification (BaseClass *receiver, unsigned long notificationTypes)
 Registers an observer that will be notified if a specific change occurs. More...
 
bool removeNotification (BaseClass *receiver, unsigned long notificationTypes=NOTIFICATION_ALL)
 Unregisters a previously registered observer. More...
 
virtual void processEvent (const std::string &input_name, VreckoMessage *pMessage)
 Internal method for processing the events. More...
 
virtual VreckoMessageprocessRequest (const std::string &request_input_name, VreckoMessage *pMessage)
 Internal method for processing the requests. More...
 
void reportError (const std::string &error)
 Print error message. More...
 
void setPriority (long int pr)
 Sets the priority. (Possible problems - read the full description for more info) More...
 
long int getPriority (void) const
 Returns current object priority. More...
 
void setAttribute (const std::string &attr_name, int attr_value)
 Sets an attribute value. More...
 
int getAttribute (const std::string &attr_name)
 Returns attribute value. More...
 
int getAttribute (const char *attr_name)
 Returns attribute value. More...
 
void deleteAttribute (const std::string &attr_name)
 Delete an attribute. More...
 
void setSceneFile (const std::string &sceneFileName)
 Set the name of the file this component was in (and possibly will be saved to). More...
 
const std::string & getSceneFile () const
 Get the name of the file this component was in. More...
 
virtual void postInitialize (void)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
virtual bool loadXMLParameters (XERCES_CPP_NAMESPACE_QUALIFIER DOMNode *)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
virtual bool loadXMLParameters (const char *xmlString)
 OBSOLETE METHOD, kept for backwards compatibility. More...
 
InputPinBasegetInputPin (const char *strName)
 Returns pointer to an input pin with specified name. More...
 
OutputPinBasegetOutputPin (const char *strName)
 Returns pointer to an output pin with specified name. More...
 
RequestInputPinBasegetRequestInputPin (const char *strName)
 Returns pointer to an request input pin with specified name. More...
 
RequestOutputPinBasegetRequestOutputPin (const char *strName)
 Returns pointer to an input pin with specified name. More...
 

Protected Types

enum  ProjectionIntersectionResult { NoIntersection, OriginalTriangleIntersection, ConeIntersection }
 
typedef __int64 LMD_HASH
 
typedef Sgi::hash_map
< LMD_HASH, LMDStore * > 
LMD_STORE_MAP
 
typedef OneTri TWO_TRIS [2]
 

Protected Member Functions

LMD_HASH calcLMDHash (unsigned long int id1, unsigned long int id2)
 
LMDStoregetLMDStore (LMD_HASH hash)
 
void globalSearch (SNCH_Object_Data *pOData1, SNCH_Object_Data *pOData2, LMDStore *lmds, CollisionParams *params)
 
void localSearch (SNCH_Object_Data *pOData1, SNCH_Object_Data *pOData2, LMDStore *lmds, CollisionParams *params, int lmdIndex, int dbgWriterGLIndex=0)
 
bool testNodeNorec (SNCH_Object_Data::STNodeSNCH *pSTNode1, SNCH_Object_Data *pOData1, osg::Matrix *transf1, SNCH_Object_Data::STNodeSNCH *pSTNode2, SNCH_Object_Data *pOData2, osg::Matrix *transf2, LMDStore *lmds, CollisionParams *params)
 
bool getObjectsTransformations (SNCH_Object_Data *pOData1, SNCH_Object_Data *pOData2, CollisionParams *params, osg::Matrix *transf1, osg::Matrix *transf2)
 
ProjectionIntersectionResult triProjectionIntersection (OneTri *points0, OneTri *points1, osg::Vec3 *outIntersectionPoint0=NULL, osg::Vec3 *outIntersectionPoint1=NULL, bool bPerformPretests=true)
 
bool triIntersects (OneTri *points0, OneTri *points1, osg::Vec3 *outPoint0Trans=NULL, osg::Vec3 *outPoint1Trans=NULL, osg::Vec3 *outPoint0Tri0Cross=NULL, osg::Vec3 *outPoint1Tri0Cross=NULL, bool *bOutPointsTriCrossValid=NULL)
 
float triDistance (OneTri *points0, OneTri *points1, osg::Vec3 *outPoint1Trans=NULL, osg::Vec3 *outPoint2Trans=NULL, unsigned short *closeFeature0=NULL, unsigned short *closeFeature1=NULL)
 
bool old_getTriLMD (SNCH_Object_Data::STNodeSNCH *pSTNode1, SNCH_Object_Data *pOData1, osg::Matrix *transf1, osg::Vec3 *center1, SNCH_Object_Data::STNodeSNCH *pSTNode2, SNCH_Object_Data *pOData2, osg::Matrix *transf2, osg::Vec3 *center2, osg::Vec3 point[2][7], unsigned long *index1, unsigned long *index2)
 

Protected Attributes

double ncoeficient
 
double max_force
 
LMD_STORE_MAP lmd_store
 
MTLock lmd_store_access
 
double reject_distance_for_surfaces
 
double reject_distance_for_BS
 
double angle_tolerance
 

Member Typedef Documentation

typedef __int64 APSpacePartitioning::SNCH_Object::LMD_HASH
protected
typedef OneTri APSpacePartitioning::SNCH_Object::TWO_TRIS[2]
protected

Member Enumeration Documentation

Enumerator
NoIntersection 
OriginalTriangleIntersection 
ConeIntersection 

Constructor & Destructor Documentation

SNCH_Object::SNCH_Object ( )
SNCH_Object::~SNCH_Object ( )

Member Function Documentation

LMD_HASH APSpacePartitioning::SNCH_Object::calcLMDHash ( unsigned long int  id1,
unsigned long int  id2 
)
inlineprotected
bool SNCH_Object::getCollisions ( CollisionParams params,
COLLISION_POINTS_VECTOR **  colPoints,
unsigned long  obj1ID,
unsigned long  obj2ID 
)
virtual
float SNCH_Object::getForce ( void  )
SNCH_Object::LMDStore * SNCH_Object::getLMDStore ( LMD_HASH  hash)
protected
double APSpacePartitioning::SNCH_Object::getMaxForce ( void  )
inline
double APSpacePartitioning::SNCH_Object::getNCoeficient ( void  )
inline
bool SNCH_Object::getObjectsTransformations ( SNCH_Object_Data pOData1,
SNCH_Object_Data pOData2,
CollisionParams params,
osg::Matrix *  transf1,
osg::Matrix *  transf2 
)
protected
void SNCH_Object::globalSearch ( SNCH_Object_Data pOData1,
SNCH_Object_Data pOData2,
LMDStore lmds,
CollisionParams params 
)
protected
void SNCH_Object::localSearch ( SNCH_Object_Data pOData1,
SNCH_Object_Data pOData2,
LMDStore lmds,
CollisionParams params,
int  lmdIndex,
int  dbgWriterGLIndex = 0 
)
protected
bool SNCH_Object::old_getTriLMD ( SNCH_Object_Data::STNodeSNCH pSTNode1,
SNCH_Object_Data pOData1,
osg::Matrix *  transf1,
osg::Vec3 *  center1,
SNCH_Object_Data::STNodeSNCH pSTNode2,
SNCH_Object_Data pOData2,
osg::Matrix *  transf2,
osg::Vec3 *  center2,
osg::Vec3  point[2][7],
unsigned long *  index1,
unsigned long *  index2 
)
protected
void SNCH_Object::preInitialize ( void  )
virtual

OBSOLETE METHOD, kept for backwards compatibility.

The preInitialize(), loadXMLParameters() and postInitialize() methods were replaced in 2011 by a single method initialize().

Reimplemented from APSpacePartitioning::SphereBVH_Object.

void APSpacePartitioning::SNCH_Object::setMaxForce ( double  mforce)
inline
void APSpacePartitioning::SNCH_Object::setNCoeficient ( double  nc)
inline
bool SNCH_Object::testNodeNorec ( SNCH_Object_Data::STNodeSNCH pSTNode1,
SNCH_Object_Data pOData1,
osg::Matrix *  transf1,
SNCH_Object_Data::STNodeSNCH pSTNode2,
SNCH_Object_Data pOData2,
osg::Matrix *  transf2,
LMDStore lmds,
CollisionParams params 
)
protected
float SNCH_Object::triDistance ( OneTri points0,
OneTri points1,
osg::Vec3 *  outPoint1Trans = NULL,
osg::Vec3 *  outPoint2Trans = NULL,
unsigned short *  closeFeature0 = NULL,
unsigned short *  closeFeature1 = NULL 
)
protected
bool SNCH_Object::triIntersects ( OneTri points0,
OneTri points1,
osg::Vec3 *  outPoint0Trans = NULL,
osg::Vec3 *  outPoint1Trans = NULL,
osg::Vec3 *  outPoint0Tri0Cross = NULL,
osg::Vec3 *  outPoint1Tri0Cross = NULL,
bool *  bOutPointsTriCrossValid = NULL 
)
protected
SNCH_Object::ProjectionIntersectionResult SNCH_Object::triProjectionIntersection ( OneTri points0,
OneTri points1,
osg::Vec3 *  outIntersectionPoint0 = NULL,
osg::Vec3 *  outIntersectionPoint1 = NULL,
bool  bPerformPretests = true 
)
protected

Member Data Documentation

double APSpacePartitioning::SNCH_Object::angle_tolerance
protected
LMD_STORE_MAP APSpacePartitioning::SNCH_Object::lmd_store
protected
MTLock APSpacePartitioning::SNCH_Object::lmd_store_access
protected
double APSpacePartitioning::SNCH_Object::max_force
protected
double APSpacePartitioning::SNCH_Object::ncoeficient
protected
double APSpacePartitioning::SNCH_Object::reject_distance_for_BS
protected
double APSpacePartitioning::SNCH_Object::reject_distance_for_surfaces
protected

The documentation for this class was generated from the following files: