API reference
API reference
Select your platform
No SDKs available
No versions available

IsdkSystem Class

Extends SystemBase
Modifiers: final
The IsdkSystem class is responsible for managing and executing the core interaction logic within the ISDK framework. Each frame, it will:
  • Updates the Isdk component properties from Spatial SDK toolkit equivalents
  • Execute interaction logic
  • Emit pointer events to the scene.
  • Generate input events from PointerEvents, and emit them to the scene.
It also includes methods to enable debug tools, register for pointer events, and query for additional meta data about PointerEvents.

Signature

class IsdkSystem(val api: IsdkSystemNativeApi = IsdkSystemNativeApi()) : SystemBase

Constructors

IsdkSystem ( api )
Signature
constructor(api: IsdkSystemNativeApi = IsdkSystemNativeApi())
Parameters
  The native API that is invoked to execute the core interaction logic.
Returns

Properties

[Get]
The native API that is invoked to execute the core interaction logic.
Signature
val api: IsdkSystemNativeApi
debugToolsEnabled : Boolean
[Get][Set]
Toggles visibility of debug geometry rendering by ISDK, which shows internal state of interactions. Debug visuals have significant performance cost, so this should only be enabled when debugging.
Signature
var debugToolsEnabled: Boolean
executeCount : Long
[Get]
The number of times the system has been executed.
Signature
var executeCount: Long
systemManager : SystemManager
[Get][Set]
The system manager that this system is associated with.
Signature
lateinit var systemManager: SystemManager
transformersEnabled : Boolean
[Get][Set]
Enables or disables transformers functionality in ISDK. When enabled, grabbed objects will move according to the behavior defined on the IsdkGrabbable/IsdkGrabConstraint components. When disabled, pointer events will still be emitted; but no transform will take place.
Signature
var transformersEnabled: Boolean

Functions

associateSystemManager ( systemManager )
Associates this system with a system manager, used in the Spatial SDK.
Signature
fun associateSystemManager(systemManager: SystemManager)
Parameters
systemManager: SystemManager
  The system manager to associate with.
clearInteractableObservers ( entity )
Removes all observers for a specific entity, effectively stopping all pointer event notifications for that entity.
Signature
fun clearInteractableObservers(entity: Entity)
Parameters
entity: Entity
  The entity to clear all observers for
delete ( entity )
System should do any housekeeping based on IsdkSystem.delete being removed from the scene
Signature
open override fun delete(entity: Entity)
Parameters
entity: Entity
destroy ()
System should clean up any and all resources for shutdown
Signature
open override fun destroy()
enableDebugTools ( enable )
DeprecatedThis method is deprecated and will be removed in a future release. Use debugToolsEnabled field instead.
Signature
fun enableDebugTools(enable: Boolean)
Parameters
enable: Boolean
equals ( other )
Checks if this system is equal to another object.
Signature
open operator override fun equals(other: Any?): Boolean
Parameters
other: Any?
  The object to compare with.
Returns
Boolean
  True if this system is equal to the other object, false otherwise.
execute ()
System should perform all the operations based on relevant entities.
Signature
open override fun execute()
getDependencies ()
Returns the dependencies of this system.
Signature
open override fun getDependencies(): SystemDependencies?
Returns
  The dependencies of this system, or null if there are no dependencies.
getEventDecoratorId ( decoratorName )
Signature
fun getEventDecoratorId(decoratorName: String): Long
Parameters
decoratorName: String
Returns
Long
getEventDecoratorValueLong ( pointerEvent , decoratorId )
Signature
fun getEventDecoratorValueLong(pointerEvent: PointerEvent, decoratorId: Long): Long?
Parameters
pointerEvent: PointerEvent
decoratorId: Long
Returns
Long?
getHandForPointerEvent ( pointerEvent )
Signature
fun getHandForPointerEvent(pointerEvent: PointerEvent): Hand?
Parameters
pointerEvent: PointerEvent
Returns
getInteractionEventSourceBehavior ( pointerEvent )
Signature
fun getInteractionEventSourceBehavior(pointerEvent: PointerEvent): InteractionEventSourceBehavior?
Parameters
pointerEvent: PointerEvent
getScene ()
Returns the scene that this system is associated with.
Signature
fun getScene(): Scene
Returns
  The scene that this system is associated with.
getScenePointerDistance ()
Gets the current maximum distance for scene pointer interactions in meters.
Signature
fun getScenePointerDistance(): Float
Returns
Float
  The current maximum distance in meters
hashCode ()
Returns the hash code of this system.
Signature
open override fun hashCode(): Int
Returns
Int
  The hash code of this system.
notifyObservers ( event )
Signature
fun notifyObservers(event: PointerEvent)
Parameters
event: PointerEvent
registerExternalControllerInputHandler ( handler )
Register an ExternalControllerInputHandler instance, which is used to integrate ISDK with other systems that may be using the controllers. Can be used to disable ISDK input handling if the controllers are in use by another system.
Signature
fun registerExternalControllerInputHandler(handler: ExternalControllerInputHandler)
Parameters
registerInteractableObserver ( entity , observer )
Registers an observer to receive pointer events for a specific interactable entity. The observer will be called whenever a pointer event occurs on the specified entity.
Signature
fun registerInteractableObserver(entity: Entity, observer: (PointerEvent) -> Unit): IsdkSystem.InteractableObserverHandle
Parameters
entity: Entity
  The entity to observe pointer events for
observer: Function1
  The callback function to invoke when pointer events occur on the entity
Returns
IsdkSystem.InteractableObserverHandle
  A handle that can be used to unregister this specific observer
registerObserver ( observer )
Signature
fun registerObserver(observer: (PointerEvent) -> Unit)
Parameters
observer: Function1
setScenePointerDistance ( distance )
Sets the maximum distance for scene pointer interactions in meters. This controls how far from scene objects ray-based interactions can detect collisions.
Signature
fun setScenePointerDistance(distance: Float)
Parameters
distance: Float
  The maximum distance in meters (must be positive)
unregisterExternalControllerInputHandler ( handler )
Unregister a previously registered ExternalControllerInputHandler instance
Signature
fun unregisterExternalControllerInputHandler(handler: ExternalControllerInputHandler)
Parameters
unregisterInteractableObserver ( handle )
Unregisters a specific observer using its handle.
Signature
fun unregisterInteractableObserver(handle: IsdkSystem.InteractableObserverHandle)
Parameters
handle: IsdkSystem.InteractableObserverHandle
  The handle returned from registerInteractableObserver

Inner Class

InteractableObserverHandle Class

Modifiers: final
Handle for managing interactable observer registrations

Signature

data class InteractableObserverHandle(val id: Long, val entityId: Long)

Constructors

InteractableObserverHandle ( id , entityId )
Signature
constructor(id: Long, entityId: Long)
Parameters
id: Long
entityId: Long
Returns
IsdkSystem.InteractableObserverHandle

Properties

entityId : Long
[Get]
Signature
val entityId: Long
id : Long
[Get]
Signature
val id: Long
Did you find this page helpful?