载入中...
搜索中...
未找到
eve::scene 命名空间参考

类

struct  AABB3f
 Axis-aligned box in world space. 更多...
 
struct  CameraClip
 Camera view-projection matrix and its inverse for one viewport. 更多...
 
struct  FollowPlayerInput
 Per-frame player observation supplied by the application. 更多...
 
struct  FollowPlayerOutput
 Provider-neutral transform writes produced for every followed object. 更多...
 
struct  FollowPlayerSettings
 Pcg FollowPlayerSystem configuration independent of render providers. 更多...
 
class  ISceneCameraProjection
 Camera projection queries answered by the module that owns Camera3D. 更多...
 
struct  LinkOps
 LinkOps public API. 更多...
 
struct  LocationBookmark
 One named Pcg location bookmark with optional player transform metadata. 更多...
 
struct  LocationPose
 Provider-neutral position and quaternion stored by Pcg's location profile. 更多...
 
class  LocationProfile
 Caller-owned Pcg location and bookmark state. Mutable operations validate complete candidate data before publication. No scene objects are retained. 更多...
 
struct  LocationSnapshot
 Loaded camera/player transform pair. 更多...
 
struct  NodeDesc
 Declarative scene-node description (build once / on dirty → flatten into SceneHost::Tree). Isomorphic to eve::ui::WidgetDesc. 更多...
 
class  PcgBuildConfig
 Caller-owned Pcg publication configuration and ordered build history. 更多...
 
struct  PcgBuildLogEntry
 PcgBuildLogEntry public API. 更多...
 
class  PcgGrowth
 Caller-owned one-shot Pcg Growth state with explicit time and random seed. 更多...
 
class  Scene
 Declarative scene module (eve.Scene). 更多...
 
struct  SceneArtifactHandleTag
 Owner tag for scene artifact runtime handles. 更多...
 
struct  SceneArtifactNode
 Backend-neutral node observable emitted for one artifact part. 更多...
 
class  SceneArtifactProvider
 Real scene-module provider for generated artifact publication. 更多...
 
struct  SceneArtifactRecord
 Queryable scene registry record for one published artifact. 更多...
 
class  SceneArtifactStage
 
class  SceneComponent
 React-style scene component: implement build(), call setState / markDirty, then rebuild(). Mounts onto a named SceneHost via mountAs / attach. Isomorphic to eve::ui::Component. 更多...
 
class  SceneHost
 ECS mount point for one scene graph (full scene or nested subtree root). Isomorphic to eve::ui::UIHost. 更多...
 
struct  SceneLink
 SceneLink public API. 更多...
 
struct  SceneNode
 Retained scene node (arena). Conceptual GameObject; isomorphic to eve::ui::UINode. 更多...
 
class  SceneNodeRef
 Script handle to a scene node (hostName + nodeId). Deliberately holds strings rather than arena pointers, so it stays valid across rebuilds/reconcile. Node-level entity bindings are forwarded through the Scene module. 更多...
 
class  SceneObject
 Per-node ECS identity (created lazily when a node needs script bindings or engine components). A node's stable string id (hostName + nodeId) is mirrored here so ECS systems can address scene nodes and vice versa. 更多...
 
struct  ScreenRay
 World-space ray through one screen pixel. 更多...
 
class  TransformSystem
 Propagates local TRS → world matrices for all SceneHost trees (or one host). Call after mount/reconcile or local transform edits. 更多...
 

类型定义

using SceneArtifactHandle = eve::RuntimeHandle< SceneArtifactHandleTag >
 Generation-qualified handle for a scene artifact record.
 
using GameObject = SceneNode
 Alias: GameObject is the conceptual name for a SceneNode in a host tree.
 

枚举

enum class  PcgPublicationType { Addressables =0 , RegularBuild =1 }
 PcgPublicationType public API. 更多...
 
enum class  PcgBuildLogCategory {
  Impostors =0 , ServerScene =1 , CreatedAddressableConfig =2 , AddressableBundles =3 ,
  ProjectBuild =4 , ColliderBaking =5 , UpdatedAddressableConfig =6
}
 PcgBuildLogCategory public API. 更多...
 
enum class  SceneMutationStatus { Applied , Rejected }
 Outcome of an atomic scene-tree mutation. 更多...
 

函数

eve::Result< SceneArtifactRecord > failureRecord (eve::DiagnosticCode code, std::string message)
 
eve::Result< eve::Value > failureValue (eve::DiagnosticCode code, std::string message)
 
bool validBounds (const eve::artifact::Bounds &bounds) noexcept
 
const eve::Value * member (const eve::Value::Object &object, const char *name) noexcept
 
bool readString (const eve::Value::Object &object, const char *name, std::string &output)
 
bool readUint64String (const eve::Value::Object &object, const char *name, std::uint64_t &output)
 
bool hasSupportedVersion (const eve::Value::Object &object) noexcept
 
bool readFloat (const eve::Value::Object &object, const char *name, float &output)
 
bool readBounds (const eve::Value::Object &object, eve::artifact::Bounds &bounds)
 
eve::Value boundsValue (const eve::artifact::Bounds &bounds)
 
SceneArtifactProvider & sceneArtifactProvider () noexcept
 Return the process-owned scene artifact provider singleton.
 
void registerSceneArtifactProvider ()
 Register the scene provider in the common capability registry.
 
Result< void > evaluateFollowPlayer (FollowPlayerOutput *output, const FollowPlayerSettings *settings, const FollowPlayerInput *input)
 Evaluate Pcg FollowPlayerSystem LateUpdate transform semantics.
 
void exposeFollowPlayerBindings (ssq::Table &table)
 Register FollowPlayer value types and evaluator with the root script table.
 
void exposeLocationProfileBindings (ssq::Table &table)
 Register Pcg location profile value types and operations.
 
void validateUniqueIds (const NodeDesc &root)
 
NodeDesc node (std::string id, std::vector< NodeDesc > children={}, std::string name="")
 Node.
 
NodeDesc group (std::vector< NodeDesc > children={}, std::string id="")
 Group.
 
NodeDesc when (bool cond, NodeDesc child)
 Conditional: include child only when cond is true (empty group otherwise).
 
NodeDesc whenElse (bool cond, NodeDesc ifTrue, NodeDesc ifFalse)
 When else.
 
void applyTree (SceneHost *host, NodeDesc root)
 Applies tree.
 
bool applyTreeReconcile (SceneHost *host, NodeDesc root)
 Key-aware patch when structure matches; else full replace. Returns true if full rebuild.
 
void exposePcgBuildConfigBindings (ssq::Table &table)
 Register Pcg build-config bindings.
 
Result< bool > applyPcgGrowth (PcgGrowth &growth, SceneNodeRef &node, float now)
 Advance growth on a real scene node; returns true when it removed the node.
 
void exposePcgGrowthBindings (ssq::Table &table)
 Register Pcg Growth bindings.
 
 Module_IMPL (Scene, new Scene())
 
AABB3f worldBoundsOf (const SceneNode &n)
 World-space AABB of a node's local bounds (8 corners through world matrix).
 
bool rayAABB (const glm::vec3 &o, const glm::vec3 &d, const AABB3f &b, float &t0, float &t1)
 Slab ray-AABB intersection; fills entry/exit t (t0 <= t1).
 
bool cornerInsideClip (const glm::mat4 &m, const glm::vec3 &p)
 Corner inside clip.
 
bool aabbIntersectsFrustum (const glm::mat4 &clip, const glm::mat4 &invClip, const AABB3f &b)
 Conservative AABB ↔ frustum overlap (AABB corners + frustum corners).
 
void registerSceneCapabilities ()
 Registers scene capabilities.
 
int registerLinkKind (const LinkOps &ops)
 Registers link kind.
 
int findLinkKind (const char *kind)
 Finds link kind.
 
const LinkOps * linkOps (int kindId)
 Link ops.
 
const char * linkKindName (int kindId)
 Link kind name.
 

类型定义说明

◆ GameObject

Alias: GameObject is the conceptual name for a SceneNode in a host tree.

在文件 SceneHost.h 第 83 行定义.

◆ SceneArtifactHandle

Generation-qualified handle for a scene artifact record.

在文件 ArtifactProvider.h 第 21 行定义.

枚举类型说明

◆ PcgBuildLogCategory

PcgBuildLogCategory public API.

枚举值
Impostors 
ServerScene 
CreatedAddressableConfig 
AddressableBundles 
ProjectBuild 
ColliderBaking 
UpdatedAddressableConfig 

在文件 PcgBuildConfig.h 第 13 行定义.

◆ PcgPublicationType

enum class eve::scene::PcgPublicationType
strong

PcgPublicationType public API.

枚举值
Addressables 
RegularBuild 

在文件 PcgBuildConfig.h 第 11 行定义.

◆ SceneMutationStatus

Outcome of an atomic scene-tree mutation.

枚举值
Applied 
Rejected 

在文件 SceneHost.h 第 41 行定义.

函数说明

◆ aabbIntersectsFrustum()

bool eve::scene::aabbIntersectsFrustum ( const glm::mat4 &  clip,
const glm::mat4 &  invClip,
const AABB3f &  b 
)
inline

Conservative AABB ↔ frustum overlap (AABB corners + frustum corners).

P.

Ndc.

在文件 SceneBounds.h 第 81 行定义.

引用了 b, clip, cornerInsideClip(), p, q , 以及 w.

被这些函数引用 eve::scene::Scene::applyPcgTerrainCullingAt() , 以及 eve::scene::Scene::collectFrustumIdsAt().

◆ applyPcgGrowth()

EVENGINE_API_PLATFORM Result< bool > eve::scene::applyPcgGrowth ( PcgGrowth &  g,
SceneNodeRef &  node,
float  now 
)

Advance growth on a real scene node; returns true when it removed the node.

在文件 PcgGrowth.cpp 第 14 行定义.

引用了 eve::Diagnostic::error(), eve::Result< T >::failure(), g, eve::InvalidArgument, node, s, scale , 以及 eve::Result< T >::success().

被这些函数引用 exposePcgGrowthBindings().

◆ applyTree()

void eve::scene::applyTree ( SceneHost *  host,
NodeDesc  root 
)

Applies tree.

在文件 NodeDesc.cpp 第 243 行定义.

引用了 host, n, root, t , 以及 validateUniqueIds().

被这些函数引用 applyTreeReconcile() , 以及 eve::scene::SceneHost::setTree().

◆ applyTreeReconcile()

bool eve::scene::applyTreeReconcile ( SceneHost *  host,
NodeDesc  root 
)

Key-aware patch when structure matches; else full replace. Returns true if full rebuild.

在文件 NodeDesc.cpp 第 323 行定义.

引用了 applyTree(), host, root , 以及 t.

被这些函数引用 eve::scene::SceneHost::setTreeReconcile().

◆ boundsValue()

eve::Value eve::scene::boundsValue ( const eve::artifact::Bounds &  bounds)

在文件 ArtifactProvider.cpp 第 83 行定义.

引用了 bounds , 以及 value.

被这些函数引用 eve::scene::SceneArtifactProvider::snapshotState().

◆ cornerInsideClip()

bool eve::scene::cornerInsideClip ( const glm::mat4 &  m,
const glm::vec3 &  p 
)
inline

Corner inside clip.

在文件 SceneBounds.h 第 74 行定义.

引用了 c, m , 以及 p.

被这些函数引用 aabbIntersectsFrustum().

◆ evaluateFollowPlayer()

EVENGINE_API_PLATFORM Result< void > eve::scene::evaluateFollowPlayer ( FollowPlayerOutput *  output,
const FollowPlayerSettings *  settings,
const FollowPlayerInput *  input 
)

Evaluate Pcg FollowPlayerSystem LateUpdate transform semantics.

参数
outputRequired caller-owned output replaced atomically on success.
settingsFinite caller-owned configuration.
inputFinite player observation; hasPlayer=false suppresses position writes.
返回
Success, or InvalidArgument without modifying output. @ownership Inputs and output remain caller-owned; no pointers are retained. @thread Any thread; this function has no callbacks or global state.

在文件 FollowPlayer.cpp 第 10 行定义.

引用了 eve::scene::FollowPlayerOutput::applyPosition, eve::scene::FollowPlayerOutput::applyScale, eve::Diagnostic::error(), eve::Result< T >::failure(), finite, input, eve::InvalidArgument, output, eve::scene::FollowPlayerOutput::scaleX, eve::scene::FollowPlayerOutput::scaleY, eve::scene::FollowPlayerOutput::scaleZ, settings, eve::Result< T >::success(), eve::scene::FollowPlayerOutput::x, eve::scene::FollowPlayerOutput::y , 以及 eve::scene::FollowPlayerOutput::z.

◆ exposeFollowPlayerBindings()

◆ exposeLocationProfileBindings()

◆ exposePcgBuildConfigBindings()

void eve::scene::exposePcgBuildConfigBindings ( ssq::Table &  t)

Register Pcg build-config bindings.

在文件 PcgBuildConfig.cpp 第 10 行定义.

引用了 c, category, n, eve::script::projectResult(), s, t, v , 以及 vm.

◆ exposePcgGrowthBindings()

void eve::scene::exposePcgGrowthBindings ( ssq::Table &  t)

Register Pcg Growth bindings.

在文件 PcgGrowth.cpp 第 15 行定义.

引用了 a, applyPcgGrowth(), b, c, d, eve::Diagnostic::error(), eve::Result< T >::failure(), g, eve::InvalidArgument, n, eve::script::projectResult(), r, s, seed, t, v , 以及 vm.

◆ failureRecord()

eve::Result< SceneArtifactRecord > eve::scene::failureRecord ( eve::DiagnosticCode  code,
std::string  message 
)

◆ failureValue()

eve::Result< eve::Value > eve::scene::failureValue ( eve::DiagnosticCode  code,
std::string  message 
)

◆ findLinkKind()

◆ group()

EVENGINE_API_PLATFORM NodeDesc eve::scene::group ( std::vector< NodeDesc >  children,
std::string  id 
)

Group.

在文件 NodeDesc.cpp 第 225 行定义.

引用了 children, d , 以及 eve::scene::NodeDesc::id.

◆ hasSupportedVersion()

bool eve::scene::hasSupportedVersion ( const eve::Value::Object &  object)
noexcept

在文件 ArtifactProvider.cpp 第 53 行定义.

引用了 member.

被这些函数引用 eve::scene::SceneArtifactProvider::restoreState().

◆ linkKindName()

EVENGINE_API_PLATFORM const char * eve::scene::linkKindName ( int  kindId)

Link kind name.

Name for an id, or "" when the id is unknown.

在文件 SceneLink.cpp 第 53 行定义.

引用了 eve::scene::LinkOps::kind, linkOps() , 以及 ops.

被这些函数引用 eve::scene_editing::SceneHostEditorTarget::componentLinks().

◆ linkOps()

EVENGINE_API_PLATFORM const LinkOps * eve::scene::linkOps ( int  kindId)

Link ops.

Operations for an id, or nullptr when the id is unknown.

在文件 SceneLink.cpp 第 47 行定义.

引用了 t.

被这些函数引用 eve::scene_editing::SceneHostEditorTarget::componentLinks(), eve::scene::SceneHost::link() , 以及 linkKindName().

◆ member()

const eve::Value * eve::scene::member ( const eve::Value::Object &  object,
const char *  name 
)
noexcept

在文件 ArtifactProvider.cpp 第 33 行定义.

引用了 eve::Value::find(), found , 以及 name.

◆ Module_IMPL()

eve::scene::Module_IMPL ( Scene  ,
new   Scene() 
)

◆ node()

EVENGINE_API_PLATFORM NodeDesc eve::scene::node ( std::string  id,
std::vector< NodeDesc >  children,
std::string  name 
)

Node.

在文件 NodeDesc.cpp 第 216 行定义.

引用了 children, d, eve::scene::NodeDesc::id , 以及 name.

◆ rayAABB()

bool eve::scene::rayAABB ( const glm::vec3 &  o,
const glm::vec3 &  d,
const AABB3f &  b,
float &  t0,
float &  t1 
)
inline

Slab ray-AABB intersection; fills entry/exit t (t0 <= t1).

在文件 SceneBounds.h 第 49 行定义.

引用了 b , 以及 d.

被这些函数引用 eve::scene::Scene::pickRayAt().

◆ readBounds()

bool eve::scene::readBounds ( const eve::Value::Object &  object,
eve::artifact::Bounds &  bounds 
)

在文件 ArtifactProvider.cpp 第 74 行定义.

引用了 bounds, member, readFloat(), validBounds() , 以及 value.

被这些函数引用 eve::scene::SceneArtifactProvider::restoreState().

◆ readFloat()

bool eve::scene::readFloat ( const eve::Value::Object &  object,
const char *  name,
float &  output 
)

在文件 ArtifactProvider.cpp 第 59 行定义.

引用了 member, name, number, output , 以及 value.

被这些函数引用 readBounds().

◆ readString()

bool eve::scene::readString ( const eve::Value::Object &  object,
const char *  name,
std::string &  output 
)

在文件 ArtifactProvider.cpp 第 38 行定义.

引用了 member, name, output, text , 以及 value.

被这些函数引用 readUint64String() , 以及 eve::scene::SceneArtifactProvider::restoreState().

◆ readUint64String()

bool eve::scene::readUint64String ( const eve::Value::Object &  object,
const char *  name,
std::uint64_t &  output 
)

在文件 ArtifactProvider.cpp 第 46 行定义.

引用了 end, error, name, output, readString() , 以及 text.

被这些函数引用 eve::scene::SceneArtifactProvider::restoreState().

◆ registerLinkKind()

EVENGINE_API_PLATFORM int eve::scene::registerLinkKind ( const LinkOps &  ops)

Registers link kind.

Register a link kind and return its id. Registering the same name twice returns the first id and leaves the original operations in place, so a module reloaded as a plugin cannot silently swap them out.

在文件 SceneLink.cpp 第 27 行定义.

引用了 findLinkKind(), eve::scene::LinkOps::kind, ops, eve::scene::LinkOps::pushWorld , 以及 size.

◆ registerSceneArtifactProvider()

EVENGINE_API_PLATFORM void eve::scene::registerSceneArtifactProvider ( )

Register the scene provider in the common capability registry.

在文件 ArtifactProvider.cpp 第 267 行定义.

引用了 sceneArtifactProvider().

被这些函数引用 eve::scene::Scene::Scene().

◆ registerSceneCapabilities()

void eve::scene::registerSceneCapabilities ( )

Registers scene capabilities.

在文件 SceneCapabilities.cpp 第 672 行定义.

引用了 impl.

被这些函数引用 eve::scene::Scene::Scene().

◆ sceneArtifactProvider()

EVENGINE_API_PLATFORM SceneArtifactProvider & eve::scene::sceneArtifactProvider ( )
noexcept

Return the process-owned scene artifact provider singleton.

在文件 ArtifactProvider.cpp 第 262 行定义.

被这些函数引用 registerSceneArtifactProvider().

◆ validateUniqueIds()

void eve::scene::validateUniqueIds ( const NodeDesc &  root)

在文件 NodeDesc.cpp 第 205 行定义.

引用了 c, d , 以及 root.

被这些函数引用 applyTree() , 以及 eve::scene::SceneHost::buildDetachedTree().

◆ validBounds()

bool eve::scene::validBounds ( const eve::artifact::Bounds &  bounds)
noexcept

在文件 ArtifactProvider.cpp 第 27 行定义.

引用了 bounds.

被这些函数引用 eve::scene::SceneArtifactProvider::prepare() , 以及 readBounds().

◆ when()

EVENGINE_API_PLATFORM NodeDesc eve::scene::when ( bool  cond,
NodeDesc  child 
)

Conditional: include child only when cond is true (empty group otherwise).

在文件 NodeDesc.cpp 第 234 行定义.

引用了 group.

◆ whenElse()

EVENGINE_API_PLATFORM NodeDesc eve::scene::whenElse ( bool  cond,
NodeDesc  ifTrue,
NodeDesc  ifFalse 
)

When else.

在文件 NodeDesc.cpp 第 239 行定义.

◆ worldBoundsOf()

AABB3f eve::scene::worldBoundsOf ( const SceneNode &  n)
inline

World-space AABB of a node's local bounds (8 corners through world matrix).

Lo.

Hi.

Mn.

Mx.

P.

在文件 SceneBounds.h 第 26 行定义.

引用了 c, n, p , 以及 w.

被这些函数引用 eve::scene::Scene::applyPcgTerrainCullingAt(), eve::scene::Scene::collectFrustumIdsAt(), eve::scene::Scene::pickRayAt() , 以及 eve::scene::Scene::syncSpatialIndexAt().