Spinning Topp Logo BlackTopp Studios
inc
physicsenumerations.h
1 // © Copyright 2010 - 2016 BlackTopp Studios Inc.
2 /* This file is part of The Mezzanine Engine.
3 
4  The Mezzanine Engine is free software: you can redistribute it and/or modify
5  it under the terms of the GNU General Public License as published by
6  the Free Software Foundation, either version 3 of the License, or
7  (at your option) any later version.
8 
9  The Mezzanine Engine is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with The Mezzanine Engine. If not, see <http://www.gnu.org/licenses/>.
16 */
17 /* The original authors have included a copy of the license specified above in the
18  'Docs' folder. See 'gpl.txt'
19 */
20 /* We welcome the use of the Mezzanine engine to anyone, including companies who wish to
21  Build professional software and charge for their product.
22 
23  However there are some practical restrictions, so if your project involves
24  any of the following you should contact us and we will try to work something
25  out:
26  - DRM or Copy Protection of any kind(except Copyrights)
27  - Software Patents You Do Not Wish to Freely License
28  - Any Kind of Linking to Non-GPL licensed Works
29  - Are Currently In Violation of Another Copyright Holder's GPL License
30  - If You want to change our code and not add a few hundred MB of stuff to
31  your distribution
32 
33  These and other limitations could cause serious legal problems if you ignore
34  them, so it is best to simply contact us or the Free Software Foundation, if
35  you have any questions.
36 
37  Joseph Toppi - toppij@gmail.com
38  John Blackwood - makoenergy02@gmail.com
39 */
40 #ifndef _physicsenumerations_h
41 #define _physicsenumerations_h
42 ///////////////////////////////////////////////////////////////////////////////
43 //Any global enumerations shared between multiple classes in the Physics namespace is to be declared here.
44 ///////////////////////////////////////
45 
46 namespace Mezzanine
47 {
48  namespace Physics
49  {
50  /// @brief This is used by physics proxies to monitor and set their physics activation.
52  {
53  AS_Active = 1,
54  AS_Island_Sleeping = 2,
55  AS_Wants_Deactivation = 3,
56  AS_DisableDeactivation = 4,
57  AS_DisableSimulation = 5
58  };
59 
60  /// @brief This is used by physics proxies to help determine the behavior of it's anistropic friction behavior.
61  /// @details See the documentation on the PhysicsProxy class for more details.
63  {
64  AFF_AnisotropicFrictionDisabled = 0,
65  AFF_AnisotropicFriction = 1,
66  AFF_AnisotropicRollingFriction = 2
67  };
68 
69  /// @brief These are the various filters that can be applied to all physics accelerated world objects to limit what they collide with.
70  /// @details You can create your own groups on top of the ones that exist here, but they have to be powers of 2, and not overlap with
71  /// any of the existing groups defined here. Simply pass in the Whole where appropriate.
73  {
74  // Standard base filters
75  CF_GenericFilter = 1,
76  CF_StaticFilter = 2,
77  CF_KinematicFilter = 4,
78  CF_DebrisFilter = 8,
79  CF_SensorFilter = 16,
80  CF_CharacterFilter = 32,
81  CF_AllFilter = -1,
82 
83  // Non-Standard Filters
84  CF_UserFilter1 = 64,
85  CF_UserFilter2 = 128,
86  CF_UserFilter3 = 256,
87  CF_UserFilter4 = 512
88  };
89 
90  /// @brief This is used by physics proxies to help determine collision response behavior of a proxy.
92  {
93  CF_StaticObject = 1,
94  CF_KinematicObject = 2,
95  CF_NoContactResponse = 4,
96  CF_CustomMaterialCallback = 8,
97  CF_CharacterObject = 16,
98  CF_DisableVisualizeObject = 32,
99  CF_DisableSPUCollisionProcessing = 64
100  };
101 
102  /// @brief Enum specifying the state change occuring in the collision.
104  {
105  Col_Begin,
106  Col_Contacts_Updated,
107  Col_End
108  };
109 
110  /// @brief Enum specifying what kind of collision this class is storing.
112  {
113  Col_Actor_Actor, ///< Specifies a collision between two Actors.
114  Col_Actor_AreaEffect, ///< Specifies a collision between an Actor and an AreaRffect.
115  Col_Actor_Debris, ///< Specifies a collision between an Actor and a Debris.
116  Col_Actor_Terrain, ///< Specifies a collision between an Actor and some Terrain.
117  Col_AreaEffect_AreaEffect, ///< Specifies a collision between two AreaEffects.
118  Col_AreaEffect_Debris, ///< Specifies a collision between an AreaEffect and a Debris.
119  Col_AreaEffect_Terrain, ///< Specifies a collision between an AreaEffect and some Terrain.
120  Col_Debris_Debris, ///< Specifies a collision between two Debris.
121  Col_Debris_Terrain ///< Specifies a collision between a Debris and some Terrain.
122  };
123 
124  /// @brief This is a collection of flags designed to describe what to draw when the Debug Drawer is enabled.
125  /// @details Most of these options work, with the exception of text-based modes and contact point modes.
127  {
128  DDM_NoDebug = 0,
129  DDM_DrawWireframe = 1,
130  DDM_DrawAABB = 2,
131  DDM_DrawFeaturesText = 4,
132  DDM_DrawContactPoints = 8,
133  DDM_NoDeactivation = 16,
134  DDM_NoHelpText = 32,
135  DDM_DrawText = 64,
136  DDM_ProfileTimings = 128,
137  DDM_EnableSatComparison = 256,
138  DDM_DisableBulletLCP = 512,
139  DDM_EnableCCD = 1024,
140  DDM_DrawConstraints = 2048,
141  DDM_DrawConstraintLimits = 4096,
142  DDM_FastWireframe = 8192,
143  DDM_DrawNormals = 16384,
144 
145  DDM_All = -1
146  };
147 
148  /// @brief This is used by the PhysicsProxy child classes to describe which proxy type they are.
150  {
151  PT_Rigid = 1,
152  PT_Soft = 2,
153  PT_Ghost = 3
154  };
155  }//physics
156 }//Mezzanine
157 
158 #endif
Specifies a collision between an AreaEffect and some Terrain.
Specifies a collision between two AreaEffects.
CollisionFlags
This is used by physics proxies to help determine collision response behavior of a proxy...
Specifies a collision between an Actor and a Debris.
CollisionFilter
These are the various filters that can be applied to all physics accelerated world objects to limit w...
ActivationState
This is used by physics proxies to monitor and set their physics activation.
Specifies a collision between two Actors.
Specifies a collision between an Actor and some Terrain.
ProxyType
This is used by the PhysicsProxy child classes to describe which proxy type they are.
Specifies a collision between two Debris.
CollisionType
Enum specifying what kind of collision this class is storing.
Specifies a collision between an Actor and an AreaRffect.
CollisionState
Enum specifying the state change occuring in the collision.
Specifies a collision between an AreaEffect and a Debris.
The bulk of the engine components go in this namspace.
Definition: actor.cpp:56
Specifies a collision between a Debris and some Terrain.
DebugDrawMode
This is a collection of flags designed to describe what to draw when the Debug Drawer is enabled...
AnisotropicFrictionFlags
This is used by physics proxies to help determine the behavior of it's anistropic friction behavior...