Overte C++ Documentation
EntityItemPropertiesDefaults.h
1 //
2 // EntityItemPropertiesDefaults.h
3 // libraries/entities/src
4 //
5 // Created by Andrew Meadows on 2015.01.12
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_EntityItemPropertiesDefaults_h
13 #define hifi_EntityItemPropertiesDefaults_h
14 
15 #include <stdint.h>
16 
17 #include <glm/glm.hpp>
18 
19 #include <NumericalConstants.h>
20 
21 // There is a minor performance gain when comparing/copying an existing glm::vec3 rather than
22 // creating a new one on the stack so we declare the ZERO_VEC3 constant as an optimization.
23 const glm::vec3 ENTITY_ITEM_ZERO_VEC3 = glm::vec3(0.0f);
24 const glm::vec3 ENTITY_ITEM_ONE_VEC3 = glm::vec3(1.0f);
25 const glm::vec3 ENTITY_ITEM_HALF_VEC3 = glm::vec3(0.5f);
26 
27 const QVector<glm::vec3> ENTITY_ITEM_DEFAULT_EMPTY_VEC3_QVEC = QVector<glm::vec3>();
28 
29 const bool ENTITY_ITEM_DEFAULT_LOCKED = false;
30 const QString ENTITY_ITEM_DEFAULT_USER_DATA = QString("");
31 const QString ENTITY_ITEM_DEFAULT_PRIVATE_USER_DATA = QString("");
32 const QUuid ENTITY_ITEM_DEFAULT_SIMULATOR_ID = QUuid();
33 
34 const glm::u8vec3 ENTITY_ITEM_DEFAULT_COLOR = { 255, 255, 255 };
35 const float ENTITY_ITEM_DEFAULT_ALPHA = 1.0f;
36 const bool ENTITY_ITEM_DEFAULT_VISIBLE = true;
37 const bool ENTITY_ITEM_DEFAULT_VISIBLE_IN_SECONDARY_CAMERA = true;
38 const bool ENTITY_ITEM_DEFAULT_CAN_CAST_SHADOW { true };
39 
40 const QString ENTITY_ITEM_DEFAULT_SCRIPT = QString("");
41 const quint64 ENTITY_ITEM_DEFAULT_SCRIPT_TIMESTAMP = 0;
42 const QString ENTITY_ITEM_DEFAULT_SERVER_SCRIPTS = QString("");
43 const QString ENTITY_ITEM_DEFAULT_COLLISION_SOUND_URL = QString("");
44 
45 const float ENTITY_ITEM_MIN_REGISTRATION_POINT = 0.0f;
46 const float ENTITY_ITEM_MAX_REGISTRATION_POINT = 1.0f;
47 const glm::vec3 ENTITY_ITEM_DEFAULT_REGISTRATION_POINT = ENTITY_ITEM_HALF_VEC3; // center
48 
49 const float ENTITY_ITEM_IMMORTAL_LIFETIME = -1.0f;
50 const float ENTITY_ITEM_DEFAULT_LIFETIME = ENTITY_ITEM_IMMORTAL_LIFETIME;
51 
52 const glm::vec3 ENTITY_ITEM_DEFAULT_POSITION = ENTITY_ITEM_ZERO_VEC3;
53 const glm::quat ENTITY_ITEM_DEFAULT_ROTATION;
54 const float ENTITY_ITEM_DEFAULT_WIDTH = 0.1f;
55 const float ENTITY_ITEM_MIN_DIMENSION = 0.001f;
56 const glm::vec3 ENTITY_ITEM_DEFAULT_DIMENSIONS = glm::vec3(ENTITY_ITEM_DEFAULT_WIDTH);
57 const float ENTITY_ITEM_DEFAULT_VOLUME = ENTITY_ITEM_DEFAULT_WIDTH * ENTITY_ITEM_DEFAULT_WIDTH * ENTITY_ITEM_DEFAULT_WIDTH;
58 const float ENTITY_ITEM_MIN_VOLUME = ENTITY_ITEM_MIN_DIMENSION * ENTITY_ITEM_MIN_DIMENSION * ENTITY_ITEM_MIN_DIMENSION;
59 
60 const float ENTITY_ITEM_MAX_DENSITY = 100000.0f; // kg/m^3 more than 5 times density of tungsten.
61 const float ENTITY_ITEM_MIN_DENSITY = 0.1f; // kg/m^3 ten times less than air density.
62 const float ENTITY_ITEM_DEFAULT_DENSITY = 1000.0f; // density of water.
63 const float ENTITY_ITEM_DEFAULT_MASS = ENTITY_ITEM_DEFAULT_DENSITY * ENTITY_ITEM_DEFAULT_VOLUME;
64 
65 const glm::vec3 ENTITY_ITEM_DEFAULT_VELOCITY = ENTITY_ITEM_ZERO_VEC3;
66 const glm::vec3 ENTITY_ITEM_DEFAULT_ANGULAR_VELOCITY = ENTITY_ITEM_ZERO_VEC3;
67 const glm::vec3 ENTITY_ITEM_DEFAULT_GRAVITY = ENTITY_ITEM_ZERO_VEC3;
68 const glm::vec3 ENTITY_ITEM_DEFAULT_ACCELERATION = ENTITY_ITEM_ZERO_VEC3;
69 const float ENTITY_ITEM_MIN_DAMPING = 0.0f;
70 const float ENTITY_ITEM_MAX_DAMPING = 1.0f;
71 const float ENTITY_ITEM_DEFAULT_DAMPING = 0.39347f; // approx timescale = 2.0 sec (see damping timescale formula in header)
72 const float ENTITY_ITEM_DEFAULT_ANGULAR_DAMPING = 0.39347f; // approx timescale = 2.0 sec (see damping timescale formula in header)
73 
74 const float ENTITY_ITEM_MIN_RESTITUTION = 0.0f;
75 const float ENTITY_ITEM_MAX_RESTITUTION = 0.99f;
76 const float ENTITY_ITEM_DEFAULT_RESTITUTION = 0.5f;
77 
78 const float ENTITY_ITEM_MIN_FRICTION = 0.0f;
79 const float ENTITY_ITEM_MAX_FRICTION = 10.0f;
80 const float ENTITY_ITEM_DEFAULT_FRICTION = 0.5f;
81 
82 const bool ENTITY_ITEM_DEFAULT_COLLISIONLESS = false;
83 const bool ENTITY_ITEM_DEFAULT_DYNAMIC = false;
84 const bool ENTITY_ITEM_DEFAULT_BILLBOARDED = false;
85 
86 const QString ENTITY_ITEM_DEFAULT_NAME = QString("");
87 
88 const uint16_t ENTITY_ITEM_DEFAULT_DPI = 30;
89 
90 const QUuid ENTITY_ITEM_DEFAULT_LAST_EDITED_BY = QUuid();
91 
92 const bool ENTITY_ITEM_DEFAULT_RELAY_PARENT_JOINTS = false;
93 
94 const bool ENTITY_ITEM_DEFAULT_CLONEABLE = false;
95 const float ENTITY_ITEM_DEFAULT_CLONE_LIFETIME = 300.0f;
96 const int ENTITY_ITEM_DEFAULT_CLONE_LIMIT = 0;
97 const bool ENTITY_ITEM_DEFAULT_CLONE_DYNAMIC = false;
98 const bool ENTITY_ITEM_DEFAULT_CLONE_AVATAR_ENTITY = false;
99 const QUuid ENTITY_ITEM_DEFAULT_CLONE_ORIGIN_ID = QUuid();
100 
101 #endif // hifi_EntityItemPropertiesDefaults_h