Improve focusing on selected object in Editor

#328
This commit is contained in:
Wojtek Figat
2021-03-18 22:20:27 +01:00
parent 255b2c85c8
commit 4ae3fccfd9
5 changed files with 53 additions and 31 deletions

View File

@@ -1139,20 +1139,28 @@ BoundingBox Actor::GetBoxWithChildren() const
#if USE_EDITOR
BoundingBox Actor::GetEditorBox() const
{
return GetBox();
}
BoundingBox Actor::GetEditorBoxChildren() const
{
BoundingBox result = GetEditorBox();
for (int32 i = 0; i < Children.Count(); i++)
{
BoundingBox::Merge(result, Children[i]->GetEditorBoxChildren(), result);
}
return result;
}
#endif
bool Actor::HasContentLoaded() const
{
return true;
}
void Actor::UnregisterObjectHierarchy()
{
if (IsRegistered())
@@ -1170,6 +1178,10 @@ void Actor::UnregisterObjectHierarchy()
}
}
void Actor::Draw(RenderContext& renderContext)
{
}
void Actor::DrawGeneric(RenderContext& renderContext)
{
// Generic drawing uses only GBuffer Fill Pass and simple frustum culling (see SceneRendering for more optimized drawing)

View File

@@ -629,10 +629,7 @@ public:
/// <summary>
/// Gets actor bounding box (single actor, no children included) for editor tools.
/// </summary>
API_PROPERTY() virtual BoundingBox GetEditorBox() const
{
return GetBox();
}
API_PROPERTY() virtual BoundingBox GetEditorBox() const;
/// <summary>
/// Gets actor bounding box of the actor including all child actors for editor tools.
@@ -644,10 +641,7 @@ public:
/// <summary>
/// Returns true if actor has loaded content.
/// </summary>
API_PROPERTY() virtual bool HasContentLoaded() const
{
return true;
}
API_PROPERTY() virtual bool HasContentLoaded() const;
/// <summary>
/// Calls UnregisterObject for all objects in the actor hierarchy.
@@ -660,9 +654,7 @@ public:
/// Draws this actor. Called by Scene Rendering service. This call is more optimized than generic Draw (eg. models are rendered during all passed but other actors are invoked only during GBufferFill pass).
/// </summary>
/// <param name="renderContext">The rendering context.</param>
virtual void Draw(RenderContext& renderContext)
{
}
virtual void Draw(RenderContext& renderContext);
/// <summary>
/// Draws this actor. Called during custom actor rendering or any other generic rendering from code.