27.05 Local Scene Module for Artifact
#todo
interface ArtifactProperties {
localSceneProfile: LocalSceneProfile // OPTIONAL
// ...
}
localSceneProfileMUST be of typeLocalSceneProfile, content data of how the local space is defined for the artifact, see 21.11 Local Space.
To define a local space, one can defined a ground plane by the placed artifact and its status, which stores the Form object. Artifact in this local scene MUST NOT be specified in the Form of the world scene and SHOULD NOT play in the stacking logic of the world scene.
The Artifact that defines the local space MUST specified the localSceneProfile data of type LocalSceneProfile as defined below
interface LocalSceneProfile {
localScenePlane: Plane //REQUIRED
localSceneFormTemplate: Form //OPTIONAL
}
where
localScenePlaneis REQUIRED and MUST be of typePlane, presenting the local ground plane of the local space;localSceneFormTemplateis REQUIRED and MUST be of typeExtForm, presenting the correspondingFormthat initial the local space. WhenlocalSpaceFormTemplateis not provided, theFormthat initial the local space will be the sameFormdata as the world space with emptylayout.
For the localScenePlane data, the origin are the vector shifted from artifact's placement. That is, the origin of the local ground plane are , where is the zero vector, i.e. the origin of the world scene, is the placement of the artifact, and are the vector specified by origin data.
If the trace system is implemented, then local scene data is RECOMMENDED to store in trace.state, as specified in [link].
If the trace system is not implemented, the local scene data MUST be stored as an additional EmbeddingProperties of that Embedding. In such case there are additional data that EmbeddingProperties object can carry
interface EmbeddingProperties {
localLayout: Embedding[] // OPTIONAL
localForm: Partial<Form> // NOT RECOMMENDED
// ...
}
localLayoutis OPTIONAL and will be ignore ifartifactdoes not carrylocalScenePlanedata. TheFormdata of this local space are therefore theFormdata that cooresbond tolocalSceneFormTemplatewithlocalLayoutappended to itslayout.localFormis OPTIONAL and will be ingore ifartifactdoes not carrylocalScenePlane. it overwrites thelocalSceneFormTemplateby value it contents.
If both trace and localLayout are specified, use trase.state.