Elaztek Developer Hub
Blamite Game Engine - blam!  00423.10.27.24.0533.blamite
The core library for the Blamite Game Engine.
world_objects.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <string>
4 #include <vector>
5 
6 #include <Strings/components/classes/events/events.h>
7 #include <Strings/components/classes/vector/vector.h>
9 
10 #ifdef BLAM_EXPORTS
11 #define BLAM_EXT_API __declspec(dllexport)
12 #else
13 #define BLAM_EXT_API __declspec(dllimport)
14 #endif
15 
16 #define WORLD_OBJECT_USER_KEY "WOBJ"
17 
18 namespace Ogre
19 {
20  class ManualObject;
21  class SceneNode;
22  class HlmsDatablock;
23  class Aabb;
24  class MovableObject;
25 }
26 
27 class BlamWorldState;
28 class BlamTagData;
29 class TickEvent;
31 class BlamWorldObject;
33 
35 {
36  QF_ENGINE_GIZMO = 1 << 1,
42  QF_USER_0 = 1 << 7,
43  QF_USER_1 = 1 << 8,
44  QF_USER_2 = 1 << 9,
45  QF_USER_3 = 1 << 10,
46  QF_USER_4 = 1 << 11,
47  QF_USER_5 = 1 << 12,
48  QF_USER_6 = 1 << 13,
49  QF_USER_7 = 1 << 14,
50  QF_USER_8 = 1 << 15,
51  QF_USER_9 = 1 << 16,
52  QF_USER_10 = 1 << 17,
53  QF_USER_11 = 1 << 18,
54  QF_USER_12 = 1 << 19,
55  QF_USER_13 = 1 << 20,
56  QF_USER_14 = 1 << 21,
57  QF_USER_15 = 1 << 22,
58  QF_USER_16 = 1 << 23,
59  QF_USER_17 = 1 << 24,
60  QF_USER_18 = 1 << 25,
61  QF_USER_19 = 1 << 26,
62  QF_USER_20 = 1 << 27,
63  QF_USER_21 = 1 << 28,
64  QF_USER_22 = 1 << 29,
65  QF_USER_23 = 1 << 30,
66  QF_USER_24 = 1 << 31,
67 
68  QF_NONE = 0,
69  QF_ANY = 0xFFFFFFFF,
71 };
72 
74 {
75  float distance = 0.0f;
76  BlamWorldObject* object = nullptr;
77 };
78 
80 {
81  Tag,
82  Primitive,
88  Group,
91  GizmoScale,
92  GizmoGrid,
96 };
97 
99 {
100  Solid,
101  Wireframe,
102  Both
103 };
104 
106 {
107  NONE,
108  TRANSLATE,
109  ROTATE,
110  SCALE
111 };
112 
120 {
121 private:
122  bool needs_name_update = false;
123  bool needs_hidden_update = false;
124  bool needs_position_update = false;
125  bool needs_rotation_update = false;
126  bool next_rotate_local_axes = false;
127  bool needs_scale_update = false;
128 
129  BlamVector3 position = BlamVector3();
130  BlamVector3 rotation = BlamVector3();
131  BlamVector3 scale = { 1, 1, 1 };
132  BlamVector3 scale_modifier = { 1, 1, 1 };
133  bool hidden = false;
134  std::string name = "";
135 
136 public:
137  uint64_t id = 0;
138 
139  std::string description = "";
140  int editor_folder_id = 0;
141 
142  BlamWorldState* world = nullptr;
144 
146 
147  Ogre::SceneNode* scene_node = nullptr;
148 
156 
158  virtual ~BlamWorldObject();
159 
163  virtual void Render();
164 
165  virtual void ShowImGuiEditControls();
166 
167  uint64_t GetID();
168  Ogre::SceneNode* GetParentSceneNode();
169 
170  BlamVector3 GetRotation();
171  void SetRotation(BlamVector3 _rotation, bool local_axes = false);
172  void SetRotation(float x, float y, float z, bool local_axes = false);
173  void SetRotation(BlamAxis axis, float amount, bool local_axes = false);
174  BlamVector3 GetPosition();
175  void SetPosition(BlamVector3 position);
176  void SetPosition(float x, float y, float z);
177  BlamVector3 GetScale();
178  void SetScale(BlamVector3 scale);
179  void SetScale(float x, float y, float z);
180  BlamVector3 GetScaleModifier();
181  void SetScaleModifier(BlamVector3 scale);
182  void SetScaleModifier(float x, float y, float z);
183  bool GetHidden();
184  void SetHidden(bool hidden);
185  std::string GetName();
186  void SetName(std::string name);
187 
188  virtual void OnMouseHoverEnter();
189  virtual void OnMouseHoverExit();
190 
191  virtual void OnMouseMove(MouseMoveEvent* event);
192  virtual void OnMouseClick(MouseClickEvent* event);
193  virtual void OnMouseUnclick(MouseUnclickEvent* event);
194 };
195 
197 {
198 private:
199  std::vector<BlamWorldObject*> children = std::vector<BlamWorldObject*>();
200 
201 public:
202  void AddObject(BlamWorldObject* object);
203 
204  void RemoveObject(uint64_t object_id);
205 
206  int GetObjectCount();
207 
208  bool HasObject(uint64_t object_id);
209 
210  BlamWorldObject* GetObjectAtIndex(int index);
211 
212  BlamWorldObject* GetObjectById(uint64_t object_id);
213 
214  void Render() override;
215 };
216 
224 {
225 private:
226  int last_poke_key = 0;
227  BlamTagData* old_tag_data = nullptr;
228  bool valid_tag = false;
229  std::string error_text = "";
230  bool needs_recreate = true;
231 
232  BlamWorldObject_Primitive* bounds_object = nullptr;
233  BlamWorldObject_GizmoTransform* transform = nullptr;
234 
235  void RecreateNodeObjects();
236 
237 public:
238  BlamTagData* tag_data = nullptr;
239  Ogre::MovableObject* ogre_item = nullptr;
240 
247  BlamWorldObject_Tag(BlamTagData* _tag_data, BlamWorldState* _world);
248  BlamWorldObject_Tag(BlamTagData* _tag_data, BlamWorldObject* _parent);
250 
251  void Render();
252 
253  bool ValidateTagData();
254  bool IsValidTag();
255  std::string GetErrorText();
256  void SetTransformEnabled(bool enabled);
257 };
258 
269 {
270 private:
271  bool cached_cast_shadows = true;
272 
273  BlamColor cached_color = BlamColor(255, 255, 255);
274  BlamColor cached_color_wireframe = BlamColor(255, 255, 255);
276  uint32_t query_mask = BlamQueryFlags::QF_ANY;
277  bool cached_show_backfaces = false;
278  bool needs_rebuild = false;
279  bool enable_depth_check = true;
280  bool depth_check_needs_update = false;
281  bool query_mask_needs_update = true;
282 
283 protected:
284  bool custom_datablock = false;
285  bool custom_wireframe_datablock = false;
286 
287  virtual void CreateManualObject();
288 
289 public:
290  Ogre::ManualObject* manual_object = nullptr;
291  Ogre::HlmsDatablock* datablock = nullptr;
292  Ogre::HlmsDatablock* datablock_wireframe = nullptr;
293 
294  BlamColor color = BlamColor(255, 255, 255);
295  BlamColor color_wireframe = BlamColor(255, 255, 255);
297  bool show_backfaces = false;
298  bool cast_shadows = true;
299 
309 
310  void Render() override;
311  void SetCustomDatabablock(Ogre::HlmsDatablock* datablock, bool wireframe);
312  void ShowImGuiEditControls() override;
313 
314  void MarkForRebuild();
315 
316  void SetDepthCheckEnabled(bool enable);
317 
318  void SetQueryMask(uint32_t mask);
319 };
320 
322 {
323 private:
324  void CreateManualObject() override;
325 
326 public:
329 };
330 
332 {
333 private:
334  void CreateManualObject() override;
335 
336 private:
337  float cached_radius_0 = 1.0f;
338  float cached_radius_1 = 1.0f;
339  int cached_resolution = 5;
340  int cached_vertical_resolution = 5;
341  int cached_lines_x = 5;
342  int cached_lines_y = 5;
343 
344 public:
345  float radius_0 = 1.0f;
346  float radius_1 = 1.0f;
347  int resolution = 5;
348  int vertical_resolution = 5;
349  int lines_x = 5;
350  int lines_y = 5;
351 
352  std::vector<BlamVector3> vertices = std::vector<BlamVector3>();
353 
356 
357  void Render() override;
358  void ShowImGuiEditControls() override;
359 };
360 
362 {
363 private:
364  void CreateManualObject() override;
365 
366 private:
367  float cached_radius_0 = 1.0f;
368  float cached_radius_1 = 1.0f;
369  int cached_resolution = 5;
370  int cached_lines = 5;
371 
372 public:
373  float radius_0 = 1.0f;
374  float radius_1 = 1.0f;
375  int resolution = 5;
376  int lines = 5;
377 
380 
381  void Render() override;
382  void ShowImGuiEditControls() override;
383 };
384 
386 {
387 private:
388  BlamVector3 start = BlamVector3();
389  BlamVector3 end = BlamVector3();
390 
391  void CreateManualObject() override;
392 
393 public:
396 
397  void SetStartPoint(BlamVector3 point);
398  void SetEndPoint(BlamVector3 point);
399 
400  void SetDirection(BlamVector3 direction);
401  void SetLength(float length);
402 
403  BlamVector3 GetStartPoint();
404  BlamVector3 GetEndPoint();
405  BlamVector3 GetDirection();
406  float GetLength();
407 
408  void Render() override;
409  void ShowImGuiEditControls() override;
410 };
411 
422 {
423 protected:
424  bool needs_update = true;
425  bool needs_rebuild = true;
426 
427 public:
430 
431  virtual void Render();
432  virtual void Update() = 0;
433  virtual void Rebuild() = 0;
434  void MarkForUpdate();
435  void MarkForRebuild();
436 };
437 
439 {
440 private:
441  int primary_spacing = 10;
442  int secondary_spacing = 1;
443  BlamColor primary_color = BlamColor(191, 191, 191);
444  BlamColor secondary_color = BlamColor(127, 127, 127);
445  bool mark_axes = false;
446 
447  Ogre::HlmsDatablock* primary_datablock = nullptr;
448  Ogre::HlmsDatablock* secondary_datablock = nullptr;
449 
450  BlamVector3 origin = BlamVector3();
451  int max_distance = 100;
452 
453  Ogre::ManualObject* manual_object = nullptr;
454 
455  void DestroyManualObject();
456 
457 public:
461 
462  void Render() override;
463  void Rebuild() override;
464  void Update() override;
465  void ShowImGuiEditControls() override;
466 };
467 
469 {
470 private:
471  BlamWorldObject_PrimitiveCuboid* cube_center = nullptr;
472  BlamWorldObject_PrimitiveCuboid* cube_x = nullptr;
473  BlamWorldObject_PrimitiveCuboid* cube_y = nullptr;
474  BlamWorldObject_PrimitiveCuboid* cube_z = nullptr;
475  BlamWorldObject_PrimitiveLine* line_x = nullptr;
476  BlamWorldObject_PrimitiveLine* line_y = nullptr;
477  BlamWorldObject_PrimitiveLine* line_z = nullptr;
478  BlamWorldObject_Primitive* rotate_x = nullptr;
479  BlamWorldObject_Primitive* rotate_y = nullptr;
480  BlamWorldObject_Primitive* rotate_z = nullptr;
481 
482  BlamWorldObject_PrimitiveCuboid* CreateCuboid(BlamColor color, BlamColor fill, BlamAxis axis = BlamAxis::NONE);
483  BlamWorldObject_PrimitiveLine* CreateLine(BlamColor color, BlamVector3 start, BlamVector3 end);
484  BlamWorldObject_Primitive* CreateRotationTriangle(BlamAxis axis = BlamAxis::NONE);
485 
486  float cube_size = 0.17f;
487  float screen_scale = 0.18f;
488 
490  BlamAxis axis = BlamAxis::NONE;
491  BlamVector2 mouse_position_initial = BlamVector2();
492 
493  BlamVector3 position_initial = BlamVector3();
494  BlamVector3 rotation_initial = BlamVector3();
495  BlamVector3 scale_initial = BlamVector3();
496 
497  BlamWorldObject_Tag* associated_object = nullptr;
498  uint32_t original_query_flags = 0;
499 
500 public:
504 
505  void Render() override;
506  void Rebuild() override;
507  void Update() override;
508  void ShowImGuiEditControls() override;
509  void OnMouseMove(MouseMoveEvent* event) override;
510 
511  void SetTransformMode(BlamGizmoTransformMode mode, BlamAxis _axis);
512  void SetQueryMask(BlamQueryFlags mask);
513 
514  void SetAssociatedObject(BlamWorldObject_Tag* object);
515  void RemoveAssociatedObject();
516 };
517 
519 {
520 private:
522 
523 public:
527 
528  void Render() override;
529  void Rebuild() override;
530  void Update() override;
531  void ShowImGuiEditControls() override;
532 };
533 
540 class BLAM_EXT_API BlamWorldState : public BlamEventListener
541 {
542 private:
543  std::vector<BlamWorldObject*> objects = std::vector<BlamWorldObject*>();
544 
545 public:
546  Ogre::SceneNode* root_node = nullptr;
547 
551  BlamWorldState();
552 
556  ~BlamWorldState();
557 
558  void AddObject(BlamWorldObject* object);
559 
560  bool RemoveObject(uint64_t object_id, bool delete_data = true);
561 
562  int GetObjectCount();
563 
564  bool HasObject(uint64_t object_id);
565 
566  BlamWorldObject* GetObjectAtIndex(int index);
567 
568  BlamWorldObject* GetObjectById(uint64_t object_id);
569 
580  bool Drop(BlamTagData* tag_data, BlamVector3 position);
581 
582  void OnTickEvent(TickEvent* event);
583 
584  void RenderObjects();
585 };
BlamWorldObject_Primitive::SetDepthCheckEnabled
void SetDepthCheckEnabled(bool enable)
Definition: BlamWorldObject_Primitive.cpp:268
Blam::Director::GetCamera
BLAM BlamDirector * GetCamera()
Retrieves the director instance.
Definition: director.cpp:31
BLAM_EXT_API
#define BLAM_EXT_API
Definition: world_objects.h:13
BlamWorldState::root_node
Ogre::SceneNode * root_node
Definition: world_objects.h:546
BlamWorldObject_GizmoTransform::BlamWorldObject_GizmoTransform
BlamWorldObject_GizmoTransform(BlamWorldState *_world)
Definition: BlamWorldObject_GizmoTransform.cpp:187
BlamWorldObject_Tag::~BlamWorldObject_Tag
~BlamWorldObject_Tag()
Definition: BlamWorldObject_Tag.cpp:24
object
Definition: object.h:25
Blam::Input::GetMousePositionNormalized
BLAM BlamVector2 GetMousePositionNormalized()
Definition: mouse.cpp:88
BlamWorldObject_Primitive::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_Primitive.cpp:59
BlamWorldObject_PrimitiveLine::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_PrimitiveLine.cpp:110
BlamWorldObject_GizmoTransform::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_GizmoTransform.cpp:277
Y
FONT FILES INCLUDED IN THIS FOLDER Cousine Regular ttf Digitized data Version DroidSans ttf version Tristan Grimmer MIT License recommended loading setting in DisplayOffset Y
Definition: README.txt:109
tag_io.h
BlamWorldObject_Primitive::SetQueryMask
void SetQueryMask(uint32_t mask)
Definition: BlamWorldObject_Primitive.cpp:274
BlamTagInstance::parent_tag
BlamTagData * parent_tag
Definition: tags.h:226
BlamWorldState::RenderObjects
void RenderObjects()
Definition: BlamWorldState.cpp:170
Blam::Rendering::Materials::CreateDefaultUnlitDatablockForPrimitives
BLAM Ogre::HlmsUnlitDatablock * CreateDefaultUnlitDatablockForPrimitives(std::string id)
Creates a default Unlit datablock for use with 2D and 3D primitives.
Definition: materials.cpp:997
BlamWorldObject_Gizmo::BlamWorldObject_Gizmo
BlamWorldObject_Gizmo(BlamWorldState *_world, BlamWorldObjectType _type)
Definition: world_objects.h:428
BlamWorldObject::GetScaleModifier
BlamVector3 GetScaleModifier()
Definition: BlamWorldObject.cpp:216
BlamWorldState::AddObject
void AddObject(BlamWorldObject *object)
Definition: BlamWorldState.cpp:85
QF_USER_9
@ QF_USER_9
Definition: world_objects.h:51
bitfield16::flag0
bool flag0
Definition: tags.h:361
BlamWorldObject_PrimitiveCylinder::lines
int lines
Definition: world_objects.h:376
QF_USER_21
@ QF_USER_21
Definition: world_objects.h:63
BlamWorldObject_PrimitiveSphere::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_PrimitiveSphere.cpp:159
Blam::Logger::LogEvent
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:130
QF_ENGINE_RESERVED_0
@ QF_ENGINE_RESERVED_0
Definition: world_objects.h:37
BlamDirector::fov
float fov
The camera's current field of view.
Definition: director.h:91
Blam3DPrimitiveRenderMode::Both
@ Both
QF_USER_4
@ QF_USER_4
Definition: world_objects.h:46
BlamGizmoTransformMode::TRANSLATE
@ TRANSLATE
render_model
Definition: render_model.h:25
BlamRaycastEntry
Definition: world_objects.h:73
Blam::Rendering::GetMousePosition3D
BLAM BlamVector3 GetMousePosition3D()
Definition: ogre.cpp:599
BlamGizmoCuboid
Definition: BlamWorldObject_GizmoTransform.cpp:132
QF_USER_6
@ QF_USER_6
Definition: world_objects.h:48
color
BlamColor color
Typedef for a color field, used in tag definitions.
Definition: tags.h:428
Blam::Input::GetMousePosition
BLAM BlamVector2 GetMousePosition()
Definition: mouse.cpp:82
BlamWorldObject_PrimitiveSphere::BlamWorldObject_PrimitiveSphere
BlamWorldObject_PrimitiveSphere(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveSphere.cpp:13
ImGui::Checkbox
IMGUI_API bool Checkbox(const char *label, bool *v)
Definition: imgui_widgets.cpp:974
logger.h
BlamWorldState::Drop
bool Drop(BlamTagData *tag_data, BlamVector3 position)
Drops a tag into the world at the specified coordinates.
Definition: BlamWorldState.cpp:47
BlamWorldObject_Gizmo3DCursor::Update
void Update() override
Definition: BlamWorldObject_Gizmo3DCursor.cpp:60
BlamWorldObject::~BlamWorldObject
virtual ~BlamWorldObject()
Definition: BlamWorldObject.cpp:28
Blam::API::v1::HS::Drop
void Drop(std::string tag_name)
Definition: hs.cpp:44
BlamWorldObject_GizmoTransform::SetQueryMask
void SetQueryMask(BlamQueryFlags mask)
Definition: BlamWorldObject_GizmoTransform.cpp:485
BlamWorldObject_Primitive::color
BlamColor color
Definition: world_objects.h:294
BlamWorldObject::scene_node
Ogre::SceneNode * scene_node
Definition: world_objects.h:147
BlamWorldObject_GizmoTransform::RemoveAssociatedObject
void RemoveAssociatedObject()
Definition: BlamWorldObject_GizmoTransform.cpp:510
BlamWorldObject_Tag::ValidateTagData
bool ValidateTagData()
Definition: BlamWorldObject_Tag.cpp:190
BlamGizmoTransformMode
BlamGizmoTransformMode
Definition: world_objects.h:105
BlamWorldObject_GizmoTransform::Rebuild
void Rebuild() override
Definition: BlamWorldObject_GizmoTransform.cpp:409
BlamWorldObject_Primitive::cast_shadows
bool cast_shadows
Definition: world_objects.h:298
BlamWorldObject::OnMouseHoverExit
virtual void OnMouseHoverExit()
Definition: BlamWorldObject.cpp:259
keyboard.h
QF_USER_15
@ QF_USER_15
Definition: world_objects.h:57
BlamWorldObject::GetPosition
BlamVector3 GetPosition()
Definition: BlamWorldObject.cpp:183
BlamWorldObjectType
BlamWorldObjectType
Definition: world_objects.h:79
BlamWorldObject_Primitive::MarkForRebuild
void MarkForRebuild()
Definition: BlamWorldObject_Primitive.cpp:263
imgui.h
BlamWorldObject_Primitive::datablock_wireframe
Ogre::HlmsDatablock * datablock_wireframe
Definition: world_objects.h:292
BlamWorldObject::OnMouseClick
virtual void OnMouseClick(MouseClickEvent *event)
Definition: BlamWorldObject.cpp:269
BlamWorldObject::SetScaleModifier
void SetScaleModifier(BlamVector3 scale)
Definition: BlamWorldObject.cpp:221
ImGui::InputText
IMGUI_API bool InputText(const char *label, char *buf, size_t buf_size, ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3068
BlamWorldObject_PrimitiveSphere::vertical_resolution
int vertical_resolution
The level of detail to use vertically for the primitive. Only used in spheres.
Definition: world_objects.h:348
BlamWorldObject_PrimitiveCylinder::radius_0
float radius_0
The radius of the primitive. Only used in cylinders.
Definition: world_objects.h:373
BlamTagData::path
char path[256]
The tag's path.
Definition: tags.h:143
BlamWorldObjectType::GizmoRotate
@ GizmoRotate
BlamWorldObject::OnMouseHoverEnter
virtual void OnMouseHoverEnter()
Definition: BlamWorldObject.cpp:254
QF_USER_3
@ QF_USER_3
Definition: world_objects.h:45
parent
HWND parent
Definition: error_notice.cpp:22
BlamWorldObject_Group::GetObjectAtIndex
BlamWorldObject * GetObjectAtIndex(int index)
Definition: BlamWorldObject_Group.cpp:57
BlamGizmoTriangle::OnMouseHoverExit
void OnMouseHoverExit() override
Definition: BlamWorldObject_GizmoTransform.cpp:126
BlamGizmoTriangle::BlamGizmoTriangle
BlamGizmoTriangle(BlamWorldObject_GizmoTransform *parent, BlamAxis _axis)
Definition: BlamWorldObject_GizmoTransform.cpp:41
BlamWorldObject_Primitive::color_wireframe
BlamColor color_wireframe
Definition: world_objects.h:295
BlamWorldObject::SetName
void SetName(std::string name)
Definition: BlamWorldObject.cpp:248
BlamWorldObject_GizmoTransform::Update
void Update() override
Definition: BlamWorldObject_GizmoTransform.cpp:439
QF_EXCLUDE_GIZMOS
@ QF_EXCLUDE_GIZMOS
Definition: world_objects.h:70
BlamWorldObject_Gizmo3DCursor
Definition: world_objects.h:518
render_model::bounding_sphere_radius
real bounding_sphere_radius
Definition: render_model.h:29
BlamWorldObject_Tag::GetErrorText
std::string GetErrorText()
Definition: BlamWorldObject_Tag.cpp:185
BlamTagFieldType::Unspecified
@ Unspecified
Indicates that the field's type is not specified. Fields with this type should be considered invalid.
BlamWorldObject_Group::AddObject
void AddObject(BlamWorldObject *object)
Definition: BlamWorldObject_Group.cpp:5
QF_ENGINE_RESERVED_1
@ QF_ENGINE_RESERVED_1
Definition: world_objects.h:38
BlamWorldObject_PrimitiveLine::SetDirection
void SetDirection(BlamVector3 direction)
Definition: BlamWorldObject_PrimitiveLine.cpp:55
director.h
BlamWorldObject_Gizmo::Render
virtual void Render()
Renders the object to the screen.
Definition: BlamWorldObject_Gizmo.cpp:3
engine_text.h
BlamWorldObject_Primitive::show_backfaces
bool show_backfaces
Definition: world_objects.h:297
BlamWorldState::GetObjectCount
int GetObjectCount()
Definition: BlamWorldState.cpp:120
BlamWorldObject_Gizmo::MarkForUpdate
void MarkForUpdate()
Definition: BlamWorldObject_Gizmo.cpp:21
BlamTagData::GetPokeKey
int GetPokeKey()
Definition: BlamTagData.cpp:82
imgui_stdlib.h
BlamWorldObject_PrimitiveSphere::lines_x
int lines_x
Definition: world_objects.h:349
BlamWorldObject_Group::GetObjectById
BlamWorldObject * GetObjectById(uint64_t object_id)
Definition: BlamWorldObject_Group.cpp:65
render_model.h
BlamWorldObject_GizmoTransform::OnMouseMove
void OnMouseMove(MouseMoveEvent *event) override
Definition: BlamWorldObject_GizmoTransform.cpp:456
BlamWorldObject::GetParentSceneNode
Ogre::SceneNode * GetParentSceneNode()
Definition: BlamWorldObject.cpp:98
rendering.h
ImGui::DragInt
IMGUI_API bool DragInt(const char *label, int *v, float v_speed=1.0f, int v_min=0, int v_max=0, const char *format="%d")
Definition: imgui_widgets.cpp:2209
BlamGizmoTriangle::OnMouseClick
void OnMouseClick(MouseClickEvent *event) override
Definition: BlamWorldObject_GizmoTransform.cpp:112
Blam::Rendering::GetScreenPointFrom3DPoint
BLAM BlamVector2 GetScreenPointFrom3DPoint(BlamVector3 point)
Definition: ogre.cpp:609
BlamWorldObject_Primitive::manual_object
Ogre::ManualObject * manual_object
Definition: world_objects.h:290
ImGui::SameLine
IMGUI_API void SameLine(float offset_from_start_x=0.0f, float spacing=-1.0f)
Definition: imgui.cpp:7147
BlamTagData::BlamTagData
BlamTagData()
Definition: BlamTagData.cpp:8
bitmap_filtering_mode::point
@ point
BlamGizmoTriangle::OnMouseHoverEnter
void OnMouseHoverEnter() override
Definition: BlamWorldObject_GizmoTransform.cpp:121
BlamWorldObject::GetName
std::string GetName()
Definition: BlamWorldObject.cpp:243
QF_USER_0
@ QF_USER_0
Definition: world_objects.h:42
Blam::Input::IsMouseButtonDown
BLAM bool IsMouseButtonDown(uint8_t button)
Checks if a given mouse button is down.
Definition: mouse.cpp:69
Blam3DPrimitiveRenderMode
Blam3DPrimitiveRenderMode
Definition: world_objects.h:98
BlamWorldObject_Tag::tag_data
BlamTagData * tag_data
Pointer to the tag data associated with this object.
Definition: world_objects.h:238
BlamWorldObject_Primitive::ShowImGuiEditControls
void ShowImGuiEditControls() override
Definition: BlamWorldObject_Primitive.cpp:213
Demo::GraphicsSystem::getSceneManager
Ogre::SceneManager * getSceneManager(void) const
Definition: GraphicsSystem.h:147
BlamWorldObject_Gizmo
Class representing a gizmo world object.
Definition: world_objects.h:421
BlamGizmoTriangle
Definition: BlamWorldObject_GizmoTransform.cpp:32
BlamWorldObject_GizmoGrid::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_GizmoGrid.cpp:46
BlamWorldObject_PrimitiveLine
Definition: world_objects.h:385
BlamWorldObjectType::Unspecified
@ Unspecified
BlamWorldObject_GizmoGrid::~BlamWorldObject_GizmoGrid
~BlamWorldObject_GizmoGrid()
Definition: BlamWorldObject_GizmoGrid.cpp:30
QF_USER_8
@ QF_USER_8
Definition: world_objects.h:50
BlamWorldObject_Gizmo3DCursor::ShowImGuiEditControls
void ShowImGuiEditControls() override
Definition: BlamWorldObject_Gizmo3DCursor.cpp:65
BlamWorldObject_Tag
Class representing a tag-based world object.
Definition: world_objects.h:223
BlamWorldObject_PrimitiveSphere::vertices
std::vector< BlamVector3 > vertices
Definition: world_objects.h:352
BlamWorldObjectType::PrimitiveCylinder
@ PrimitiveCylinder
uint64_t
unsigned long long uint64_t
Definition: stdint.h:18
ImGui::DragFloat
IMGUI_API bool DragFloat(const char *label, float *v, float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
Definition: imgui_widgets.cpp:2164
BlamWorldObject_PrimitiveCylinder::BlamWorldObject_PrimitiveCylinder
BlamWorldObject_PrimitiveCylinder(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveCylinder.cpp:12
BlamWorldObject_Primitive::custom_wireframe_datablock
bool custom_wireframe_datablock
Definition: world_objects.h:285
QF_USER_18
@ QF_USER_18
Definition: world_objects.h:60
Blam::UI::ImGUI::Widgets::ShowHelpMarker
BLAM void ShowHelpMarker(const char *desc)
Shows a help indicator.
Definition: widgets.cpp:7
ImGui::Render
IMGUI_API void Render()
Definition: imgui.cpp:4248
BlamTagData::~BlamTagData
~BlamTagData()
Definition: BlamTagData.cpp:15
BlamWorldObject_Tag::IsValidTag
bool IsValidTag()
Definition: BlamWorldObject_Tag.cpp:180
BlamQueryFlags
BlamQueryFlags
Definition: world_objects.h:34
QF_USER_13
@ QF_USER_13
Definition: world_objects.h:55
BlamWorldObject::GetID
uint64_t GetID()
Definition: BlamWorldObject.cpp:93
ImGui::CollapsingHeader
IMGUI_API bool CollapsingHeader(const char *label, ImGuiTreeNodeFlags flags=0)
Definition: imgui_widgets.cpp:5422
BlamWorldObject_PrimitiveCylinder::resolution
int resolution
The level of detail to use for the primitive. Only used in cylinders.
Definition: world_objects.h:375
BlamWorldObject_Gizmo::MarkForRebuild
void MarkForRebuild()
Definition: BlamWorldObject_Gizmo.cpp:26
BlamTagData::instances
std::vector< BlamTagInstance * > instances
Definition: tags.h:147
BlamWorldObject_GizmoTransform::SetTransformMode
void SetTransformMode(BlamGizmoTransformMode mode, BlamAxis _axis)
Definition: BlamWorldObject_GizmoTransform.cpp:461
Blam::Rendering::GetGizmoMousePosition3D
BLAM BlamVector3 GetGizmoMousePosition3D()
Definition: ogre.cpp:604
BlamTagData::SetTagPath
bool SetTagPath(std::string new_path)
Updates the tag path.
Definition: BlamTagData.cpp:31
BlamWorldObject_Gizmo::Update
virtual void Update()=0
BlamWorldState::GetObjectAtIndex
BlamWorldObject * GetObjectAtIndex(int index)
Definition: BlamWorldState.cpp:141
light
Definition: light.h:25
BlamWorldObject_Tag::Render
void Render()
Renders the object to the screen.
Definition: BlamWorldObject_Tag.cpp:37
BlamWorldObject_PrimitiveCylinder
Definition: world_objects.h:361
Blam::Content::Tags::CloneTag
BLAM BlamTagData * CloneTag(BlamTagData *original_tag_data)
Creates a copy of a tag in memory.
Definition: tag_io.cpp:864
BlamWorldObject_Group::HasObject
bool HasObject(uint64_t object_id)
Definition: BlamWorldObject_Group.cpp:41
BlamWorldObject_Primitive::BlamWorldObject_Primitive
BlamWorldObject_Primitive(BlamWorldObjectType _type, BlamWorldState *_world)
Creates a new primitive world object.
Definition: BlamWorldObject_Primitive.cpp:21
y
font DisplayOffset y
Definition: README.txt:68
BlamWorldState::GetObjectById
BlamWorldObject * GetObjectById(uint64_t object_id)
Definition: BlamWorldState.cpp:149
BlamWorldObject_Gizmo3DCursor::~BlamWorldObject_Gizmo3DCursor
~BlamWorldObject_Gizmo3DCursor()
Definition: BlamWorldObject_Gizmo3DCursor.cpp:23
BlamWorldObject_PrimitiveCylinder::radius_1
float radius_1
A secondary radius of the primitive. Only used in cylinders.
Definition: world_objects.h:374
BlamGizmoTriangle::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_GizmoTransform.cpp:90
BlamWorldObjectType::Gizmo3DCursor
@ Gizmo3DCursor
BlamWorldObject_Gizmo3DCursor::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_Gizmo3DCursor.cpp:28
cursor
HCURSOR cursor
Main window cursor.
Definition: main.cpp:63
QF_USER_12
@ QF_USER_12
Definition: world_objects.h:54
widgets.h
BlamWorldObject::id
uint64_t id
A unique identifier for this object. Used to identify objects during runtime.
Definition: world_objects.h:137
BlamGizmoTransformMode::ROTATE
@ ROTATE
BlamWorldObject_GizmoTransform
Definition: world_objects.h:468
Blam3DPrimitiveRenderMode::Wireframe
@ Wireframe
QF_USER_11
@ QF_USER_11
Definition: world_objects.h:53
ray_closest_to
float ray_closest_to(Ogre::Ray ray, Ogre::Ray other)
Definition: BlamWorldObject_GizmoTransform.cpp:18
BlamGizmoCuboid::OnMouseHoverExit
void OnMouseHoverExit() override
Definition: BlamWorldObject_GizmoTransform.cpp:181
BlamWorldObjectType::GizmoVolume
@ GizmoVolume
ImGui::BeginCombo
IMGUI_API bool BeginCombo(const char *label, const char *preview_value, ImGuiComboFlags flags=0)
Definition: imgui_widgets.cpp:1416
ImGui::Selectable
IMGUI_API bool Selectable(const char *label, bool selected=false, ImGuiSelectableFlags flags=0, const ImVec2 &size=ImVec2(0, 0))
Definition: imgui_widgets.cpp:5469
QF_USER_20
@ QF_USER_20
Definition: world_objects.h:62
QF_USER_5
@ QF_USER_5
Definition: world_objects.h:47
BlamTagData::GetInstance
BlamTagInstance * GetInstance(std::string identifier)
Definition: BlamTagData.cpp:69
BlamWorldObject_PrimitiveCylinder::ShowImGuiEditControls
void ShowImGuiEditControls() override
Definition: BlamWorldObject_PrimitiveCylinder.cpp:254
globals.h
BlamWorldObject_Primitive::custom_datablock
bool custom_datablock
Definition: world_objects.h:284
QF_NONE
@ QF_NONE
Definition: world_objects.h:68
BlamWorldObject_GizmoTransform::SetAssociatedObject
void SetAssociatedObject(BlamWorldObject_Tag *object)
Definition: BlamWorldObject_GizmoTransform.cpp:499
BlamWorldObject::Render
virtual void Render()
Renders the object to the screen.
Definition: BlamWorldObject.cpp:42
BlamWorldObject_GizmoGrid::BlamWorldObject_GizmoGrid
BlamWorldObject_GizmoGrid(BlamWorldState *_world)
Definition: BlamWorldObject_GizmoGrid.cpp:18
Demo::GraphicsSystem::getCamera
Ogre::Camera * getCamera(void) const
Definition: GraphicsSystem.h:148
BlamWorldObject_Group
Definition: world_objects.h:196
BlamWorldObject_Group::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_Group.cpp:81
QF_ENGINE_RESERVED_4
@ QF_ENGINE_RESERVED_4
Definition: world_objects.h:41
BlamWorldObject_GizmoGrid::Update
void Update() override
Definition: BlamWorldObject_GizmoGrid.cpp:165
BlamWorldObject_Gizmo3DCursor::Rebuild
void Rebuild() override
Definition: BlamWorldObject_Gizmo3DCursor.cpp:41
BlamWorldState::HasObject
bool HasObject(uint64_t object_id)
Definition: BlamWorldState.cpp:125
QF_USER_14
@ QF_USER_14
Definition: world_objects.h:56
BlamWorldObject_PrimitiveSphere::radius_0
float radius_0
The radius of the primitive. Only used in cylinders.
Definition: world_objects.h:345
BlamWorldObject::type
BlamWorldObjectType type
The type of this world object.
Definition: world_objects.h:145
BlamWorldObject_PrimitiveCylinder::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_PrimitiveCylinder.cpp:233
BlamWorldObject_PrimitiveSphere::radius_1
float radius_1
A secondary radius of the primitive. Only used in cylinders.
Definition: world_objects.h:346
BlamWorldObject_GizmoGrid::ShowImGuiEditControls
void ShowImGuiEditControls() override
Definition: BlamWorldObject_GizmoGrid.cpp:176
BlamWorldObject::GetRotation
BlamVector3 GetRotation()
Definition: BlamWorldObject.cpp:146
QF_USER_19
@ QF_USER_19
Definition: world_objects.h:61
BlamWorldObject_PrimitiveLine::GetDirection
BlamVector3 GetDirection()
Definition: BlamWorldObject_PrimitiveLine.cpp:94
QF_USER_23
@ QF_USER_23
Definition: world_objects.h:65
BlamTagInstance::identifier
std::string identifier
Definition: tags.h:227
ImGui::DragFloat3
IMGUI_API bool DragFloat3(const char *label, float v[3], float v_speed=1.0f, float v_min=0.0f, float v_max=0.0f, const char *format="%.3f", float power=1.0f)
Definition: imgui_widgets.cpp:2174
BlamWorldObject_Gizmo3DCursor::BlamWorldObject_Gizmo3DCursor
BlamWorldObject_Gizmo3DCursor(BlamWorldState *_world)
Definition: BlamWorldObject_Gizmo3DCursor.cpp:11
uint32_t
unsigned int uint32_t
Definition: stdint.h:17
Blam::Content::Tags::GetTagData
BLAM BlamTagData * GetTagData(std::string tag_path)
Retrieves information for a given tag.
Definition: tags.cpp:80
BlamWorldObject_Primitive::CreateManualObject
virtual void CreateManualObject()
Definition: BlamWorldObject_Primitive.cpp:42
BlamWorldObject_PrimitiveLine::SetEndPoint
void SetEndPoint(BlamVector3 point)
Definition: BlamWorldObject_PrimitiveLine.cpp:49
BlamWorldObject_Primitive::datablock
Ogre::HlmsDatablock * datablock
Definition: world_objects.h:291
QF_ANY
@ QF_ANY
Definition: world_objects.h:69
BlamWorldState::OnTickEvent
void OnTickEvent(TickEvent *event)
Definition: BlamWorldState.cpp:165
BlamWorldObjectType::GizmoGrid
@ GizmoGrid
BlamWorldObject_PrimitiveLine::GetLength
float GetLength()
Definition: BlamWorldObject_PrimitiveLine.cpp:101
BlamWorldObject::OnMouseMove
virtual void OnMouseMove(MouseMoveEvent *event)
Definition: BlamWorldObject.cpp:264
BlamTagData::Poke
void Poke()
Definition: BlamTagData.cpp:87
Blam::Rendering::GetGraphicsSystem
BLAM Demo::GraphicsSystem * GetGraphicsSystem()
Retrieves the graphics system used by OGRE.
Definition: ogre.cpp:492
BlamWorldObjectType::PrimitiveLine
@ PrimitiveLine
BlamWorldObject::GetHidden
bool GetHidden()
Definition: BlamWorldObject.cpp:232
BlamWorldState::RemoveObject
bool RemoveObject(uint64_t object_id, bool delete_data=true)
Definition: BlamWorldState.cpp:100
BlamDirector
Class representing the Director.
Definition: director.h:27
BlamWorldObject_PrimitiveSphere::resolution
int resolution
The level of detail to use for the primitive. Only used in cylinders.
Definition: world_objects.h:347
BlamWorldObject_Primitive
Class representing a primitive-based world object.
Definition: world_objects.h:268
ImGui::InputTextMultiline
IMGUI_API bool InputTextMultiline(const char *label, char *buf, size_t buf_size, const ImVec2 &size=ImVec2(0, 0), ImGuiInputTextFlags flags=0, ImGuiInputTextCallback callback=NULL, void *user_data=NULL)
Definition: imgui_widgets.cpp:3074
QF_ENGINE_GIZMO
@ QF_ENGINE_GIZMO
Definition: world_objects.h:36
BlamTagInstance
Definition: tags.h:224
BlamWorldObject_PrimitiveLine::ShowImGuiEditControls
void ShowImGuiEditControls() override
Definition: BlamWorldObject_PrimitiveLine.cpp:116
BlamWorldObjectType::PrimitiveSphere
@ PrimitiveSphere
ImGui::EndCombo
IMGUI_API void EndCombo()
Definition: imgui_widgets.cpp:1522
BlamWorldObject_PrimitiveLine::GetEndPoint
BlamVector3 GetEndPoint()
Definition: BlamWorldObject_PrimitiveLine.cpp:89
cui_widget_anchor::fill
@ fill
BlamWorldObject_Tag::SetTransformEnabled
void SetTransformEnabled(bool enabled)
Definition: BlamWorldObject_Tag.cpp:218
BlamWorldObject_PrimitiveCuboid
Definition: world_objects.h:321
BlamGizmoCuboid::Render
void Render() override
Renders the object to the screen.
Definition: BlamWorldObject_GizmoTransform.cpp:147
QF_USER_22
@ QF_USER_22
Definition: world_objects.h:64
BlamWorldObject_GizmoGrid
Definition: world_objects.h:438
BlamRaycastEntry::distance
float distance
Definition: world_objects.h:75
BlamWorldObject_PrimitiveSphere::lines_y
int lines_y
Definition: world_objects.h:350
BlamWorldObject
Class representing a world object.
Definition: world_objects.h:119
BlamGizmoCuboid::OnMouseHoverEnter
void OnMouseHoverEnter() override
Definition: BlamWorldObject_GizmoTransform.cpp:176
BlamWorldObject_PrimitiveLine::GetStartPoint
BlamVector3 GetStartPoint()
Definition: BlamWorldObject_PrimitiveLine.cpp:84
BlamWorldObject_Group::RemoveObject
void RemoveObject(uint64_t object_id)
Definition: BlamWorldObject_Group.cpp:20
BlamGizmoTransformMode::SCALE
@ SCALE
BlamWorldObject::BlamWorldObject
BlamWorldObject(BlamWorldState *_world, BlamWorldObjectType _type)
Creates a new world object.
Definition: BlamWorldObject.cpp:15
QF_USER_10
@ QF_USER_10
Definition: world_objects.h:52
Blam3DPrimitiveRenderMode::Solid
@ Solid
camera
BlamDirector * camera
Definition: director.cpp:3
BlamWorldObject_PrimitiveCuboid::BlamWorldObject_PrimitiveCuboid
BlamWorldObject_PrimitiveCuboid(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveCuboid.cpp:8
BlamWorldObject_Group::GetObjectCount
int GetObjectCount()
Definition: BlamWorldObject_Group.cpp:36
WORLD_OBJECT_USER_KEY
#define WORLD_OBJECT_USER_KEY
Definition: world_objects.h:16
BlamWorldObject::SetHidden
void SetHidden(bool hidden)
Definition: BlamWorldObject.cpp:237
ImGui::ColorEdit4
IMGUI_API bool ColorEdit4(const char *label, float col[4], ImGuiColorEditFlags flags=0)
Definition: imgui_widgets.cpp:4154
BlamWorldObject_PrimitiveSphere
Definition: world_objects.h:331
BlamWorldObjectType::PrimitiveCuboid
@ PrimitiveCuboid
QF_USER_1
@ QF_USER_1
Definition: world_objects.h:43
QF_USER_16
@ QF_USER_16
Definition: world_objects.h:58
BlamGizmoCuboid::OnMouseClick
void OnMouseClick(MouseClickEvent *event) override
Definition: BlamWorldObject_GizmoTransform.cpp:167
ENGINE_TEXT
#define ENGINE_TEXT(string_id)
Definition: engine_text.h:7
QF_ENGINE_RESERVED_2
@ QF_ENGINE_RESERVED_2
Definition: world_objects.h:39
BlamWorldObject::GetScale
BlamVector3 GetScale()
Definition: BlamWorldObject.cpp:200
BlamWorldObject::SetPosition
void SetPosition(BlamVector3 position)
Definition: BlamWorldObject.cpp:189
BlamWorldObject_Primitive::SetCustomDatabablock
void SetCustomDatabablock(Ogre::HlmsDatablock *datablock, bool wireframe)
Definition: BlamWorldObject_Primitive.cpp:165
BlamWorldObject_Gizmo::needs_update
bool needs_update
Definition: world_objects.h:424
render_model::flags
bitfield16 flags
Definition: render_model.h:28
Blam::Rendering::Models::GetModelFromTagPath
BLAM Ogre::MeshPtr GetModelFromTagPath(std::string tag_path)
Definition: models.cpp:221
Blam::Rendering::Lights::CreateLightFromTag
BLAM Ogre::Light * CreateLightFromTag(light *light)
Definition: lights.cpp:9
BlamWorldObject::parent
BlamWorldObject * parent
Definition: world_objects.h:143
BlamWorldObject_Tag::BlamWorldObject_Tag
BlamWorldObject_Tag(BlamTagData *_tag_data, BlamWorldState *_world)
Creates a new tag-based world object.
Definition: BlamWorldObject_Tag.cpp:14
BlamWorldState::~BlamWorldState
~BlamWorldState()
Destroys the world state.
Definition: BlamWorldState.cpp:29
BlamWorldObject::OnMouseUnclick
virtual void OnMouseUnclick(MouseUnclickEvent *event)
Definition: BlamWorldObject.cpp:274
BlamWorldObjectType::GizmoTransform
@ GizmoTransform
QF_USER_7
@ QF_USER_7
Definition: world_objects.h:49
BlamTagData::CreateNewInstance
BlamTagInstance * CreateNewInstance()
Definition: BlamTagData.cpp:56
BlamWorldObject::SetScale
void SetScale(BlamVector3 scale)
Definition: BlamWorldObject.cpp:205
BlamTagData::address
void * address
The address pointing to the start of the tag's data.
Definition: tags.h:130
BlamGizmoCuboid::BlamGizmoCuboid
BlamGizmoCuboid(BlamWorldObject_GizmoTransform *parent, BlamAxis _axis)
Definition: BlamWorldObject_GizmoTransform.cpp:141
BlamWorldObjectType::Primitive
@ Primitive
BlamWorldObject_PrimitiveLine::SetStartPoint
void SetStartPoint(BlamVector3 point)
Definition: BlamWorldObject_PrimitiveLine.cpp:43
Ogre
Definition: world_objects.h:18
tags.h
tags.h
x
config GlyphExtraSpacing x
Definition: README.txt:30
QF_USER_2
@ QF_USER_2
Definition: world_objects.h:44
BlamTagData
Class used to contain and access tag data.
Definition: tags.h:124
BlamWorldObject_PrimitiveLine::SetLength
void SetLength(float length)
Definition: BlamWorldObject_PrimitiveLine.cpp:64
BlamWorldObjectType::Group
@ Group
BlamWorldObject_Tag::ogre_item
Ogre::MovableObject * ogre_item
Definition: world_objects.h:239
QF_USER_24
@ QF_USER_24
Definition: world_objects.h:66
BlamWorldObject_Gizmo::BlamWorldObject_Gizmo
BlamWorldObject_Gizmo(BlamWorldObject *_parent, BlamWorldObjectType _type)
Definition: world_objects.h:429
BlamWorldObject_GizmoTransform::ShowImGuiEditControls
void ShowImGuiEditControls() override
Definition: BlamWorldObject_GizmoTransform.cpp:444
BlamWorldObject_Primitive::render_mode
Blam3DPrimitiveRenderMode render_mode
Definition: world_objects.h:296
BlamWorldObject::ShowImGuiEditControls
virtual void ShowImGuiEditControls()
Definition: BlamWorldObject.cpp:112
BlamWorldObject_Gizmo::needs_rebuild
bool needs_rebuild
Definition: world_objects.h:425
QF_ENGINE_RESERVED_3
@ QF_ENGINE_RESERVED_3
Definition: world_objects.h:40
BlamTagInstance::instance
BlamTagData * instance
Definition: tags.h:228
INT32_MAX
#define INT32_MAX
Definition: stdint.h:66
BlamGizmoTransformMode::NONE
@ NONE
BlamWorldObjectType::PrimitiveCapsule
@ PrimitiveCapsule
BlamWorldObject_PrimitiveLine::BlamWorldObject_PrimitiveLine
BlamWorldObject_PrimitiveLine(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveLine.cpp:10
BlamWorldObject::world
BlamWorldState * world
The world state this object belongs to.
Definition: world_objects.h:142
BlamWorldObject_GizmoTransform::~BlamWorldObject_GizmoTransform
~BlamWorldObject_GizmoTransform()
Definition: BlamWorldObject_GizmoTransform.cpp:199
BlamWorldObject::SetRotation
void SetRotation(BlamVector3 _rotation, bool local_axes=false)
Definition: BlamWorldObject.cpp:151
BlamDirector::camera_pos
BlamVector3 camera_pos
The current position of the camera.
Definition: director.h:80
BlamWorldObject_Primitive::~BlamWorldObject_Primitive
~BlamWorldObject_Primitive()
Definition: BlamWorldObject_Primitive.cpp:31
BlamWorldObject_PrimitiveSphere::ShowImGuiEditControls
void ShowImGuiEditControls() override
Definition: BlamWorldObject_PrimitiveSphere.cpp:183
BlamWorldState
Class representing a world state.
Definition: world_objects.h:540
Blam::Globals::GetGlobalAsBoolean
BLAM bool * GetGlobalAsBoolean(std::string name)
Retrieves a global's value as a boolean.
Definition: globals.cpp:343
ImGui::GetID
IMGUI_API ImGuiID GetID(const char *str_id)
Definition: imgui.cpp:7032
QF_USER_17
@ QF_USER_17
Definition: world_objects.h:59
BlamGizmoTriangle::CreateManualObject
void CreateManualObject()
Definition: BlamWorldObject_GizmoTransform.cpp:47
BlamWorldObject::description
std::string description
An optional description of this object.
Definition: world_objects.h:139
BlamWorldObjectType::GizmoScale
@ GizmoScale
BlamWorldObject_Gizmo::Rebuild
virtual void Rebuild()=0
BlamWorldObjectType::Tag
@ Tag
BlamWorldObject_GizmoGrid::Rebuild
void Rebuild() override
Definition: BlamWorldObject_GizmoGrid.cpp:83
BlamWorldState::BlamWorldState
BlamWorldState()
Initializes a new world state.
Definition: BlamWorldState.cpp:10
render_model::default_scale_modifier
vector3 default_scale_modifier
Definition: render_model.h:30
BlamTagData::tag_class
std::string tag_class
The tag's short class name.
Definition: tags.h:144