Conscience Core
CscWorldObject.h
Go to the documentation of this file.
1 //
2 // CscEnvironmentObject.h
3 // ConscienceRobotManager
4 //
5 // Created by Conscience_Hazar on 05/03/2019.
6 // Copyright © 2019 IliesZaoui. All rights reserved.
7 //
8 
9 #ifndef CscWorldObject_h
10 #define CscWorldObject_h
11 
13 #include "Axiomes/Csc2dTypes.h"
14 
17 
18 using std::vector; using std::string;
19 
20 
22  NoFlag = 0,
23  Reached = 1
24 };
25 
27 public:
28 
29  int getModelId() const {
30  return modelId;
31  }
32 
33  const CscPoint3d * getSpeed() const;
34 
35  void setSpeed(float x, float y, float z);
36 
39 
43  static bool isFirearm(const int & objectModelId) {
44  return objectModelId == 51 /* handgun */ || objectModelId == 105 /* rifle */;
45  }
46 
50  static bool isKnife(const int & objectModelId) {
51  return objectModelId == 76 || objectModelId == 50 /* official knife id */;
52  }
53 
57  static bool isMotorizedVehicle(const int & objectModelId) {
58  const bool isCar = objectModelId == 2;
59  const bool isBus = objectModelId == 5;
60  const bool isMotobike = objectModelId == 3;
61  const bool isTruck = objectModelId == 7;
62 
63  return isCar || isBus || isMotobike || isTruck;
64  }
65 
69  static bool isUnmotorizedVehicle(const int & objectModelId) {
70  return objectModelId == 1 /* bicycle */;
71  }
72 
74  int modelId,
75  string name,
76  CscPoint3d * positionIn,
77  CscPoint3d * rotationIn,
79  float mass = 5.0,
80  vector<CscWorldElementPart *> * parts = nullptr,
81  vector<CscPoint3d *> * positions = nullptr,
82  vector<CscPoint3d *> * normals = nullptr,
83  vector<CscPolygon *> * polygons = nullptr,
84  vector<const CscLocationTag *> * locationTags = nullptr,
85  float minX = 0,
86  float minY = 0,
87  float minZ = 0,
88  float depth = 0,
89  float height = 0,
90  float width = 0
91  );
92 
93  CscSize3d getDimensions() const override;
94 
95 private:
96  const int modelId;
97  CscPoint3d * speed;
98 };
99 
100 #endif /* CscWorldObject_h */
101 
102 
conscience_core::axiomes::CscPoint3d
The CscPoint3d class represents a point in three-dimensional space. It is primarily used to denote a ...
Definition: Csc3dTypes.h:24
CscWorldElement.h
CscWorldElement::height
float height
Definition: CscWorldElement.h:104
Reached
@ Reached
Definition: CscWorldObject.h:23
CscWorldObject
Definition: CscWorldObject.h:26
CscWorldObject::isUnmotorizedVehicle
static bool isUnmotorizedVehicle(const int &objectModelId)
Definition: CscWorldObject.h:69
CscWorldObjectFlag
CscWorldObjectFlag
Definition: CscWorldObject.h:21
NoFlag
@ NoFlag
Definition: CscWorldObject.h:22
CscWorldObject::getDimensions
CscSize3d getDimensions() const override
Definition: CscWorldObject.cpp:49
CscWorldElement::width
float width
Definition: CscWorldElement.h:105
CscWorldObject::isFirearm
static bool isFirearm(const int &objectModelId)
Definition: CscWorldObject.h:43
CscWorldObject::motion
CscMotionType motion
Definition: CscWorldObject.h:38
CscWorldObject::isMotorizedVehicle
static bool isMotorizedVehicle(const int &objectModelId)
Definition: CscWorldObject.h:57
CscWorldElement::locationTags
vector< const CscLocationTag * > * locationTags
Definition: CscWorldElement.h:231
CscWorldObject::CscWorldObject
CscWorldObject(int modelId, string name, CscPoint3d *positionIn, CscPoint3d *rotationIn, CscPhysicsType physicsType=CscPhysicsType::BOUNDING_BOX, float mass=5.0, vector< CscWorldElementPart * > *parts=nullptr, vector< CscPoint3d * > *positions=nullptr, vector< CscPoint3d * > *normals=nullptr, vector< CscPolygon * > *polygons=nullptr, vector< const CscLocationTag * > *locationTags=nullptr, float minX=0, float minY=0, float minZ=0, float depth=0, float height=0, float width=0)
Definition: CscWorldObject.cpp:11
CscWorldElement::minY
float minY
Definition: CscWorldElement.h:106
CscWorldObject::setSpeed
void setSpeed(float x, float y, float z)
Definition: CscWorldObject.cpp:61
CscWorldElement::mass
float mass
Definition: CscWorldElement.h:107
CscSequenceSortStrategy.h
CscWorldElement::minX
float minX
Definition: CscWorldElement.h:106
BOUNDING_BOX
@ BOUNDING_BOX
Definition: CscPhysicsType.h:22
CscWorldObject::flag
CscWorldObjectFlag flag
Definition: CscWorldObject.h:37
CscMotionType.h
CscWorldObject::isKnife
static bool isKnife(const int &objectModelId)
Definition: CscWorldObject.h:50
CscWorldObject::getModelId
int getModelId() const
Definition: CscWorldObject.h:29
CscPhysicsType
CscPhysicsType
Definition: CscPhysicsType.h:12
CscWorldElement
Definition: CscWorldElement.h:24
CscWorldObject::getSpeed
const CscPoint3d * getSpeed() const
Definition: CscWorldObject.cpp:57
Csc2dTypes.h
CscMotionType
CscMotionType
Definition: CscMotionType.h:12
CscWorldElement::depth
float depth
Definition: CscWorldElement.h:103
MotionTypeNormal
@ MotionTypeNormal
Definition: CscMotionType.h:13
CscWorldElement::minZ
float minZ
Definition: CscWorldElement.h:106