|
Brunot
|
#include <Editor.h>
Public Member Functions | |
| auto | getDefaultFont () -> ImFont * |
| Editor () | |
| ~Editor () override | |
| Editor (const Editor &other)=default | |
| Editor (Editor &&other) noexcept | |
| auto | operator= (const Editor &other) -> Editor & |
| auto | operator= (Editor &&other) noexcept -> Editor &=default |
| auto | clone () const -> std::unique_ptr< GameObject > override |
| makes a copy a GameObject even if it's held polymorphically | |
| auto | onUpdate (float dt) -> void override |
| called once every frame. | |
| auto | endWindow () -> void override |
| currently unused, but intended to but was assumed to be necessary for a proper ImGui editor | |
| auto | onRender () -> void override |
| called every frame after update has been called for every object. | |
| auto | load (const Stream &stream) -> void override |
| Implementations will load the state of a GameObject from a th::Json Object. | |
| auto | save (Stream &stream) const -> void override |
| Implementations will load the state of a GameObject to a th::Json object. | |
| auto | PreRender () -> void |
| auto | PostRender () -> void |
| Post render will run all the normal Render() stuff instead of old function to allow for frame buffering to work. | |
| auto | shouldShowGui () const -> bool |
| auto | drawSystemMenu () -> void |
| Draw the window that shows all the systems in the game. | |
| auto | drawSceneMenu () -> void |
| draw the tree of Entities that exist in a scene | |
| auto | EntityComponentsEditor () const -> void |
| auto | drawEntitiesCompact () -> bool |
| used to determine how much spacing to give entities in the scene view | |
| auto | EmitterEditor () const -> void |
| draw editor for adjusting settings of the selected emitter | |
| auto | receiveShowGUIKeyPressed (const Message *message) -> Message |
| auto | select (Entity *selected) -> void |
| selects an Entity, and shows it's children in the Component view editor | |
| auto | isSelected (Entity *entity) -> bool |
| check whether an entity is currently selected in the editor | |
| auto | getSelectedEntity () -> Entity * |
| return selected entity, or nullptr if no entity is selected | |
| auto | deselect (Entity *entity) -> void |
| deselects and entity if it is currently selected. | |
| auto | isPassingFilter (Entity *entity) -> bool |
| See if the an Entity is passing the filter and should be drawn in the Scene View Currently unimplemented. | |
| auto | toggleGuizmos () -> void |
| auto | getSliderRatio () const -> float |
| auto | select (ParticleEmitter *selected) -> void |
| selects a particle Emitter, it will be rendered in the Emitter menu | |
| auto | isSelected (ParticleEmitter *emitter) -> bool |
| returns whether an emitter is currently selected | |
| auto | deselect (ParticleEmitter *toDeselect) -> void |
| deselects an emitter, if it is currently selected. | |
| auto | getSceneViewPortMousePosition () -> Vector4D & |
| Public Member Functions inherited from System | |
| auto | showMenu () -> void override |
| Called before update each frame, for calling ImGui editor code relevant to the gameObject. | |
| auto | getKey () const -> Key override |
| Generates a unique Key that corresponds to the GameObject. | |
| auto | getParent () const -> GameObject *override |
| Gets the parent of a GameObject. | |
| Public Member Functions inherited from GameObject | |
| GameObject (std::string typeName, gobj::Type parentType, gobj::Type type) | |
| constructor for gameobject. | |
| virtual | ~GameObject () |
| destructor for GameObject. | |
| GameObject (const GameObject &other) | |
| Copy Constructor. | |
| auto | operator= (const GameObject &other) -> GameObject & |
| copy assignment operator | |
| GameObject (GameObject &&other) noexcept | |
| Move constructor. | |
| auto | operator= (GameObject &&other) noexcept -> GameObject & |
| Move assignment operator. | |
| virtual auto | update (float dt) -> void |
| called once every frame. | |
| virtual auto | render () -> void |
| called every frame after update has been called for every object. | |
| virtual auto | destroy () -> void |
| Marks an GameObject to be destroyed. | |
| virtual auto | onEnterEngine () -> void |
| hook that is called when a GameObject enters the Engine tree. | |
| virtual auto | onSceneStart (const std::string &sceneName) -> void |
| Hook that is called before the first frame a scene is run, but after the entire scene is loaded into the engine To receive the hook, simply override the function in your class. | |
| virtual auto | onSceneExit (const std::string &sceneName) -> void |
| Hook that is called right before a scene is unloaded To receive the hook, simply override the function in your class. | |
| virtual auto | for_each (std::function< void(GameObject &)> func) -> void |
| applies a function to every child. | |
| virtual auto | for_each (std::function< void(const GameObject &)> func) const -> void |
| applies a const function to every child. | |
| virtual auto | parentTo (GameObject *newParent) -> bool |
| Sets the GameObject as a child of another GameObject. | |
| auto | getInternalParent () const -> GameObject * |
| returns the actual owning parent of the GameObject | |
| virtual auto | addChild (std::unique_ptr< GameObject > newChild) -> bool |
| Adds a child to a GameObject. | |
| auto | destroyed () const -> bool |
| auto | getUUID () const -> gobj::UUID |
| auto | isUUID (gobj::UUID compareUUID) const -> bool |
| auto | getName () const -> const std::string & |
| Gets the type of the object as a string. | |
| auto | getNickname () const -> const std::string & |
| Gets the nickname (custom, writable name) of a GameObject. | |
| auto | getFormattedName () const -> const std::string & |
| combines a GameObjects Type, Nickname, and UUID into one string, for use with logging. | |
| auto | nameEquals (const std::string &compareString) const -> bool |
| check whether a GameObjects typeName is equivilent to a given string. | |
| auto | isType (gobj::Type otherType) const -> bool |
| check whether the GameObject is the same as a given type. | |
| auto | getObjectType () const -> gobj::Type |
| gets the internal type of the GameObject, as an enum | |
| auto | setNickname (const std::string &newNickname) -> void |
| sets the GameObjects nickname. | |
| auto | updates () const -> bool |
| auto | renders () const -> bool |
| auto | receivesMessages () const -> bool |
| auto | isActive () const -> bool |
| virtual auto | setShouldUpdate (bool _shouldUpdate) -> void |
| set whether the GameObject should update every frame, and whether all of it's children should update every frame | |
| virtual auto | setShouldRender (bool _shouldRender) -> void |
| set whether the GameObject should render every frame, and whether all of it's children should render every frame | |
| virtual auto | setShouldReceiveMessages (bool _shouldReceiveMessages) -> void |
| set whether the GameObject should Receive Messags, and whether all of it's children should receive messages | |
| auto | setActive (bool shouldBeActive) -> void |
| set the GameObject should update, render, and receive messages | |
Static Public Member Functions | |
| static auto | getEnum () -> Type |
| function required by all systems | |
| static auto | showTexturePickerMenu () -> gfx::Texture * |
| creates a dropdown menu to select a new texture. | |
| static auto | showMeshPickerMenu () -> gfx::Mesh * |
| shows a dropdown menu to choose meshes | |
| static auto | displayTexture (const gfx::Texture *texture) -> void |
| show a texture in a small square | |
Private Member Functions | |
| auto | SceneViewPort () -> void |
| This is the Window that activates the viewport and renders the framebuffer. | |
| void | calculateViewportCoords (float width, float height) |
| helper function to calculate the coordinates of the mouse over the viewport | |
Static Private Member Functions | |
| static void | drawEditorTopBar () |
| draw the top bar of the editor | |
Private Attributes | |
| ImFont * | defaultFont |
| The default font of the Editor. | |
| float | sliderRatio = 0.4f |
| The ratio of the total width a slider should take up. | |
| ImGuiTextFilter | entityFilter |
| IMGui filter for searching the scene tree. currently unused, as filtering a tree is non-trivial. | |
| Entity * | selectedEntity = nullptr |
| The entity currently selected in the Scene Tree. | |
| bool | compactEntityView = false |
| Whether the Scene Tree should be rendered more compact. | |
| bool | showImGui {START_WITH_IMGUI} |
| Whether the Editor should be shown. | |
| Vector4D | editorMousePos = {0.f, 0.f, 0.f, 1.f} |
| Position of the mouse relative to the scene viewport. | |
| ParticleEmitter * | selectedEmitter = nullptr |
| the emitter last selected on a particleGenerator | |
Additional Inherited Members | |
| Public Types inherited from System | |
| enum class | Type : unsigned short { system_error_type = 0 , newSystemStub = 100 , OpenGL = 200 , Input = 300 , Editor = 400 , Messaging = 500 , Camera = 600 , Logging = 700 , AudioSystem = 750 , Scoring = 800 , HandSystem = 900 , PlayerTurn = 950 , Table = 960 , SceneManager = 1000 , Particles = 1050 , ActionList = 1100 , DebugDraw = 1150 , ColliderSystem = 1300 , Options = 1400 , TestRunner = 64'000 } |
| Public Attributes inherited from GameObject | |
| friend | Entity |
| friend | Node |
| friend | ChildrenHandeler |
| friend | Engine |
| Protected Member Functions inherited from System | |
| virtual auto | systemShowMenu () -> void |
| Specific systems should override this function to show their specific menu for the system. | |
| System (const std::string &typeName, Type systemType) | |
| Protected Member Functions inherited from GameObject | |
| auto | setInternalParent (GameObject *parent) -> bool |
| sets the internal parent of a GameObject directly, avoiding abstractions provided by ParentTo(). | |
| auto | getGameObjectJson () const -> json |
| Used for serializing GameObjects. | |
| auto | setGameObjectJson (const json &stream) -> void |
| used for deserializing GameObjects | |
| virtual auto | getChildren () const -> std::shared_ptr< std::vector< GameObject * > > |
| gets a vector of a GameObjects public (i.e. | |
| auto | checkAddToSceneHook () -> void |
| Determine if the GameObject was recently added to the engine, and if it was, call onEngineEnter. | |
| sys::Editor::Editor | ( | ) |
|
override |
|
default |
|
noexcept |
|
private |
helper function to calculate the coordinates of the mouse over the viewport
| width | width of the viewport |
| height | height of the viewport |
|
inlineoverridevirtual |
makes a copy a GameObject even if it's held polymorphically
Implements GameObject.
| auto sys::Editor::deselect | ( | Entity * | entity | ) | ->void |
deselects and entity if it is currently selected.
used in the dtor of entities
| entity | the entity to deselect |
| auto sys::Editor::deselect | ( | ParticleEmitter * | toDeselect | ) | ->void |
deselects an emitter, if it is currently selected.
used in dtor of emitter
| toDeselect | the Emitter to be deslected |
|
static |
show a texture in a small square
| texture | Texture to show |
|
staticprivate |
draw the top bar of the editor
| auto sys::Editor::drawEntitiesCompact | ( | ) | ->bool |
used to determine how much spacing to give entities in the scene view
| auto sys::Editor::drawSceneMenu | ( | ) | ->void |
draw the tree of Entities that exist in a scene
| auto sys::Editor::drawSystemMenu | ( | ) | ->void |
Draw the window that shows all the systems in the game.
| auto sys::Editor::EmitterEditor | ( | ) | const->void |
draw editor for adjusting settings of the selected emitter
|
inlineoverridevirtual |
currently unused, but intended to but was assumed to be necessary for a proper ImGui editor
Implements GameObject.
| auto sys::Editor::EntityComponentsEditor | ( | ) | const->void |
|
inline |
|
inlinestatic |
function required by all systems
| auto sys::Editor::getSceneViewPortMousePosition | ( | ) | ->Vector4D & |
| auto sys::Editor::getSelectedEntity | ( | ) | ->Entity * |
return selected entity, or nullptr if no entity is selected
|
nodiscard |
| auto sys::Editor::isPassingFilter | ( | Entity * | entity | ) | ->bool |
| auto sys::Editor::isSelected | ( | Entity * | entity | ) | ->bool |
check whether an entity is currently selected in the editor
| entity | entity to check |
| auto sys::Editor::isSelected | ( | ParticleEmitter * | emitter | ) | ->bool |
returns whether an emitter is currently selected
| emitter | emitter to check |
|
overridevirtual |
Implementations will load the state of a GameObject from a th::Json Object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
overridevirtual |
called every frame after update has been called for every object.
Generally used for rendering an object to the screen, when applicable. Unimplemented in GameObject
Implements GameObject.
|
overridevirtual |
called once every frame.
Generally used for timers, movement, condition checks, etc. Unimplemented in GameObject
| dt | the time in seconds that has elapsed |
Implements GameObject.
| auto sys::Editor::PostRender | ( | ) | ->void |
Post render will run all the normal Render() stuff instead of old function to allow for frame buffering to work.
| auto sys::Editor::PreRender | ( | ) | ->void |
| message |
|
overridevirtual |
Implementations will load the state of a GameObject to a th::Json object.
Unimplemented in GameObject
| stream | th::Json Object |
Implements GameObject.
|
private |
This is the Window that activates the viewport and renders the framebuffer.
| auto sys::Editor::select | ( | Entity * | selected | ) | ->void |
| auto sys::Editor::select | ( | ParticleEmitter * | selected | ) | ->void |
selects a particle Emitter, it will be rendered in the Emitter menu
| selected | emitter to show in Emitter menu |
|
inline |
|
static |
shows a dropdown menu to choose meshes
|
static |
creates a dropdown menu to select a new texture.
| auto sys::Editor::toggleGuizmos | ( | ) | ->void |
|
private |
Whether the Scene Tree should be rendered more compact.
|
private |
The default font of the Editor.
|
private |
Position of the mouse relative to the scene viewport.
|
private |
IMGui filter for searching the scene tree. currently unused, as filtering a tree is non-trivial.
|
private |
the emitter last selected on a particleGenerator
|
private |
The entity currently selected in the Scene Tree.
|
private |
Whether the Editor should be shown.
|
private |
The ratio of the total width a slider should take up.