Overte C++ Documentation
SimulationFlags.h
1 //
2 // SimulationFlags.h
3 // libraries/physics/src
4 //
5 // Created by Andrew Meadows 2015.10.14
6 // Copyright 2015 High Fidelity, Inc.
7 //
8 // Distributed under the Apache License, Version 2.0.
9 // See the accompanying file LICENSE or http://www.apache.org/licenses/LICENSE-2.0.html
10 //
11 
12 #ifndef hifi_SimulationFlags_h
13 #define hifi_SimulationFlags_h
14 
15 const uint8_t YIELD_SIMULATION_PRIORITY = 1;
16 const uint8_t VOLUNTEER_SIMULATION_PRIORITY = YIELD_SIMULATION_PRIORITY + 1;
17 const uint8_t RECRUIT_SIMULATION_PRIORITY = VOLUNTEER_SIMULATION_PRIORITY + 1;
18 
19 const uint8_t SCRIPT_GRAB_SIMULATION_PRIORITY = 128;
20 const uint8_t SCRIPT_POKE_SIMULATION_PRIORITY = SCRIPT_GRAB_SIMULATION_PRIORITY - 1;
21 
22 const uint8_t PERSONAL_SIMULATION_PRIORITY = SCRIPT_GRAB_SIMULATION_PRIORITY;
23 const uint8_t AVATAR_ENTITY_SIMULATION_PRIORITY = PERSONAL_SIMULATION_PRIORITY;
24 
25 
26 namespace Simulation {
27  const uint32_t DIRTY_POSITION = 0x0001;
28  const uint32_t DIRTY_ROTATION = 0x0002;
29  const uint32_t DIRTY_LINEAR_VELOCITY = 0x0004;
30  const uint32_t DIRTY_ANGULAR_VELOCITY = 0x0008;
31  const uint32_t DIRTY_MASS = 0x0010;
32  const uint32_t DIRTY_COLLISION_GROUP = 0x0020;
33  const uint32_t DIRTY_MOTION_TYPE = 0x0040;
34  const uint32_t DIRTY_SHAPE = 0x0080;
35  const uint32_t DIRTY_LIFETIME = 0x0100;
36  const uint32_t DIRTY_UPDATEABLE = 0x0200;
37  const uint32_t DIRTY_MATERIAL = 0x00400;
38  const uint32_t DIRTY_PHYSICS_ACTIVATION = 0x0800; // should activate object in physics engine
39  const uint32_t DIRTY_SIMULATOR_ID = 0x1000; // the simulatorID has changed
40  const uint32_t DIRTY_SIMULATION_OWNERSHIP_PRIORITY = 0x2000; // our own bid priority has changed
41 
42  // bits 17-32 are reservied for special flags
43  const uint32_t SPECIAL_FLAG_NO_BOOTSTRAPPING = 0x10000;
44  const uint32_t SPECIAL_FLAG_IN_PHYSICS_SIMULATION = 0x20000;
45 
46  const uint32_t DIRTY_TRANSFORM = DIRTY_POSITION | DIRTY_ROTATION;
47  const uint32_t DIRTY_VELOCITIES = DIRTY_LINEAR_VELOCITY | DIRTY_ANGULAR_VELOCITY;
48  const uint32_t SPECIAL_FLAGS_MASK = SPECIAL_FLAG_NO_BOOTSTRAPPING | SPECIAL_FLAG_IN_PHYSICS_SIMULATION;
49 
50  const uint32_t DIRTY_FLAGS_MASK = DIRTY_POSITION |
51  DIRTY_ROTATION |
52  DIRTY_LINEAR_VELOCITY |
53  DIRTY_ANGULAR_VELOCITY |
54  DIRTY_MASS |
55  DIRTY_COLLISION_GROUP |
56  DIRTY_MOTION_TYPE |
57  DIRTY_SHAPE |
58  DIRTY_LIFETIME |
59  DIRTY_UPDATEABLE |
60  DIRTY_MATERIAL |
61  DIRTY_PHYSICS_ACTIVATION |
62  DIRTY_SIMULATOR_ID |
63  DIRTY_SIMULATION_OWNERSHIP_PRIORITY;
64 };
65 
66 #endif // hifi_SimulationFlags_h