Code cleanup after #823

This commit is contained in:
Wojtek Figat
2022-11-23 19:18:30 +01:00
parent 90bf466495
commit 76c1045444
43 changed files with 118 additions and 95 deletions

View File

@@ -2,7 +2,6 @@
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq;
using FlaxEditor.GUI.Tabs; using FlaxEditor.GUI.Tabs;
using FlaxEditor.GUI.Tree; using FlaxEditor.GUI.Tree;
using FlaxEditor.Scripting; using FlaxEditor.Scripting;
@@ -100,7 +99,7 @@ namespace FlaxEditor.Windows
private TextBox _searchBox; private TextBox _searchBox;
private ContainerControl _groupSearch; private ContainerControl _groupSearch;
private Tabs actorGroups; private Tabs _actorGroups;
/// <summary> /// <summary>
/// The editor instance. /// The editor instance.
@@ -120,7 +119,7 @@ namespace FlaxEditor.Windows
ScriptsBuilder.ScriptsReload += OnScriptsReload; ScriptsBuilder.ScriptsReload += OnScriptsReload;
ScriptsBuilder.ScriptsReloadEnd += OnScriptsReloadEnd; ScriptsBuilder.ScriptsReloadEnd += OnScriptsReloadEnd;
actorGroups = new Tabs _actorGroups = new Tabs
{ {
Orientation = Orientation.Vertical, Orientation = Orientation.Vertical,
UseScroll = true, UseScroll = true,
@@ -130,19 +129,19 @@ namespace FlaxEditor.Windows
Parent = this, Parent = this,
}; };
_groupSearch = CreateGroupWithList(actorGroups, "Search", 26); _groupSearch = CreateGroupWithList(_actorGroups, "Search", 26);
_searchBox = new TextBox _searchBox = new TextBox
{ {
AnchorPreset = AnchorPresets.HorizontalStretchTop, AnchorPreset = AnchorPresets.HorizontalStretchTop,
WatermarkText = "Search...", WatermarkText = "Search...",
Parent = _groupSearch.Parent.Parent, Parent = _groupSearch.Parent.Parent,
Bounds = new Rectangle(4, 4, actorGroups.Width - 8, 18), Bounds = new Rectangle(4, 4, _actorGroups.Width - 8, 18),
}; };
_searchBox.TextChanged += OnSearchBoxTextChanged; _searchBox.TextChanged += OnSearchBoxTextChanged;
RefreshActorTabs(); RefreshActorTabs();
actorGroups.SelectedTabIndex = 1; _actorGroups.SelectedTabIndex = 1;
} }
private void OnScriptsReload() private void OnScriptsReload()
@@ -161,8 +160,8 @@ namespace FlaxEditor.Windows
private void RefreshActorTabs() private void RefreshActorTabs()
{ {
// Remove tabs // Remove tabs
List<Tab> tabs = new List<Tab>(); var tabs = new List<Tab>();
foreach (var child in actorGroups.Children) foreach (var child in _actorGroups.Children)
{ {
if (child is Tab tab) if (child is Tab tab)
{ {
@@ -170,14 +169,14 @@ namespace FlaxEditor.Windows
tabs.Add(tab); tabs.Add(tab);
} }
} }
foreach (var tab in tabs) foreach (var tab in tabs)
{ {
var group = actorGroups.Children.Find(T => T == tab); var group = _actorGroups.Children.Find(T => T == tab);
group.Dispose(); group.Dispose();
} }
var groupBasicModels = CreateGroupWithList(actorGroups, "Basic Models"); // Setup primitives tabs
var groupBasicModels = CreateGroupWithList(_actorGroups, "Basic Models");
groupBasicModels.AddChild(CreateEditorAssetItem("Cube", "Primitives/Cube.flax")); groupBasicModels.AddChild(CreateEditorAssetItem("Cube", "Primitives/Cube.flax"));
groupBasicModels.AddChild(CreateEditorAssetItem("Sphere", "Primitives/Sphere.flax")); groupBasicModels.AddChild(CreateEditorAssetItem("Sphere", "Primitives/Sphere.flax"));
groupBasicModels.AddChild(CreateEditorAssetItem("Plane", "Primitives/Plane.flax")); groupBasicModels.AddChild(CreateEditorAssetItem("Plane", "Primitives/Plane.flax"));
@@ -186,18 +185,17 @@ namespace FlaxEditor.Windows
groupBasicModels.AddChild(CreateEditorAssetItem("Capsule", "Primitives/Capsule.flax")); groupBasicModels.AddChild(CreateEditorAssetItem("Capsule", "Primitives/Capsule.flax"));
// Created first to order specific tabs // Created first to order specific tabs
CreateGroupWithList(actorGroups, "Lights"); CreateGroupWithList(_actorGroups, "Lights");
CreateGroupWithList(actorGroups, "Visuals"); CreateGroupWithList(_actorGroups, "Visuals");
CreateGroupWithList(actorGroups, "Physics"); CreateGroupWithList(_actorGroups, "Physics");
CreateGroupWithList(actorGroups, "GUI"); CreateGroupWithList(_actorGroups, "GUI");
CreateGroupWithList(actorGroups, "Other"); CreateGroupWithList(_actorGroups, "Other");
// Add other actor types to respective tab based on attribute // Add other actor types to respective tab based on attribute
foreach (var actorType in Editor.CodeEditing.Actors.Get()) foreach (var actorType in Editor.CodeEditing.Actors.Get())
{ {
if (actorType.IsAbstract) if (actorType.IsAbstract)
continue; continue;
ActorToolboxAttribute attribute = null; ActorToolboxAttribute attribute = null;
foreach (var e in actorType.GetAttributes(false)) foreach (var e in actorType.GetAttributes(false))
{ {
@@ -207,19 +205,17 @@ namespace FlaxEditor.Windows
break; break;
} }
} }
if (attribute == null) if (attribute == null)
continue; continue;
var groupName = attribute.Group.Trim();
var groupName = attribute.Group;
// Check if tab already exists and add it to the tab // Check if tab already exists and add it to the tab
var actorTabExists = false; var actorTabExists = false;
foreach (var child in actorGroups.Children) foreach (var child in _actorGroups.Children)
{ {
if (child is Tab tab) if (child is Tab tab)
{ {
if (tab.Text == groupName.Trim()) if (string.Equals(tab.Text, groupName, StringComparison.OrdinalIgnoreCase))
{ {
var tree = tab.GetChild<Panel>().GetChild<Tree>(); var tree = tab.GetChild<Panel>().GetChild<Tree>();
if (tree != null) if (tree != null)
@@ -235,7 +231,7 @@ namespace FlaxEditor.Windows
if (actorTabExists) if (actorTabExists)
continue; continue;
var group = CreateGroupWithList(actorGroups, groupName.Trim()); var group = CreateGroupWithList(_actorGroups, groupName);
group.AddChild(string.IsNullOrEmpty(attribute.Name) ? CreateActorItem(Utilities.Utils.GetPropertyNameUI(actorType.Name), actorType) : CreateActorItem(attribute.Name, actorType)); group.AddChild(string.IsNullOrEmpty(attribute.Name) ? CreateActorItem(Utilities.Utils.GetPropertyNameUI(actorType.Name), actorType) : CreateActorItem(attribute.Name, actorType));
group.SortChildren(); group.SortChildren();
} }

View File

@@ -11,7 +11,8 @@
/// <summary> /// <summary>
/// The scene animation playback actor. /// The scene animation playback actor.
/// </summary> /// </summary>
API_CLASS(Attributes = "ActorContextMenu(\"New/Other/Scene Animation\"), ActorToolbox(\"Other\", \"Scene Animation\")") class FLAXENGINE_API SceneAnimationPlayer : public Actor, public IPostFxSettingsProvider API_CLASS(Attributes="ActorContextMenu(\"New/Other/Scene Animation\"), ActorToolbox(\"Other\", \"Scene Animation\")")
class FLAXENGINE_API SceneAnimationPlayer : public Actor, public IPostFxSettingsProvider
{ {
DECLARE_SCENE_OBJECT(SceneAnimationPlayer); DECLARE_SCENE_OBJECT(SceneAnimationPlayer);

View File

@@ -7,7 +7,8 @@
/// <summary> /// <summary>
/// Represents a listener that hears audio sources. For spatial audio the volume and pitch of played audio is determined by the distance, orientation and velocity differences between the source and the listener. /// Represents a listener that hears audio sources. For spatial audio the volume and pitch of played audio is determined by the distance, orientation and velocity differences between the source and the listener.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Audio/Audio Listener\"), ActorToolbox(\"Other\")") class FLAXENGINE_API AudioListener : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Audio/Audio Listener\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API AudioListener : public Actor
{ {
DECLARE_SCENE_OBJECT(AudioListener); DECLARE_SCENE_OBJECT(AudioListener);
private: private:

View File

@@ -13,7 +13,8 @@
/// <remarks> /// <remarks>
/// Whether or not an audio source is spatial is controlled by the assigned AudioClip.The volume and the pitch of a spatial audio source is controlled by its position and the AudioListener's position/direction/velocity. /// Whether or not an audio source is spatial is controlled by the assigned AudioClip.The volume and the pitch of a spatial audio source is controlled by its position and the AudioListener's position/direction/velocity.
/// </remarks> /// </remarks>
API_CLASS(Attributes="ActorContextMenu(\"New/Audio/Audio Source\"), ActorToolbox(\"Other\")") class FLAXENGINE_API AudioSource : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Audio/Audio Source\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API AudioSource : public Actor
{ {
DECLARE_SCENE_OBJECT(AudioSource); DECLARE_SCENE_OBJECT(AudioSource);
friend class AudioStreamingHandler; friend class AudioStreamingHandler;

View File

@@ -12,7 +12,8 @@
/// <summary> /// <summary>
/// Performs an animation and renders a skinned model. /// Performs an animation and renders a skinned model.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Other/Animated Model\"), ActorToolbox(\"Other\")") class FLAXENGINE_API AnimatedModel : public ModelInstanceActor API_CLASS(Attributes="ActorContextMenu(\"New/Other/Animated Model\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API AnimatedModel : public ModelInstanceActor
{ {
DECLARE_SCENE_OBJECT(AnimatedModel); DECLARE_SCENE_OBJECT(AnimatedModel);
friend class AnimationsSystem; friend class AnimationsSystem;

View File

@@ -7,10 +7,10 @@
/// <summary> /// <summary>
/// Actor that links to the animated model skeleton node transformation. /// Actor that links to the animated model skeleton node transformation.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Other/Bone Socket\"), ActorToolbox(\"Other\")") class FLAXENGINE_API BoneSocket : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Other/Bone Socket\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API BoneSocket : public Actor
{ {
DECLARE_SCENE_OBJECT(BoneSocket); DECLARE_SCENE_OBJECT(BoneSocket);
private: private:
String _node; String _node;
int32 _index; int32 _index;
@@ -20,7 +20,6 @@ public:
/// <summary> /// <summary>
/// Gets the target node name to link to it. /// Gets the target node name to link to it.
/// </summary> /// </summary>
/// <returns>The target node name.</returns>
API_PROPERTY(Attributes="EditorOrder(10), EditorDisplay(\"Bone Socket\"), CustomEditorAlias(\"FlaxEditor.CustomEditors.Editors.SkeletonNodeEditor\")") API_PROPERTY(Attributes="EditorOrder(10), EditorDisplay(\"Bone Socket\"), CustomEditorAlias(\"FlaxEditor.CustomEditors.Editors.SkeletonNodeEditor\")")
FORCE_INLINE const String& GetNode() const FORCE_INLINE const String& GetNode() const
{ {
@@ -30,14 +29,12 @@ public:
/// <summary> /// <summary>
/// Sets the target node to link to it. /// Sets the target node to link to it.
/// </summary> /// </summary>
/// <param name="name">The target node name.</param>
API_PROPERTY() API_PROPERTY()
void SetNode(const StringView& name); void SetNode(const StringView& name);
/// <summary> /// <summary>
/// Gets the value indicating whenever use the target node scale. Otherwise won't override the actor scale. /// Gets the value indicating whenever use the target node scale. Otherwise won't override the actor scale.
/// </summary> /// </summary>
/// <returns>If set to <c>true</c> the node socket will use target node scale, otherwise it will be ignored.</returns>
API_PROPERTY(Attributes="EditorOrder(20), EditorDisplay(\"Bone Socket\"), DefaultValue(false)") API_PROPERTY(Attributes="EditorOrder(20), EditorDisplay(\"Bone Socket\"), DefaultValue(false)")
FORCE_INLINE bool GetUseScale() const FORCE_INLINE bool GetUseScale() const
{ {
@@ -47,7 +44,6 @@ public:
/// <summary> /// <summary>
/// Sets the value indicating whenever use the target node scale. Otherwise won't override the actor scale. /// Sets the value indicating whenever use the target node scale. Otherwise won't override the actor scale.
/// </summary> /// </summary>
/// <param name="value">If set to <c>true</c> the node socket will use target node scale, otherwise it will be ignored.</param>
API_PROPERTY() API_PROPERTY()
void SetUseScale(bool value); void SetUseScale(bool value);

View File

@@ -65,7 +65,8 @@ public:
/// <summary> /// <summary>
/// Performs CSG box brush operation that adds or removes geometry. /// Performs CSG box brush operation that adds or removes geometry.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Other/Box Brush\"), ActorToolbox(\"Other\", \"CSG Box Brush\")") class FLAXENGINE_API BoxBrush : public Actor, public CSG::Brush API_CLASS(Attributes="ActorContextMenu(\"New/Other/Box Brush\"), ActorToolbox(\"Other\", \"CSG Box Brush\")")
class FLAXENGINE_API BoxBrush : public Actor, public CSG::Brush
{ {
DECLARE_SCENE_OBJECT(BoxBrush); DECLARE_SCENE_OBJECT(BoxBrush);
private: private:

View File

@@ -2,6 +2,7 @@
#include "Camera.h" #include "Camera.h"
#include "Engine/Level/SceneObjectsFactory.h" #include "Engine/Level/SceneObjectsFactory.h"
#include "Engine/Core/Math/Matrix.h"
#include "Engine/Core/Math/Viewport.h" #include "Engine/Core/Math/Viewport.h"
#include "Engine/Content/Assets/Model.h" #include "Engine/Content/Assets/Model.h"
#include "Engine/Content/Content.h" #include "Engine/Content/Content.h"

View File

@@ -3,7 +3,6 @@
#pragma once #pragma once
#include "../Actor.h" #include "../Actor.h"
#include "Engine/Core/Math/Matrix.h"
#include "Engine/Core/Math/BoundingFrustum.h" #include "Engine/Core/Math/BoundingFrustum.h"
#include "Engine/Core/Math/Viewport.h" #include "Engine/Core/Math/Viewport.h"
#include "Engine/Core/Math/Ray.h" #include "Engine/Core/Math/Ray.h"
@@ -18,7 +17,8 @@
/// <summary> /// <summary>
/// Describes the camera projection and view. Provides information about how to render scene (viewport location and direction, etc.). /// Describes the camera projection and view. Provides information about how to render scene (viewport location and direction, etc.).
/// </summary> /// </summary>
API_CLASS(Sealed, Attributes="ActorContextMenu(\"New/Camera\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API Camera : public Actor API_CLASS(Sealed, Attributes="ActorContextMenu(\"New/Camera\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API Camera : public Actor
{ {
DECLARE_SCENE_OBJECT(Camera); DECLARE_SCENE_OBJECT(Camera);

View File

@@ -11,7 +11,8 @@
/// <summary> /// <summary>
/// Actor that draws the can be used to draw a custom decals on top of the other objects. /// Actor that draws the can be used to draw a custom decals on top of the other objects.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Decal\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API Decal : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Decal\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API Decal : public Actor
{ {
DECLARE_SCENE_OBJECT(Decal); DECLARE_SCENE_OBJECT(Decal);
private: private:
@@ -50,7 +51,6 @@ public:
/// <summary> /// <summary>
/// Sets the decal bounds size (in local space). /// Sets the decal bounds size (in local space).
/// </summary> /// </summary>
/// <param name="value">The value.</param>
API_PROPERTY() void SetSize(const Vector3& value); API_PROPERTY() void SetSize(const Vector3& value);
public: public:

View File

@@ -7,7 +7,8 @@
/// <summary> /// <summary>
/// Directional light emits light from direction in space. /// Directional light emits light from direction in space.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Directional Light\"), ActorToolbox(\"Lights\")") class FLAXENGINE_API DirectionalLight : public LightWithShadow API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Directional Light\"), ActorToolbox(\"Lights\")")
class FLAXENGINE_API DirectionalLight : public LightWithShadow
{ {
DECLARE_SCENE_OBJECT(DirectionalLight); DECLARE_SCENE_OBJECT(DirectionalLight);
private: private:

View File

@@ -7,7 +7,8 @@
/// <summary> /// <summary>
/// The empty actor that is useful to create hierarchy and/or hold scripts. See <see cref="Script"/>. /// The empty actor that is useful to create hierarchy and/or hold scripts. See <see cref="Script"/>.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Actor\"), ActorToolbox(\"Other\")") class FLAXENGINE_API EmptyActor : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Actor\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API EmptyActor : public Actor
{ {
DECLARE_SCENE_OBJECT(EmptyActor); DECLARE_SCENE_OBJECT(EmptyActor);
public: public:

View File

@@ -10,7 +10,8 @@
/// <summary> /// <summary>
/// Environment Probe can capture space around the objects to provide reflections. /// Environment Probe can capture space around the objects to provide reflections.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Environment Probe\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API EnvironmentProbe : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Environment Probe\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API EnvironmentProbe : public Actor
{ {
DECLARE_SCENE_OBJECT(EnvironmentProbe); DECLARE_SCENE_OBJECT(EnvironmentProbe);
public: public:

View File

@@ -12,7 +12,8 @@
/// <summary> /// <summary>
/// Used to create fogging effects such as clouds but with a density that is related to the height of the fog. /// Used to create fogging effects such as clouds but with a density that is related to the height of the fog.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Exponential Height Fog\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API ExponentialHeightFog : public Actor, public IFogRenderer API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Exponential Height Fog\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API ExponentialHeightFog : public Actor, public IFogRenderer
{ {
DECLARE_SCENE_OBJECT(ExponentialHeightFog); DECLARE_SCENE_OBJECT(ExponentialHeightFog);
private: private:

View File

@@ -9,7 +9,8 @@
/// <summary> /// <summary>
/// Point light emits light from point in all directions. /// Point light emits light from point in all directions.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Point Light\"), ActorToolbox(\"Lights\")") class FLAXENGINE_API PointLight : public LightWithShadow API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Point Light\"), ActorToolbox(\"Lights\")")
class FLAXENGINE_API PointLight : public LightWithShadow
{ {
DECLARE_SCENE_OBJECT(PointLight); DECLARE_SCENE_OBJECT(PointLight);
private: private:

View File

@@ -9,7 +9,8 @@
/// <summary> /// <summary>
/// A special type of volume that blends custom set of post process settings into the rendering. /// A special type of volume that blends custom set of post process settings into the rendering.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Post Fx Volume\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API PostFxVolume : public BoxVolume, public IPostFxSettingsProvider API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Post Fx Volume\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API PostFxVolume : public BoxVolume, public IPostFxSettingsProvider
{ {
DECLARE_SCENE_OBJECT(PostFxVolume); DECLARE_SCENE_OBJECT(PostFxVolume);
private: private:

View File

@@ -14,7 +14,8 @@ class GPUPipelineState;
/// <summary> /// <summary>
/// Sky actor renders atmosphere around the scene with fog and sky. /// Sky actor renders atmosphere around the scene with fog and sky.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Sky\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API Sky : public Actor, public IAtmosphericFogRenderer, public ISkyRenderer API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Sky\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API Sky : public Actor, public IAtmosphericFogRenderer, public ISkyRenderer
{ {
DECLARE_SCENE_OBJECT(Sky); DECLARE_SCENE_OBJECT(Sky);
private: private:

View File

@@ -9,7 +9,8 @@
/// <summary> /// <summary>
/// Sky light captures the distant parts of the scene and applies it as a light. Allows to add ambient light. /// Sky light captures the distant parts of the scene and applies it as a light. Allows to add ambient light.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Sky Light\"), ActorToolbox(\"Lights\")") class FLAXENGINE_API SkyLight : public Light API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Sky Light\"), ActorToolbox(\"Lights\")")
class FLAXENGINE_API SkyLight : public Light
{ {
DECLARE_SCENE_OBJECT(SkyLight); DECLARE_SCENE_OBJECT(SkyLight);
public: public:

View File

@@ -11,7 +11,8 @@
/// <summary> /// <summary>
/// Skybox actor renders sky using custom cube texture or material. /// Skybox actor renders sky using custom cube texture or material.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Sky Box\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API Skybox : public Actor, public ISkyRenderer API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Sky Box\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API Skybox : public Actor, public ISkyRenderer
{ {
DECLARE_SCENE_OBJECT(Skybox); DECLARE_SCENE_OBJECT(Skybox);
private: private:

View File

@@ -8,7 +8,8 @@
/// <summary> /// <summary>
/// Spline shape actor that defines spatial curve with utility functions for general purpose usage. /// Spline shape actor that defines spatial curve with utility functions for general purpose usage.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Other/Spline\"), ActorToolbox(\"Other\")") class FLAXENGINE_API Spline : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Other/Spline\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API Spline : public Actor
{ {
DECLARE_SCENE_OBJECT(Spline); DECLARE_SCENE_OBJECT(Spline);
typedef BezierCurveKeyframe<Transform> Keyframe; typedef BezierCurveKeyframe<Transform> Keyframe;

View File

@@ -9,7 +9,8 @@
/// <summary> /// <summary>
/// Spot light emits light from the point in a given direction. /// Spot light emits light from the point in a given direction.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Spot Light\"), ActorToolbox(\"Lights\")") class FLAXENGINE_API SpotLight : public LightWithShadow API_CLASS(Attributes="ActorContextMenu(\"New/Lights/Spot Light\"), ActorToolbox(\"Lights\")")
class FLAXENGINE_API SpotLight : public LightWithShadow
{ {
DECLARE_SCENE_OBJECT(SpotLight); DECLARE_SCENE_OBJECT(SpotLight);
private: private:

View File

@@ -5,10 +5,10 @@
#include "Engine/Level/Actor.h" #include "Engine/Level/Actor.h"
/// <summary> /// <summary>
/// The off-mesh link objects used to define a custom point-to-point edge within the navigation graph. /// The off-mesh link objects used to define a custom point-to-point edge within the navigation graph. An off-mesh connection is a user defined traversable connection made up to two vertices, at least one of which resides within a navigation mesh polygon allowing movement outside the navigation mesh.
/// An off-mesh connection is a user defined traversable connection made up to two vertices, at least one of which resides within a navigation mesh polygon allowing movement outside the navigation mesh.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Other/Nav Link\"), ActorToolbox(\"Other\")") class FLAXENGINE_API NavLink : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Other/Nav Link\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API NavLink : public Actor
{ {
DECLARE_SCENE_OBJECT(NavLink); DECLARE_SCENE_OBJECT(NavLink);
public: public:

View File

@@ -8,7 +8,8 @@
/// <summary> /// <summary>
/// A special type of volume that defines the area of the scene in which navigation meshes are generated. /// A special type of volume that defines the area of the scene in which navigation meshes are generated.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Other/Nav Mesh Bounds Volume\"), ActorToolbox(\"Other\")") class FLAXENGINE_API NavMeshBoundsVolume : public BoxVolume API_CLASS(Attributes="ActorContextMenu(\"New/Other/Nav Mesh Bounds Volume\"), ActorToolbox(\"Other\")")
class FLAXENGINE_API NavMeshBoundsVolume : public BoxVolume
{ {
DECLARE_SCENE_OBJECT(NavMeshBoundsVolume); DECLARE_SCENE_OBJECT(NavMeshBoundsVolume);
public: public:

View File

@@ -133,7 +133,8 @@ public:
/// <summary> /// <summary>
/// The particle system instance that plays the particles simulation in the game. /// The particle system instance that plays the particles simulation in the game.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Particle Effects\"), ActorToolbox(\"Visuals\")") class FLAXENGINE_API ParticleEffect : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/Visuals/Particle Effects\"), ActorToolbox(\"Visuals\")")
class FLAXENGINE_API ParticleEffect : public Actor
{ {
DECLARE_SCENE_OBJECT(ParticleEffect); DECLARE_SCENE_OBJECT(ParticleEffect);
public: public:

View File

@@ -14,7 +14,8 @@ class Collider;
/// Physics simulation driven object. /// Physics simulation driven object.
/// </summary> /// </summary>
/// <seealso cref="Actor" /> /// <seealso cref="Actor" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Rigid Body\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API RigidBody : public Actor, public IPhysicsActor API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Rigid Body\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API RigidBody : public Actor, public IPhysicsActor
{ {
DECLARE_SCENE_OBJECT(RigidBody); DECLARE_SCENE_OBJECT(RigidBody);
protected: protected:

View File

@@ -9,7 +9,8 @@
/// A box-shaped primitive collider. /// A box-shaped primitive collider.
/// </summary> /// </summary>
/// <seealso cref="Collider" /> /// <seealso cref="Collider" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Box Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API BoxCollider : public Collider API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Box Collider\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API BoxCollider : public Collider
{ {
DECLARE_SCENE_OBJECT(BoxCollider); DECLARE_SCENE_OBJECT(BoxCollider);
private: private:

View File

@@ -10,7 +10,8 @@
/// </summary> /// </summary>
/// <remarks>Capsules are cylinders with a half-sphere at each end centered at the origin and extending along the X axis, and two hemispherical ends.</remarks> /// <remarks>Capsules are cylinders with a half-sphere at each end centered at the origin and extending along the X axis, and two hemispherical ends.</remarks>
/// <seealso cref="Collider" /> /// <seealso cref="Collider" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Capsule Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API CapsuleCollider : public Collider API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Capsule Collider\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API CapsuleCollider : public Collider
{ {
DECLARE_SCENE_OBJECT(CapsuleCollider); DECLARE_SCENE_OBJECT(CapsuleCollider);
private: private:

View File

@@ -9,7 +9,8 @@
/// Physical objects that allows to easily do player movement constrained by collisions without having to deal with a rigidbody. /// Physical objects that allows to easily do player movement constrained by collisions without having to deal with a rigidbody.
/// </summary> /// </summary>
/// <seealso cref="Collider" /> /// <seealso cref="Collider" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Character Controller\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API CharacterController : public Collider, public IPhysicsActor API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Character Controller\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API CharacterController : public Collider, public IPhysicsActor
{ {
DECLARE_SCENE_OBJECT(CharacterController); DECLARE_SCENE_OBJECT(CharacterController);
public: public:

View File

@@ -10,7 +10,8 @@
/// A collider represented by an arbitrary mesh. /// A collider represented by an arbitrary mesh.
/// </summary> /// </summary>
/// <seealso cref="Collider" /> /// <seealso cref="Collider" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Mesh Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API MeshCollider : public Collider API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Mesh Collider\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API MeshCollider : public Collider
{ {
DECLARE_SCENE_OBJECT(MeshCollider); DECLARE_SCENE_OBJECT(MeshCollider);
public: public:

View File

@@ -8,7 +8,8 @@
/// A sphere-shaped primitive collider. /// A sphere-shaped primitive collider.
/// </summary> /// </summary>
/// <seealso cref="Collider" /> /// <seealso cref="Collider" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Sphere Collider\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API SphereCollider : public Collider API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Sphere Collider\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API SphereCollider : public Collider
{ {
DECLARE_SCENE_OBJECT(SphereCollider); DECLARE_SCENE_OBJECT(SphereCollider);
private: private:

View File

@@ -160,7 +160,8 @@ public:
/// It also allows you to constrain limits to only specific axes or completely lock specific axes. /// It also allows you to constrain limits to only specific axes or completely lock specific axes.
/// </summary> /// </summary>
/// <seealso cref="Joint" /> /// <seealso cref="Joint" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/D6 Joint\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API D6Joint : public Joint API_CLASS(Attributes="ActorContextMenu(\"New/Physics/D6 Joint\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API D6Joint : public Joint
{ {
DECLARE_SCENE_OBJECT(D6Joint); DECLARE_SCENE_OBJECT(D6Joint);
private: private:

View File

@@ -37,7 +37,8 @@ DECLARE_ENUM_OPERATORS(DistanceJointFlag);
/// Physics joint that maintains an upper or lower (or both) bound on the distance between two bodies. /// Physics joint that maintains an upper or lower (or both) bound on the distance between two bodies.
/// </summary> /// </summary>
/// <seealso cref="Joint" /> /// <seealso cref="Joint" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Distance Joint\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API DistanceJoint : public Joint API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Distance Joint\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API DistanceJoint : public Joint
{ {
DECLARE_SCENE_OBJECT(DistanceJoint); DECLARE_SCENE_OBJECT(DistanceJoint);
private: private:

View File

@@ -8,7 +8,8 @@
/// Physics joint that maintains a fixed distance and orientation between its two attached bodies. /// Physics joint that maintains a fixed distance and orientation between its two attached bodies.
/// </summary> /// </summary>
/// <seealso cref="Joint" /> /// <seealso cref="Joint" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Fixed Joint\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API FixedJoint : public Joint API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Fixed Joint\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API FixedJoint : public Joint
{ {
DECLARE_SCENE_OBJECT(FixedJoint); DECLARE_SCENE_OBJECT(FixedJoint);
public: public:

View File

@@ -67,7 +67,8 @@ public:
/// Physics joint that removes all but a single rotation degree of freedom from its two attached bodies (for example a door hinge). /// Physics joint that removes all but a single rotation degree of freedom from its two attached bodies (for example a door hinge).
/// </summary> /// </summary>
/// <seealso cref="Joint" /> /// <seealso cref="Joint" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Hinge Joint\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API HingeJoint : public Joint API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Hinge Joint\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API HingeJoint : public Joint
{ {
DECLARE_SCENE_OBJECT(HingeJoint); DECLARE_SCENE_OBJECT(HingeJoint);
private: private:

View File

@@ -27,7 +27,8 @@ DECLARE_ENUM_OPERATORS(SliderJointFlag);
/// Physics joint that removes all but a single translational degree of freedom. Bodies are allowed to move along a single axis. /// Physics joint that removes all but a single translational degree of freedom. Bodies are allowed to move along a single axis.
/// </summary> /// </summary>
/// <seealso cref="Joint" /> /// <seealso cref="Joint" />
API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Slider Joint\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API SliderJoint : public Joint API_CLASS(Attributes="ActorContextMenu(\"New/Physics/Slider Joint\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API SliderJoint : public Joint
{ {
DECLARE_SCENE_OBJECT(SliderJoint); DECLARE_SCENE_OBJECT(SliderJoint);
private: private:

View File

@@ -29,7 +29,8 @@ DECLARE_ENUM_OPERATORS(SphericalJointFlag);
/// rotate around the anchor points, and their rotation can be limited by an elliptical cone. /// rotate around the anchor points, and their rotation can be limited by an elliptical cone.
/// </summary> /// </summary>
/// <seealso cref="Joint" /> /// <seealso cref="Joint" />
API_CLASS(Attributes = "ActorContextMenu(\"New/Physics/Spherical Joint\"), ActorToolbox(\"Physics\")") class FLAXENGINE_API SphericalJoint : public Joint API_CLASS(Attributes = "ActorContextMenu(\"New/Physics/Spherical Joint\"), ActorToolbox(\"Physics\")")
class FLAXENGINE_API SphericalJoint : public Joint
{ {
DECLARE_SCENE_OBJECT(SphericalJoint); DECLARE_SCENE_OBJECT(SphericalJoint);
private: private:

View File

@@ -1,4 +1,4 @@
using System; using System;
namespace FlaxEngine namespace FlaxEngine
{ {
@@ -17,7 +17,7 @@ namespace FlaxEngine
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="ActorContextMenuAttribute"/> class. /// Initializes a new instance of the <see cref="ActorContextMenuAttribute"/> class.
/// </summary> /// </summary>
/// <param name="path">The path to use to create the context menu</param> /// <param name="path">The path to use to create the context menu.</param>
public ActorContextMenuAttribute(string path) public ActorContextMenuAttribute(string path)
{ {
Path = path; Path = path;

View File

@@ -1,4 +1,4 @@
using System; using System;
namespace FlaxEngine namespace FlaxEngine
{ {
@@ -22,7 +22,7 @@ namespace FlaxEngine
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="ActorToolboxAttribute"/> class. /// Initializes a new instance of the <see cref="ActorToolboxAttribute"/> class.
/// </summary> /// </summary>
/// <param name="group">The group to use to create the tab</param> /// <param name="group">The group to use to create the tab.</param>
public ActorToolboxAttribute(string group) public ActorToolboxAttribute(string group)
{ {
Group = group; Group = group;
@@ -31,11 +31,11 @@ namespace FlaxEngine
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="ActorToolboxAttribute"/> class. /// Initializes a new instance of the <see cref="ActorToolboxAttribute"/> class.
/// </summary> /// </summary>
/// <param name="group">The group used to creat the tab</param> /// <param name="group">The group used to create the tab.</param>
/// <param name="name">The name to use rather than default</param> /// <param name="name">The name to use rather than default.</param>
public ActorToolboxAttribute(string group, string name) public ActorToolboxAttribute(string group, string name)
: this(group)
{ {
Group = group;
Name = name; Name = name;
} }
} }

View File

@@ -1,4 +1,4 @@
using System; using System;
namespace FlaxEngine namespace FlaxEngine
{ {
@@ -17,7 +17,7 @@ namespace FlaxEngine
/// <summary> /// <summary>
/// Initializes a new instance of the <see cref="ContentContextMenuAttribute"/> class. /// Initializes a new instance of the <see cref="ContentContextMenuAttribute"/> class.
/// </summary> /// </summary>
/// <param name="path">The path to use to create the context menu</param> /// <param name="path">The path to use to create the context menu.</param>
public ContentContextMenuAttribute(string path) public ContentContextMenuAttribute(string path)
{ {
Path = path; Path = path;

View File

@@ -10,7 +10,8 @@
/// <summary> /// <summary>
/// Sprite rendering object. /// Sprite rendering object.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/UI/Sprite Render\"), ActorToolbox(\"GUI\")") class FLAXENGINE_API SpriteRender : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/UI/Sprite Render\"), ActorToolbox(\"GUI\")")
class FLAXENGINE_API SpriteRender : public Actor
{ {
DECLARE_SCENE_OBJECT(SpriteRender); DECLARE_SCENE_OBJECT(SpriteRender);
private: private:

View File

@@ -3,7 +3,6 @@
#pragma once #pragma once
#include "Engine/Level/Actor.h" #include "Engine/Level/Actor.h"
#include "Engine/Core/Math/Matrix.h"
#include "Engine/Render2D/TextLayoutOptions.h" #include "Engine/Render2D/TextLayoutOptions.h"
#include "Engine/Render2D/FontAsset.h" #include "Engine/Render2D/FontAsset.h"
#include "Engine/Renderer/DrawCall.h" #include "Engine/Renderer/DrawCall.h"
@@ -19,7 +18,8 @@
/// <summary> /// <summary>
/// Text rendering object. /// Text rendering object.
/// </summary> /// </summary>
API_CLASS(Attributes="ActorContextMenu(\"New/UI/Text Render\"), ActorToolbox(\"GUI\")") class FLAXENGINE_API TextRender : public Actor API_CLASS(Attributes="ActorContextMenu(\"New/UI/Text Render\"), ActorToolbox(\"GUI\")")
class FLAXENGINE_API TextRender : public Actor
{ {
DECLARE_SCENE_OBJECT(TextRender); DECLARE_SCENE_OBJECT(TextRender);
private: private:
@@ -138,16 +138,13 @@ public:
API_FUNCTION() void UpdateLayout(); API_FUNCTION() void UpdateLayout();
#if USE_PRECISE_MESH_INTERSECTS #if USE_PRECISE_MESH_INTERSECTS
/// <summary> /// <summary>
/// Gets the collision proxy used by the text geometry. /// Gets the collision proxy used by the text geometry.
/// </summary> /// </summary>
/// <returns>The collisions proxy container object reference.</returns>
FORCE_INLINE const CollisionProxy& GetCollisionProxy() const FORCE_INLINE const CollisionProxy& GetCollisionProxy() const
{ {
return _collisionProxy; return _collisionProxy;
} }
#endif #endif
private: private:

View File

@@ -7,7 +7,8 @@
/// <summary> /// <summary>
/// Root of the UI structure. Renders GUI and handles input events forwarding. /// Root of the UI structure. Renders GUI and handles input events forwarding.
/// </summary> /// </summary>
API_CLASS(Sealed, NoConstructor, Attributes="ActorContextMenu(\"New/UI/UI Canvas\"), ActorToolbox(\"GUI\")") class FLAXENGINE_API UICanvas : public Actor API_CLASS(Sealed, NoConstructor, Attributes="ActorContextMenu(\"New/UI/UI Canvas\"), ActorToolbox(\"GUI\")")
class FLAXENGINE_API UICanvas : public Actor
{ {
DECLARE_SCENE_OBJECT(UICanvas); DECLARE_SCENE_OBJECT(UICanvas);
public: public:

View File

@@ -8,7 +8,8 @@
/// <summary> /// <summary>
/// Contains a single GUI control (on C# side). /// Contains a single GUI control (on C# side).
/// </summary> /// </summary>
API_CLASS(Sealed, Attributes="ActorContextMenu(\"New/UI/UI Control\"), ActorToolbox(\"GUI\")") class FLAXENGINE_API UIControl : public Actor API_CLASS(Sealed, Attributes="ActorContextMenu(\"New/UI/UI Control\"), ActorToolbox(\"GUI\")")
class FLAXENGINE_API UIControl : public Actor
{ {
DECLARE_SCENE_OBJECT(UIControl); DECLARE_SCENE_OBJECT(UIControl);
private: private: