HDK
Main Page
Related Pages
Modules
Namespaces
Classes
Files
Examples
File List
File Members
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Friends
Macros
Groups
Pages
SIM_RelationshipCollide.h
Go to the documentation of this file.
1
/*
2
* PROPRIETARY INFORMATION. This software is proprietary to
3
* Side Effects Software Inc., and is not to be reproduced,
4
* transmitted, or disclosed in any way without written permission.
5
*
6
*/
7
8
#ifndef __SIM_RelationshipCollide_h__
9
#define __SIM_RelationshipCollide_h__
10
11
#include "
SIM_API.h
"
12
#include "
SIM_RelationshipData.h
"
13
#include "
SIM_OptionsUser.h
"
14
15
class
SIM_Collider
;
16
17
/// This class defines a relationship between objects that need to perform
18
/// collision detection.
19
class
SIM_API
SIM_RelationshipCollide
:
public
SIM_RelationshipData
,
20
public
SIM_OptionsUser
21
{
22
public
:
23
/// The priority parameter is used when two or more collision
24
/// relationships apply to the same pair of objects. In that case,
25
/// the collision relationship with the higher priority is used to
26
/// determine what collider to use for those objects. An example of
27
/// this would be where several cloth objects are set up in a mutual
28
/// collision relationship, but the user doesn't want to do any
29
/// self-collision detection. In this case the mutual collision
30
/// data between all the cloth objects would be given a low priority.
31
/// Then each cloth object would have a high priority collision
32
/// relationship with just itself, and specifying a SIM_ColliderNone
33
/// as the collider.
34
GETSET_DATA_FUNCS_I
(
SIM_NAME_PRIORITY
, Priority);
35
36
/// Gets the const SIM_Collider subdata that defines the collision
37
/// detection method to use. This data is found by returning the first
38
/// SIM_Collider subdata attached to this data. If no SIM_Collider
39
/// subdata is attached to this relationship, the standard method
40
/// of finding a proper default collider for a pair of objects is
41
/// used. For information on this, see the SIM_ColliderLabel class.
42
const
SIM_Collider
*getCollider()
const
;
43
44
protected
:
45
explicit
SIM_RelationshipCollide
(
const
SIM_DataFactory
*factory);
46
~
SIM_RelationshipCollide
()
override
;
47
48
private
:
49
static
const
SIM_DopDescription
*getCollideDopDescription();
50
51
DECLARE_STANDARD_GETCASTTOTYPE
();
52
DECLARE_DATAFACTORY
(
SIM_RelationshipCollide
,
53
SIM_RelationshipData
,
54
"Collide Relationship"
,
55
getCollideDopDescription());
56
};
57
58
#endif
59
DECLARE_STANDARD_GETCASTTOTYPE
#define DECLARE_STANDARD_GETCASTTOTYPE()
Definition:
SIM_DataUtils.h:50
SIM_NAME_PRIORITY
#define SIM_NAME_PRIORITY
Definition:
SIM_Names.h:174
SIM_RelationshipCollide
Definition:
SIM_RelationshipCollide.h:19
DECLARE_DATAFACTORY
#define DECLARE_DATAFACTORY(DataClass, SuperClass, Description, DopParms)
Definition:
SIM_DataUtils.h:63
SIM_API.h
SIM_Collider
Definition:
SIM_Collider.h:34
SIM_RelationshipData
Definition:
SIM_RelationshipData.h:17
SIM_DopDescription
Definition:
SIM_DopDescription.h:23
SIM_DataFactory
Definition:
SIM_DataFactory.h:33
SIM_OptionsUser
Definition:
SIM_OptionsUser.h:23
GETSET_DATA_FUNCS_I
#define GETSET_DATA_FUNCS_I(DataName, FuncName)
Definition:
SIM_OptionsUser.h:303
SIM_RelationshipData.h
SIM_OptionsUser.h
SIM_API
#define SIM_API
Definition:
SIM_API.h:12
SIM
SIM_RelationshipCollide.h
Generated on Tue Dec 17 2024 03:41:46 for HDK by
1.8.6