Chicane

Scene

Header
Includes/Chicane/Runtime/Scene.hpp
Namespace
Chicane::Scene

Types

NameValueDescription
ActorsObservable
EventObservable<std::vector<Actor*>>
ActorsSubscription
EventSubscription<std::vector<Actor*>>
ComponentsObservable
EventObservable<std::vector<Component*>>
ComponentsSubscription
EventSubscription<std::vector<Component*>>

Constructors

NameDescription
Scene()

Destructors

NameDescription
~Scene()

Virtual Functions

AccessReturnModifierNameDescription
public
void
inline
onLoad()
public
void
inline
onUnload()
public
void
inline
onTick(
float inDeltaTime
)

Functions

AccessReturnModifierNameDescription
public
void
load()
public
void
unload()
public
void
tick(
float inDeltaTime
)
public
void
open(
const  FileSystem::Path& inFilepath
)
public
void
const
save(
const  FileSystem::Path& inFilepath
)
public
void
const
save()
public
const
getFilepath()
public
void
setFilepath(
const  FileSystem::Path& inFilepath
)
public
void
clearSerializable()
public
createActorFromTag(
const  String& inTypeName
)
public
createComponentFromTag(
const  String& inTypeName
)
public
adoptActor(
Actor* inActor
)
public
adoptComponent(
Component* inComponent
)
public
bool
const
hasActors()
public
bool
inline, const
hasActors()
public
std::vector<Actor*>
const
getActors()
public
std::vector<T*>
inline, const
getActors()
public
bool
const
hasActor(
const  String& inId
)
public
bool
inline, const
hasActor(
const  String& inId
)
public
const
getActor(
const  String& inId
)
public
T*
inline, const
getActor(
const  String& inId
)
public
T*
inline
createActor(
Params... inParams
)
public
void
removeActor(
Actor* inActor
)
public
public
bool
const
hasComponents()
public
bool
inline, const
hasComponents()
public
std::vector<Component*>
const
getComponents()
public
std::vector<T*>
inline, const
getComponents()
public
const
getComponent(
const  String& inId
)
public
T*
inline, const
getComponent(
const  String& inId
)
public
std::vector<T*>
inline, const
getActiveComponents()
public
T*
inline
createComponent(
Params... inParams
)
public
void
removeComponent(
Component* inComponent
)
public
public
bool
const
hasObject(
const  String& inId
)
public
const
getObject(
const  String& inId
)
public
void
setObjectId(
Object* inObject
const  String& inId
)
public
bool
inline, const
trace(
SceneTraceResponse& outResponse
const  SceneTraceRequest& inRequest
const  std::vector<Actor*>& inIgnoredActors
)
public
bool
inline, const
traceMulti(
std::vector<SceneTraceResponse>& outResponses
const  SceneTraceRequest& inRequest
const  std::vector<Actor*>& inIgnoredActors
)
public
std::size_t
inline, const
getActorCount()
public
std::size_t
inline, const
getComponentCount()
public
void
inline, const
forEachInFrustum(
const  ViewFrustum& inFrustum
Function&& inFunction
)
protected
bool
const
isLoaded()
protected
void
tickActors(
float inDeltaTime
)
protected
void
deleteActors()
protected
void
tickComponents(
float inDeltaTime
)
protected
void
deleteComponents()
protected
void
flushSpatial()
protected
void
updateSpatial(
Object* inObject
)
protected
void
removeSpatial(
Object* inObject
)
protected
float
const
getCellSize()
protected
void
setCellSize(
float inValue
)
protected
std::uint64_t
const
makeCellKey(
int inX
int inY
int inZ
)
protected
std::uint64_t
const
makeCellKey(
const  Vec3& inPosition
)
protected
void
const
collectCellKeys(
const  Object* inObject
std::vector<std::uint64_t>& outKeys
)
protected
void
insertIntoCell(
Object* inObject
std::uint64_t inKey
)
protected
void
eraseFromCell(
Object* inObject
std::uint64_t inKey
)
private
void
attachObject(
Object* inObject
const  String& inFallback
)
private
void
assignUniqueId(
Object* inObject
const  String& inFallback
)
private
const
makeUniqueId(
const  String& inBase
)
private
void
const
ensureUniqueId(
const  String& inId
const  Object* inIgnored
)

Members

AccessTypeModifierNameDescription
private
friend
Object
private
bool
m_bIsLoaded
private
std::size_t
m_actorCount
private
std::unordered_map<std::type_indexstd::vector<Actor*>>
m_actors
private
m_actorsObservable
private
std::size_t
m_componentCount
private
std::unordered_map<std::type_indexstd::vector<Component*>>
m_components
private
m_componentsObservable
private
m_filepath
private
float
m_cellSize
private
std::unordered_map<std::uint64_tSceneSpatialCell>
m_cells
private
std::unordered_map<Object*std::vector<std::uint64_t>>
m_objectCells