 |
Blamite Game Engine - blam!
00453.06.08.26.0624.blamite
The core library for the Blamite Game Engine.
|
Go to the documentation of this file.
7 #include <Strings/components/classes/events/events.h>
8 #include <Strings/components/classes/vector/vector.h>
13 #define BLAM_EXT_API __declspec(dllexport)
15 #define BLAM_EXT_API __declspec(dllimport)
18 #define WORLD_OBJECT_USER_KEY "WOBJ"
19 #define RENDERABLE_SHADER_USER_KEY "RSHD"
21 #define STATE_FLAGS_GIZMO BGFX_STATE_WRITE_RGB | BGFX_STATE_WRITE_A | BGFX_STATE_CULL_CCW | BGFX_STATE_BLEND_ALPHA
141 bool needs_name_update =
false;
142 bool needs_hidden_update =
false;
143 bool needs_position_update =
false;
144 bool needs_rotation_update =
false;
145 bool next_rotate_local_axes =
false;
146 bool needs_scale_update =
false;
148 BlamVector3 position = BlamVector3();
149 BlamVector3 rotation = BlamVector3();
150 BlamVector3 scale = { 1, 1, 1 };
151 BlamVector3 scale_modifier = { 1, 1, 1 };
153 std::string name =
"";
155 std::map<std::string, BlamVector4> custom_shader_parameters = std::map<std::string, BlamVector4>();
160 std::string description =
"";
161 int editor_folder_id = 0;
163 bool disable_culling =
false;
164 uint64_t state_flags = BGFX_STATE_DEFAULT | BGFX_STATE_CULL_CCW | BGFX_STATE_BLEND_ALPHA;
171 Ogre::SceneNode* scene_node =
nullptr;
187 virtual void Render(
float delta);
189 virtual void Tick(
int tick,
int total_ticks) {}
191 virtual void ShowImGuiEditControls();
194 Ogre::SceneNode* GetParentSceneNode();
196 BlamVector3 GetRotation();
197 void SetRotation(BlamVector3 _rotation,
bool local_axes =
true);
198 void SetRotation(
float x,
float y,
float z,
bool local_axes =
true);
199 void SetRotation(BlamAxis axis,
float amount,
bool local_axes =
true);
201 BlamVector3 GetAbsolutePosition();
202 BlamVector3 GetPosition();
203 void SetPosition(BlamVector3 position);
204 void SetPosition(
float x,
float y,
float z);
206 BlamVector3 GetScale();
207 void SetScale(BlamVector3 scale);
208 void SetScale(
float x,
float y,
float z);
210 BlamVector3 GetScaleModifier();
211 void SetScaleModifier(BlamVector3 scale);
212 void SetScaleModifier(
float x,
float y,
float z);
216 void SetHidden(
bool hidden);
217 std::string GetName();
218 void SetName(std::string name);
222 BlamVector3 GetDirection();
224 virtual void OnMouseHoverEnter();
225 virtual void OnMouseHoverExit();
227 virtual void OnMouseMove(MouseMoveEvent* event);
228 virtual void OnMouseClick(MouseClickEvent* event);
229 virtual void OnMouseUnclick(MouseUnclickEvent* event);
234 void CreateSceneNode();
236 void SetShaderParameter(std::string
id,
float value);
237 void SetShaderParameter(std::string
id, BlamVector2
value);
238 void SetShaderParameter(std::string
id, BlamVector3
value);
239 void SetShaderParameter(std::string
id, BlamVector4
value);
241 float GetShaderParameterFloat(std::string
id);
242 BlamVector2 GetShaderParameterVector2(std::string
id);
243 BlamVector3 GetShaderParameterVector3(std::string
id);
244 BlamVector4 GetShaderParameterVector4(std::string
id);
250 std::vector<BlamWorldObject*> children = std::vector<BlamWorldObject*>();
255 void RemoveObject(
uint64_t object_id);
257 int GetObjectCount();
265 BlamWorldObject* GetObjectByName(std::string name,
bool recursive_search =
false);
267 void Render(
float delta)
override;
269 void Tick(
int tick,
int total_ticks)
override;
281 int last_poke_key = 0;
283 bool valid_tag =
false;
284 bool needs_recreate =
true;
287 std::string script_id =
"";
293 virtual void _PreRecreateNodeObjects() {};
294 virtual void _RecreateNodeObjects() {};
295 virtual bool _IsTagSupported() {
return false; };
296 virtual void _PreRender() {};
297 virtual void _Render(
float delta) {};
300 std::string error_text =
"";
305 Ogre::MovableObject* ogre_item =
nullptr;
317 void Render(
float delta)
override;
318 void Tick(
int tick,
int total_ticks)
override;
320 bool ValidateTagData();
322 std::string GetErrorText();
323 void SetTransformEnabled(
bool enabled);
324 void MarkForRecreate();
325 void DestroyAttachments();
332 void RecreateNodeObjects();
334 std::vector<BlamWorldObject*> GetTransformGizmoObjects();
343 void _PreRecreateNodeObjects()
override;
344 void _RecreateNodeObjects()
override;
345 bool _IsTagSupported()
override;
346 void _Render(
float delta)
override;
347 void ShowImGuiEditControls()
override;
365 void _RecreateNodeObjects()
override;
366 bool _IsTagSupported()
override;
367 void _PreRender()
override;
368 void _Render(
float delta)
override;
380 bool last_tilemap_debug =
false;
381 Ogre::ManualObject* tilemap_object =
nullptr;
384 void _RecreateNodeObjects()
override;
385 bool _IsTagSupported()
override;
386 void _PreRender()
override;
387 void _Render(
float delta)
override;
389 void RecreateTilemapBgfx();
409 bool cached_cast_shadows =
true;
411 BlamColor cached_color = BlamColor(255, 255, 255);
412 BlamColor cached_color_wireframe = BlamColor(255, 255, 255);
415 bool cached_show_backfaces =
false;
416 bool needs_rebuild =
false;
417 bool enable_depth_check =
true;
418 bool depth_check_needs_update =
false;
419 bool query_mask_needs_update =
true;
424 bool custom_datablock =
false;
425 bool custom_wireframe_datablock =
false;
427 virtual void CreateManualObject();
430 Ogre::ManualObject* manual_object =
nullptr;
431 Ogre::HlmsDatablock* datablock =
nullptr;
432 Ogre::HlmsDatablock* datablock_wireframe =
nullptr;
434 BlamColor
color = BlamColor(255, 255, 255);
435 BlamColor color_wireframe = BlamColor(255, 255, 255);
437 bool show_backfaces =
false;
438 bool cast_shadows =
true;
450 void Render(
float delta)
override;
451 void SetCustomDatabablock(Ogre::HlmsDatablock* datablock,
bool wireframe);
454 void MarkForRebuild();
456 void SetDepthCheckEnabled(
bool enable);
479 float cached_radius_0 = 1.0f;
480 float cached_radius_1 = 1.0f;
481 int cached_resolution = 5;
482 int cached_vertical_resolution = 5;
483 int cached_lines_x = 5;
484 int cached_lines_y = 5;
487 float radius_0 = 1.0f;
488 float radius_1 = 1.0f;
490 int vertical_resolution = 5;
494 std::vector<BlamVector3> vertices = std::vector<BlamVector3>();
499 void Render(
float delta)
override;
509 float cached_radius_0 = 1.0f;
510 float cached_radius_1 = 1.0f;
511 int cached_resolution = 5;
512 int cached_lines = 5;
515 float radius_0 = 1.0f;
516 float radius_1 = 1.0f;
523 void Render(
float delta)
override;
530 BlamVector3 start = BlamVector3();
531 BlamVector3 end = BlamVector3();
539 void SetStartPoint(BlamVector3
point);
540 void SetEndPoint(BlamVector3
point);
542 void SetDirection(BlamVector3 direction);
543 void SetLength(
float length);
545 BlamVector3 GetStartPoint();
546 BlamVector3 GetEndPoint();
550 void Render(
float delta)
override;
564 void Render(
float delta)
override;
567 BlamColor GetColor();
568 void SetColor(BlamColor
color);
570 BlamColor GetShadowColor();
571 void SetShadowColor(BlamColor
color);
573 std::string GetText();
574 void SetText(std::string text);
589 bool needs_update =
true;
590 bool needs_rebuild =
true;
591 bgfx::VertexBufferHandle vb = { bgfx::kInvalidHandle };
592 bgfx::IndexBufferHandle ib = { bgfx::kInvalidHandle };
593 bgfx::VertexLayout
vl;
599 virtual void Render(
float delta);
600 virtual void Update() = 0;
601 virtual void Rebuild() = 0;
602 void MarkForUpdate();
603 void MarkForRebuild();
609 int primary_spacing = 10;
610 int secondary_spacing = 1;
611 BlamColor primary_color = BlamColor(191, 191, 191);
612 BlamColor secondary_color = BlamColor(127, 127, 127);
613 bool mark_axes =
false;
615 Ogre::HlmsDatablock* primary_datablock =
nullptr;
616 Ogre::HlmsDatablock* secondary_datablock =
nullptr;
618 BlamVector3 origin = BlamVector3();
619 int max_distance = 100;
621 Ogre::ManualObject* manual_object =
nullptr;
623 void DestroyManualObject();
630 void Render(
float delta)
override;
659 float cube_size = 0.17f;
660 float screen_scale = 0.18f;
663 BlamAxis axis = BlamAxis::NONE;
664 BlamVector2 mouse_position_initial = BlamVector2();
666 BlamVector3 position_initial = BlamVector3();
667 BlamVector3 rotation_initial = BlamVector3();
668 BlamVector3 scale_initial = BlamVector3();
678 void Render(
float delta)
override;
688 void RemoveAssociatedObject();
690 std::vector<BlamWorldObject*> GetGizmoObjects();
703 void Render(
float delta)
override;
718 std::vector<BlamWorldObject*> objects = std::vector<BlamWorldObject*>();
723 Ogre::SceneNode* root_node =
nullptr;
737 bool RemoveObject(
uint64_t object_id,
bool delete_data =
true);
739 int GetObjectCount();
747 BlamWorldObject* GetObjectByName(std::string name,
bool recursive_search =
false);
761 void OnTickEvent(TickEvent* event);
763 void RenderObjects(
float delta);
void SetDepthCheckEnabled(bool enable)
Definition: BlamWorldObject_Primitive.cpp:354
Euler & setRoll(Radian r)
Set the roll.
Definition: OgreEuler.h:109
BLAM BlamDirector * GetCamera()
Retrieves the director instance.
Definition: director.cpp:36
#define BLAM_EXT_API
Definition: world_objects.h:15
Ogre::SceneNode * root_node
Definition: world_objects.h:723
Definition: tile_set.h:24
~BlamWorldObject_Tag()
Definition: BlamWorldObject_Tag.cpp:28
double profiling_stats[16]
Definition: types.h:40
BlamOrientedBoundingBox GetWorldOBB() override
Definition: BlamWorldObject_Primitive.cpp:376
BlamWorldObject * GetObjectByName(std::string name, bool recursive_search=false)
Definition: BlamWorldObject_Group.cpp:81
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
void SetQueryMask(uint32_t mask)
Definition: BlamWorldObject_Primitive.cpp:360
BLAM Ogre::HlmsUnlitDatablock * CreateDefaultUnlitDatablockForPrimitives(std::string id)
Creates a default Unlit datablock for use with 2D and 3D primitives.
Definition: materials.cpp:1032
BlamWorldObject_Gizmo(BlamWorldState *_world, BlamWorldObjectType _type)
Definition: world_objects.h:596
#define SHADER_DEFAULT_UNLIT
Definition: rendering.h:31
BlamVector3 GetScaleModifier()
Definition: BlamWorldObject.cpp:260
void AddObject(BlamWorldObject *object)
Definition: BlamWorldState.cpp:107
@ QF_USER_9
Definition: world_objects.h:62
#define tag_camr
Definition: camera.h:19
virtual void Render(float delta)
Renders the object to the screen.
Definition: BlamWorldObject.cpp:47
BlamWorldObject_Tag * GetActiveCamera()
Definition: BlamWorldState.cpp:253
bool IsHidden()
Definition: BlamWorldObject.cpp:276
int lines
Definition: world_objects.h:518
@ QF_USER_21
Definition: world_objects.h:74
BLAM void LogEvent(std::string message)
Logs a message to the log and/or console.
Definition: aliases.cpp:130
void RenderObjects(float delta)
Definition: BlamWorldState.cpp:240
@ QF_ENGINE_RESERVED_0
Definition: world_objects.h:48
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_GizmoTransform.cpp:143
@ QF_USER_4
Definition: world_objects.h:57
#define RENDERABLE_SHADER_USER_KEY
Definition: world_objects.h:19
virtual void Render(float delta)
Renders the object to the screen.
Definition: BlamWorldObject_Gizmo.cpp:3
#define tag_tilm
Definition: tile_map.h:22
void Translate(BlamVector3 offset, BlamTransformSpace transform_space=BlamTransformSpace::Parent)
Definition: BlamWorldObject.cpp:341
Definition: render_model.h:27
Definition: world_objects.h:84
#define STATE_FLAGS_GIZMO
Definition: world_objects.h:21
BLAM BlamVector3 GetMousePosition3D()
Definition: ogre.cpp:757
Definition: BlamWorldObject_GizmoTransform.cpp:185
void Line(int x, int y)
Definition: ManualMesh.cpp:62
BlamVector3 half_extents
Definition: types.h:347
@ QF_USER_6
Definition: world_objects.h:59
BlamWorldObject_PrimitiveSphere(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveSphere.cpp:13
IMGUI_API bool Checkbox(const char *label, bool *v)
Definition: imgui_widgets.cpp:974
#define RF_DIFFUSE_USE_TINT_ONLY
Definition: shader_flags.h:6
BlamVector3 aabb_min
Definition: types.h:45
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_PrimitiveSphere.cpp:288
bool Drop(BlamTagData *tag_data, BlamVector3 position)
Drops a tag into the world at the specified coordinates.
Definition: BlamWorldState.cpp:69
BLAM void SetShaderFlagsUniform(uint32_t flags=0, bool use_globals=true)
Definition: shader_uniforms.cpp:153
void Update() override
Definition: BlamWorldObject_Gizmo3DCursor.cpp:70
virtual ~BlamWorldObject()
Definition: BlamWorldObject.cpp:30
void Drop(std::string tag_name)
Definition: hs.cpp:44
BlamColor color
Definition: world_objects.h:434
Ogre::SceneNode * scene_node
Definition: world_objects.h:171
#define SHADER_ADDONS_PARAM_ID
Definition: hlms.h:7
bool ValidateTagData()
Definition: BlamWorldObject_Tag.cpp:329
BlamGizmoTransformMode
Definition: world_objects.h:117
BlamVector3 origin
Definition: types.h:364
std::string GetTagPath()
Retrieves the path of the tag that this tagref refers to.
Definition: tag_reference.cpp:57
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_Gizmo3DCursor.cpp:28
bool cast_shadows
Definition: world_objects.h:438
virtual void OnMouseHoverExit()
Definition: BlamWorldObject.cpp:316
@ QF_USER_15
Definition: world_objects.h:68
BlamVector3 GetPosition()
Definition: BlamWorldObject.cpp:222
BlamWorldObjectType
Definition: world_objects.h:90
void MarkForRebuild()
Definition: BlamWorldObject_Primitive.cpp:349
Ogre::HlmsDatablock * datablock_wireframe
Definition: world_objects.h:432
virtual void OnMouseClick(MouseClickEvent *event)
Definition: BlamWorldObject.cpp:326
void SetScaleModifier(BlamVector3 scale)
Definition: BlamWorldObject.cpp:265
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
int vertical_resolution
The level of detail to use vertically for the primitive. Only used in spheres.
Definition: world_objects.h:490
float radius_0
The radius of the primitive. Only used in cylinders.
Definition: world_objects.h:515
char path[256]
The tag's path.
Definition: tags.h:145
virtual void OnMouseHoverEnter()
Definition: BlamWorldObject.cpp:311
@ QF_USER_3
Definition: world_objects.h:56
BlamWorldObject * GetObjectAtIndex(int index)
Definition: BlamWorldObject_Group.cpp:57
void OnMouseHoverExit() override
Definition: BlamWorldObject_GizmoTransform.cpp:179
BlamVector3 axis_z
Definition: types.h:350
tag_reference tile_set
Definition: tile_map.h:29
BlamGizmoTriangle(BlamWorldObject_GizmoTransform *parent, BlamAxis _axis)
Definition: BlamWorldObject_GizmoTransform.cpp:56
BlamColor color_wireframe
Definition: world_objects.h:435
void SetName(std::string name)
Definition: BlamWorldObject.cpp:305
std::string script_id
Definition: tags.h:151
BlamWorldObject_TagTileMap(BlamTagData *_tag_data, BlamWorldState *_world)
Definition: BlamWorldObject_TagTileMap.cpp:17
@ QF_EXCLUDE_GIZMOS
Definition: world_objects.h:81
Definition: world_objects.h:693
real bounding_sphere_radius
Definition: render_model.h:51
std::string GetErrorText()
Definition: BlamWorldObject_Tag.cpp:324
bool UsingBgfx()
Definition: bgfx.cpp:63
BLAM bgfx::ProgramHandle GetProgram(std::string name)
Definition: shaders.cpp:100
void SetHidden(bool new_hidden) override
Sets the hidden state of the widget.
Definition: text.cpp:678
void AddObject(BlamWorldObject *object)
Definition: BlamWorldObject_Group.cpp:5
BLAM BlamScript * CreateNewScript(std::string name)
Definition: blamscript.cpp:22
@ QF_ENGINE_RESERVED_1
Definition: world_objects.h:49
void SetDirection(BlamVector3 direction)
Definition: BlamWorldObject_PrimitiveLine.cpp:68
BlamOrientedBoundingBox GetWorldOBB() override
Definition: BlamWorldObject_GizmoGrid.cpp:356
void SetText(std::string text)
Definition: BlamWorldObject_Text3D.cpp:106
bool show_backfaces
Definition: world_objects.h:437
int GetObjectCount()
Definition: BlamWorldState.cpp:157
void MarkForUpdate()
Definition: BlamWorldObject_Gizmo.cpp:21
int GetPokeKey()
Definition: BlamTagData.cpp:93
void Tick(int tick, int total_ticks) override
Definition: BlamWorldObject_Group.cpp:124
int lines_x
Definition: world_objects.h:491
BlamOrientedBoundingBox BlamOBB
Definition: types.h:360
virtual uint32_t GetQueryMask()
Definition: BlamWorldObject.cpp:336
BlamWorldObject * GetObjectById(uint64_t object_id)
Definition: BlamWorldObject_Group.cpp:65
BlamVector3 GetDirection()
Definition: BlamWorldObject.cpp:401
virtual void Tick(int tick, int total_ticks)
Definition: world_objects.h:189
Ogre::SceneNode * GetParentSceneNode()
Definition: BlamWorldObject.cpp:113
BlamColor color
Definition: types.h:207
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
void OnMouseClick(MouseClickEvent *event) override
Definition: BlamWorldObject_GizmoTransform.cpp:165
BLAM BlamVector2 GetScreenPointFrom3DPoint(BlamVector3 point)
Definition: ogre.cpp:767
Ogre::ManualObject * manual_object
Definition: world_objects.h:430
void ShowImGuiPropertyEditor() override
Displays an ImGUI-based property editor.
Definition: text.cpp:119
BLAM scenario * GetActiveScenarioTag()
Retrieves the currently loaded scenario tag.
Definition: scenario.cpp:225
IMGUI_API void SameLine(float offset_from_start_x=0.0f, float spacing=-1.0f)
Definition: imgui.cpp:7147
bgfx::TextureHandle texture
Definition: types.h:208
BLAM void IncrementFrameStat(std::string id, double value)
Definition: stats.cpp:17
vector2 cell_size
Definition: tile_map.h:31
BlamVector3 axis_y
Definition: types.h:349
bool Good()
Definition: BlamTagData.cpp:114
void MarkForRecreate()
Definition: BlamWorldObject_Tag.cpp:368
void OnMouseHoverEnter() override
Definition: BlamWorldObject_GizmoTransform.cpp:174
std::string GetName()
Definition: BlamWorldObject.cpp:300
@ QF_USER_0
Definition: world_objects.h:53
Blam3DPrimitiveRenderMode
Definition: world_objects.h:110
BlamTagData * tag_data
Pointer to the tag data associated with this object.
Definition: world_objects.h:304
void ShowImGuiEditControls() override
Definition: BlamWorldObject_Primitive.cpp:299
Ogre::SceneManager * getSceneManager(void) const
Definition: GraphicsSystem.h:149
BlamWorldObject_Tag * CreateTagObject(BlamTagData *tag_data, bool add_to_world=true)
Definition: BlamWorldState.cpp:258
Class representing a gizmo world object.
Definition: world_objects.h:586
Definition: BlamWorldObject_GizmoTransform.cpp:47
Definition: world_objects.h:527
~BlamWorldObject_GizmoGrid()
Definition: BlamWorldObject_GizmoGrid.cpp:60
BlamOrientedBoundingBox GetWorldOBB() override
Definition: BlamWorldObject_TagRenderModel.cpp:157
@ QF_USER_8
Definition: world_objects.h:61
BlamVector3 GetAabbMin()
Definition: ManualMesh.cpp:104
bitfield16_flags flags
Bitfield data for flags. See #bitfield16_flags for details.
Definition: render_model.h:50
void ShowImGuiEditControls() override
Definition: BlamWorldObject_Gizmo3DCursor.cpp:75
void Tick(int tick, int total_ticks) override
Definition: BlamWorldObject_Tag.cpp:287
Class representing a tag-based world object.
Definition: world_objects.h:278
std::vector< BlamVector3 > vertices
Definition: world_objects.h:494
unsigned long long uint64_t
Definition: stdint.h:18
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(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveCylinder.cpp:12
bool custom_wireframe_datablock
Definition: world_objects.h:425
@ QF_USER_18
Definition: world_objects.h:71
IMGUI_API void Render()
Definition: imgui.cpp:4248
bool IsValidTag()
Definition: BlamWorldObject_Tag.cpp:319
BlamQueryFlags
Definition: world_objects.h:45
BLAM void AddShadowCaster(BlamWorldObject_TagLight *object)
Definition: shadow_casters.cpp:11
@ QF_USER_13
Definition: world_objects.h:66
uint64_t GetID()
Definition: BlamWorldObject.cpp:108
IMGUI_API bool CollapsingHeader(const char *label, ImGuiTreeNodeFlags flags=0)
Definition: imgui_widgets.cpp:5422
int resolution
The level of detail to use for the primitive. Only used in cylinders.
Definition: world_objects.h:517
void MarkForRebuild()
Definition: BlamWorldObject_Gizmo.cpp:26
BLAM BlamOrientedBoundingBox CreateOBBFromAABB(BlamVector3 position, BlamVector3 rotation, BlamVector3 scale, BlamVector3 local_aabb_min, BlamVector3 local_aabb_max)
Definition: raycast.cpp:82
#define tag_ligh
Definition: light.h:22
uint32_t GetQueryMask() override
Definition: BlamWorldObject_Primitive.cpp:371
BLAM BlamVector3 GetGizmoMousePosition3D()
Definition: ogre.cpp:762
void Draw() override
Draws the widget on-screen.
Definition: text.cpp:67
@ TopLeft
The widget will be placed at the top-left of the screen.
BlamVector2 GetShaderParameterVector2(std::string id)
Definition: BlamWorldObject.cpp:473
std::vector< submesh * > submeshes
Definition: types.h:55
bool use_bounding_sphere
Definition: render_model.h:32
vector2 size
The resolution of the bitmap.
Definition: bitmap.h:63
uint32_t texture_flags
Definition: types.h:209
bool uses_global_script
Definition: tags.h:155
BLAM BlamVector2 GetScreenPointFrom3DPoint(BlamVector3 position)
Definition: bgfx.cpp:463
BlamWorldObject * GetObjectAtIndex(int index)
Definition: BlamWorldState.cpp:178
Definition: world_objects.h:503
BlamColor color
The text foreground color.
Definition: ui.h:618
bool HasObject(uint64_t object_id)
Definition: BlamWorldObject_Group.cpp:41
BlamWorldObject_Primitive(BlamWorldObjectType _type, BlamWorldState *_world)
Creates a new primitive world object.
Definition: BlamWorldObject_Primitive.cpp:23
font DisplayOffset y
Definition: README.txt:68
Definition: sky_atm_parameters.h:27
BlamWorldObject * GetObjectById(uint64_t object_id)
Definition: BlamWorldState.cpp:186
~BlamWorldObject_Gizmo3DCursor()
Definition: BlamWorldObject_Gizmo3DCursor.cpp:23
float radius_1
A secondary radius of the primitive. Only used in cylinders.
Definition: world_objects.h:516
HCURSOR cursor
Main window cursor.
Definition: main.cpp:63
@ QF_USER_12
Definition: world_objects.h:65
uint64_t id
A unique identifier for this object. Used to identify objects during runtime.
Definition: world_objects.h:158
virtual BlamOrientedBoundingBox GetWorldOBB()
Definition: BlamWorldObject.cpp:505
void SetShadowColor(BlamColor color)
Definition: BlamWorldObject_Text3D.cpp:96
#define BITMAP_DEFAULT_WHITE
Definition: rendering.h:59
@ QF_USER_11
Definition: world_objects.h:64
void OnMouseHoverExit() override
Definition: BlamWorldObject_GizmoTransform.cpp:234
IMGUI_API bool BeginCombo(const char *label, const char *preview_value, ImGuiComboFlags flags=0)
Definition: imgui_widgets.cpp:1416
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
Definition: world_objects.h:73
@ QF_USER_5
Definition: world_objects.h:58
bgfx::IndexBufferHandle ib
Definition: world_objects.h:592
void ShowImGuiEditControls() override
Definition: BlamWorldObject_PrimitiveCylinder.cpp:471
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_GizmoTransform.cpp:200
bool custom_datablock
Definition: world_objects.h:424
@ QF_NONE
Definition: world_objects.h:79
void Color(float r, float g, float b, float a=1.0f)
Definition: ManualMesh.cpp:36
BlamWorldObject_GizmoGrid(BlamWorldState *_world)
Definition: BlamWorldObject_GizmoGrid.cpp:22
Ogre::Camera * getCamera(void) const
Definition: GraphicsSystem.h:150
void ShowImGuiEditControls() override
Definition: BlamWorldObject_Text3D.cpp:68
Definition: world_objects.h:247
BlamWorldObject_TagLight(BlamTagData *_tag_data, BlamWorldState *_world)
Definition: BlamWorldObject_TagLight.cpp:12
BLAM bgfx::UniformHandle GetUniform(std::string id)
Definition: shader_uniforms.cpp:174
Euler & setYaw(Radian y)
Set the yaw.
Definition: OgreEuler.h:87
Definition: tile_map.h:27
@ QF_ENGINE_RESERVED_4
Definition: world_objects.h:52
bool override_priority
Definition: world_objects.h:353
Definition: material.h:54
void Update() override
Definition: BlamWorldObject_GizmoGrid.cpp:303
void Rebuild() override
Definition: BlamWorldObject_Gizmo3DCursor.cpp:50
BlamColor GetShadowColor()
Definition: BlamWorldObject_Text3D.cpp:91
bool HasObject(uint64_t object_id)
Definition: BlamWorldState.cpp:162
@ QF_USER_14
Definition: world_objects.h:67
float radius_0
The radius of the primitive. Only used in cylinders.
Definition: world_objects.h:487
BlamWorldObjectType type
The type of this world object.
Definition: world_objects.h:169
BLAM void RemoveShadowCaster(BlamWorldObject *object)
Definition: shadow_casters.cpp:47
#define VIEWID_FORWARD
Definition: rendering.h:55
Vector3 forward() const
Get a vector pointing forwards.
Definition: OgreEuler.h:180
float radius_1
A secondary radius of the primitive. Only used in cylinders.
Definition: world_objects.h:488
float GetShaderParameterFloat(std::string id)
Definition: BlamWorldObject.cpp:463
void ShowImGuiEditControls() override
Definition: BlamWorldObject_GizmoGrid.cpp:319
BlamVector3 GetRotation()
Definition: BlamWorldObject.cpp:172
BlamWorldObject_Text3D(BlamWorldState *_world)
Definition: BlamWorldObject_Text3D.cpp:10
~BlamWorldObject_Text3D()
Definition: BlamWorldObject_Text3D.cpp:26
@ QF_USER_19
Definition: world_objects.h:72
BlamVector3 GetDirection()
Definition: BlamWorldObject_PrimitiveLine.cpp:107
bool override_color
Definition: world_objects.h:350
@ QF_USER_23
Definition: world_objects.h:76
void DestroyAttachments()
Definition: BlamWorldObject_Tag.cpp:373
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(BlamWorldState *_world)
Definition: BlamWorldObject_Gizmo3DCursor.cpp:11
unsigned int uint32_t
Definition: stdint.h:17
BLAM BlamTagData * GetTagData(std::string tag_path)
Retrieves information for a given tag.
Definition: tags.cpp:81
virtual void CreateManualObject()
Definition: BlamWorldObject_Primitive.cpp:61
bgfx::VertexLayout layout
Definition: types.h:200
void SetEndPoint(BlamVector3 point)
Definition: BlamWorldObject_PrimitiveLine.cpp:62
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_PrimitiveLine.cpp:123
Ogre::HlmsDatablock * datablock
Definition: world_objects.h:431
@ QF_ANY
Definition: world_objects.h:80
BlamVector3 GetAbsolutePosition()
Definition: BlamWorldObject.cpp:209
IMGUI_API void PopID()
Definition: imgui.cpp:7026
BlamVector3 axis_x
Definition: types.h:348
void OnTickEvent(TickEvent *event)
Definition: BlamWorldState.cpp:232
uint32_t GetQueryMask() override
Definition: BlamWorldObject_Tag.cpp:415
float GetLength()
Definition: BlamWorldObject_PrimitiveLine.cpp:114
virtual void OnMouseMove(MouseMoveEvent *event)
Definition: BlamWorldObject.cpp:321
BlamVector3 GetShaderParameterVector3(std::string id)
Definition: BlamWorldObject.cpp:484
void Triangle(int x, int y, int z)
Definition: ManualMesh.cpp:50
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_Text3D.cpp:31
BLAM BlamRay CreateRayFromViewportPoint(int screen_x, int screen_y)
Constructs a world-space ray from a screen-space cursor position.
Definition: raycast.cpp:10
BLAM Demo::GraphicsSystem * GetGraphicsSystem()
Retrieves the graphics system used by OGRE.
Definition: ogre.cpp:645
BLAM BlamVector3 GetGizmoMousePosition3D()
Definition: bgfx.cpp:550
bool GetHidden()
Definition: BlamWorldObject.cpp:289
Definition: world_objects.h:554
BlamWorldObject * GetObjectByName(std::string name, bool recursive_search=false)
Definition: BlamWorldState.cpp:202
bool RemoveObject(uint64_t object_id, bool delete_data=true)
Definition: BlamWorldState.cpp:133
BLAM mesh * GetModelFromTagPath(std::string tag_path)
Definition: models.cpp:220
Class representing the Director.
Definition: director.h:27
int resolution
The level of detail to use for the primitive. Only used in cylinders.
Definition: world_objects.h:489
Euler & setPitch(Radian p)
Set the pitch.
Definition: OgreEuler.h:98
BlamColor GetColor()
Definition: BlamWorldObject_Text3D.cpp:81
Class representing a primitive-based world object.
Definition: world_objects.h:406
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
Definition: world_objects.h:47
bool data_is_tag
Whether or not tagref_address points to tag data, or the tag's path.
Definition: tags.h:296
Definition: world_objects.h:337
void ShowImGuiEditControls() override
Definition: BlamWorldObject_PrimitiveLine.cpp:129
Definition: world_objects.h:377
BLAM Ogre::MaterialPtr GetTilesetMaterial(std::string tag_path, int tile_index)
Definition: tilesets.cpp:158
void Reset()
Definition: ManualMesh.cpp:193
IMGUI_API void EndCombo()
Definition: imgui_widgets.cpp:1522
void * data_address
The address of the referenced data.
Definition: tags.h:346
BlamVector3 GetEndPoint()
Definition: BlamWorldObject_PrimitiveLine.cpp:102
bgfx::VertexBufferHandle vb
Definition: world_objects.h:591
Offset font vertically by altering the io Font DisplayOffset value
Definition: README.txt:67
void SetTransformEnabled(bool enabled)
Definition: BlamWorldObject_Tag.cpp:360
Definition: world_objects.h:463
BlamVector3 aabb_max
Definition: types.h:46
@ QF_USER_22
Definition: world_objects.h:75
tag_reference atmosphere
Definition: scenario.h:38
BlamWorldObject_Text3D * bounds_debug_info
Definition: world_objects.h:301
Definition: world_objects.h:606
BlamVector3 direction
Definition: types.h:365
float distance
Definition: world_objects.h:86
int lines_y
Definition: world_objects.h:492
Class representing a world object.
Definition: world_objects.h:138
void OnMouseHoverEnter() override
Definition: BlamWorldObject_GizmoTransform.cpp:229
BlamVector3 GetStartPoint()
Definition: BlamWorldObject_PrimitiveLine.cpp:97
void RemoveObject(uint64_t object_id)
Definition: BlamWorldObject_Group.cpp:20
BLAM BlamVector3 GetMousePosition3D()
Definition: bgfx.cpp:545
Section * GetSection(std::string name)
Definition: ManualMesh.cpp:180
BlamWorldObject(BlamWorldState *_world, BlamWorldObjectType _type)
Creates a new world object.
Definition: BlamWorldObject.cpp:17
std::string text
The text to display within this text widget.
Definition: ui.h:622
@ QF_USER_10
Definition: world_objects.h:63
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_PrimitiveCylinder.cpp:443
BlamDirector * camera
Definition: director.cpp:3
BlamWorldObject_PrimitiveCuboid(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveCuboid.cpp:8
BlamVector3 center
Definition: types.h:346
int priority
Definition: world_objects.h:354
BLAM bool WasModelReloaded(std::string tag_path)
Definition: models.cpp:311
int GetObjectCount()
Definition: BlamWorldObject_Group.cpp:36
#define WORLD_OBJECT_USER_KEY
Definition: world_objects.h:18
void SetHidden(bool hidden)
Definition: BlamWorldObject.cpp:294
The original diffuse textures are from the NVIDIA texture with other maps generated from them by Steve Streeting The following license applies to all textures Single Product or Project Use of NVSDK Art Imagery THIS IS A LEGAL immediately delete the NVSDK Art Imagery from your hard disk If you proceed to use any of the you thereby signify that you have agreed to all of the terms and conditions set forth below You may not copy
Definition: TextureUsageAgreement.txt:6
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_Group.cpp:114
IMGUI_API bool ColorEdit4(const char *label, float col[4], ImGuiColorEditFlags flags=0)
Definition: imgui_widgets.cpp:4154
Definition: world_objects.h:473
BlamColor shadow_color
The text shadow color.
Definition: ui.h:619
@ QF_USER_1
Definition: world_objects.h:54
#define tag_obje
Definition: object.h:22
bool HasReference()
Checks if a tag reference has a tag specified or not.
Definition: tag_reference.cpp:81
@ QF_USER_16
Definition: world_objects.h:69
void OnMouseClick(MouseClickEvent *event) override
Definition: BlamWorldObject_GizmoTransform.cpp:220
#define ENGINE_TEXT(string_id)
Definition: engine_text.h:7
@ QF_ENGINE_RESERVED_2
Definition: world_objects.h:50
BlamVector3 GetScale()
Definition: BlamWorldObject.cpp:244
void SetPosition(BlamVector3 position)
Definition: BlamWorldObject.cpp:233
void RecreateNodeObjects()
Definition: BlamWorldObject_Tag.cpp:295
void SetCustomDatabablock(Ogre::HlmsDatablock *datablock, bool wireframe)
Definition: BlamWorldObject_Primitive.cpp:246
bool needs_update
Definition: world_objects.h:589
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_Primitive.cpp:85
void SetColor(BlamColor color)
Definition: BlamWorldObject_Text3D.cpp:86
int data_size
The size of the referenced data.
Definition: tags.h:347
BLAM Ogre::MeshPtr GetModelFromTagPath(std::string tag_path)
Definition: models.cpp:268
BLAM Ogre::Light * CreateLightFromTag(light *light)
Definition: lights.cpp:9
BlamWorldObject * parent
Definition: world_objects.h:167
BlamWorldObject_Tag(BlamTagData *_tag_data, BlamWorldState *_world)
Creates a new tag-based world object.
Definition: BlamWorldObject_Tag.cpp:18
~BlamWorldState()
Destroys the world state.
Definition: BlamWorldState.cpp:47
virtual void OnMouseUnclick(MouseUnclickEvent *event)
Definition: BlamWorldObject.cpp:331
BlamVector4 GetShaderParameterVector4(std::string id)
Definition: BlamWorldObject.cpp:495
void Position(float x, float y, float z)
Definition: ManualMesh.cpp:29
@ QF_USER_7
Definition: world_objects.h:60
void SetScale(BlamVector3 scale)
Definition: BlamWorldObject.cpp:249
void * address
The address pointing to the start of the tag's data.
Definition: tags.h:132
BlamGizmoCuboid(BlamWorldObject_GizmoTransform *parent, BlamAxis _axis)
Definition: BlamWorldObject_GizmoTransform.cpp:194
ManualMesh * manual_mesh
Definition: world_objects.h:422
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_GizmoGrid.cpp:84
BLAM shader * GetShaderTag(std::string tag_path)
Definition: shader.cpp:13
void Render(float delta) override
Renders the object to the screen.
Definition: BlamWorldObject_Tag.cpp:53
void SetStartPoint(BlamVector3 point)
Definition: BlamWorldObject_PrimitiveLine.cpp:56
Definition: world_objects.h:23
Definition: world_objects.h:360
void CreateSceneNode()
Definition: BlamWorldObject.cpp:417
config GlyphExtraSpacing x
Definition: README.txt:30
@ QF_USER_2
Definition: world_objects.h:55
BlamVector3 GetAabbMax()
Definition: ManualMesh.cpp:109
BLAM bool DebugToolsEnabled()
Checks whether or not debug tools are enabled.
Definition: engine_definitions.cpp:209
Class used to contain and access tag data.
Definition: tags.h:125
void SetActiveCamera(BlamWorldObject_Tag *camera)
Definition: BlamWorldState.cpp:248
void SetLength(float length)
Definition: BlamWorldObject_PrimitiveLine.cpp:77
BlamVector3 GetPointAtDistance(float distance)
Returns the world-space point along the ray at the given distance from the origin.
Definition: BlamRay.cpp:170
Ogre::MovableObject * ogre_item
Definition: world_objects.h:305
void * tagref_address
The address of the tagref data.
Definition: tags.h:295
data_reference tile_data
Definition: tile_map.h:32
@ QF_USER_24
Definition: world_objects.h:77
BlamWorldObject_Gizmo(BlamWorldObject *_parent, BlamWorldObjectType _type)
Definition: world_objects.h:597
void SetQueryMask(uint32_t mask)
Definition: BlamWorldObject_Tag.cpp:405
Blam3DPrimitiveRenderMode render_mode
Definition: world_objects.h:436
virtual void ShowImGuiEditControls()
Definition: BlamWorldObject.cpp:127
uint64_t state_flags
Definition: world_objects.h:164
void TextureCoord(float u, float v)
Definition: ManualMesh.cpp:44
bool needs_rebuild
Definition: world_objects.h:590
@ QF_ENGINE_RESERVED_3
Definition: world_objects.h:51
unsigned short uint16_t
Definition: stdint.h:16
std::vector< BlamWorldObject * > GetTransformGizmoObjects()
Definition: BlamWorldObject_Tag.cpp:395
#define INT32_MAX
Definition: stdint.h:66
void Rotate(BlamVector3 axis, float rotation_amount, BlamTransformSpace transform_space=BlamTransformSpace::Parent)
Definition: BlamWorldObject.cpp:371
void SetShaderParameter(std::string id, float value)
Definition: BlamWorldObject.cpp:443
BlamWorldObject_PrimitiveLine(BlamWorldState *_world)
Definition: BlamWorldObject_PrimitiveLine.cpp:10
BlamWorldState * world
The world state this object belongs to.
Definition: world_objects.h:166
~BlamWorldObject_Primitive()
Definition: BlamWorldObject_Primitive.cpp:43
Class for Euler rotations.
Definition: OgreEuler.h:29
BLAM bool HasZoomLevelChanged()
Definition: ogre.cpp:940
IMGUI_API void PushID(const char *str_id)
Definition: imgui.cpp:6995
void ShowImGuiEditControls() override
Definition: BlamWorldObject_PrimitiveSphere.cpp:321
Class representing a world state.
Definition: world_objects.h:715
BLAM bool * GetGlobalAsBoolean(std::string name)
Retrieves a global's value as a boolean.
Definition: globals.cpp:343
BlamWorldObject_TagRenderModel(BlamTagData *_tag_data, BlamWorldState *_world)
Definition: BlamWorldObject_TagRenderModel.cpp:18
IMGUI_API bool Button(const char *label, const ImVec2 &size=ImVec2(0, 0))
Definition: imgui_widgets.cpp:644
void Render(BlamVector3 position, BlamVector3 rotation, BlamVector3 scale)
Definition: ManualMesh.cpp:119
void SetRotation(BlamVector3 _rotation, bool local_axes=true)
Definition: BlamWorldObject.cpp:177
IMGUI_API ImGuiID GetID(const char *str_id)
Definition: imgui.cpp:7032
~BlamWorldObject_TagTileMap()
Definition: BlamWorldObject_TagTileMap.cpp:27
bgfx::VertexLayout vl
Definition: world_objects.h:593
BlamTransformSpace
Definition: world_objects.h:125
Class representing a Text widget.
Definition: ui.h:550
@ QF_USER_17
Definition: world_objects.h:70
BLAM void RefreshLightCache()
Definition: lights.cpp:27
void Build()
Definition: ManualMesh.cpp:73
Section * CreateSection(std::string name, ManualMesh::SectionIndexType type)
Definition: ManualMesh.cpp:173
#define tag_mode
Definition: render_model.h:22
tag_reference linked_light
Definition: sky_atm_parameters.h:32
void CreateManualObject()
Definition: BlamWorldObject_GizmoTransform.cpp:62
std::string GetText()
Definition: BlamWorldObject_Text3D.cpp:101
std::string description
An optional description of this object.
Definition: world_objects.h:160
BLAM bgfx::TextureHandle GetTextureFromTag(std::string tag_path)
Retrieves an OGRE texture from a tag path.
Definition: bitmaps.cpp:453
void Rebuild() override
Definition: BlamWorldObject_GizmoGrid.cpp:149
BlamWorldState()
Initializes a new world state.
Definition: BlamWorldState.cpp:17
vector3 default_scale_modifier
Definition: render_model.h:52
std::string error_text
Definition: world_objects.h:300
std::string tag_class
The tag's short class name.
Definition: tags.h:146
vector2 size
Definition: tile_map.h:30