class IsdkSystem(val api: IsdkSystemNativeApi = IsdkSystemNativeApi()) : SystemBase
IsdkSystem
(
api
)
|
active
: Boolean
[Get][Set] |
Whether this system is currently processing input. When false, execute() returns early and no pointer events are dispatched to panels. The cursor system (if present) will also be disabled.
Can be used to temporarily disable panel input, for example when overlay controls are hidden during immersive playback.
Signature
var active: Boolean |
api
: IsdkSystemNativeApi
[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 this system's SystemBase.execute method has been called by the system manager. Incremented automatically before each execution cycle. Useful for performance monitoring.
@Volatile guarantees atomic 64-bit reads + happens-before semantics so the introspection reader (which runs on the dump caller's thread) observes a consistent value. Only SystemBase.incrementExecuteCount writes this field, so the non-atomic read-modify-write is safe.
Signature
var executeCount: Long |
systemManager
: SystemManager
[Get][Set] |
The SystemManager that this system is registered with. Provides access to other systems and the scene. Initialized during system registration.
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 |
associateSystemManager
(
systemManager
)
|
Associates this system with a SystemManager. Called during registration. Throws RuntimeException if the system is already associated — each system instance can only belong to one manager.
Signature
fun associateSystemManager(systemManager: SystemManager) Parameters |
clearInteractableObservers
(
entity
)
|
Removes all observers for a specific entity, effectively stopping all pointer event notifications for that entity.
Signature
fun clearInteractableObservers(entity: Entity) Parameters |
delete
(
entity
)
|
Called when an IsdkSystem.delete is removed from the scene. Override to clean up any per-entity state this system maintains, such as cached components, tracking maps, or native resource handles.
Signature
open override fun delete(entity: Entity) Parameters entity: Entity |
destroy
()
|
Called during system shutdown to release all resources held by this system. Override to dispose of native handles, close streams, and clear any global state accumulated during the session. Subclasses must call super.destroy() so the framework can clean up auto-registered introspection nodes.
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. Two systems are considered equal if they are the same instance or share the same Kotlin class, regardless of configuration state.
Signature
open operator override fun equals(other: Any?): Boolean Parameters other: Any?
The object to compare with.
Returns Boolean
True if the other object is the same system instance or the same system class.
|
execute
()
|
Called each frame by the SystemManager to perform this system's per-tick logic. Override to query entities with relevant components and apply updates.
Signature
open override fun execute() |
getDependencies
()
|
Returns the execution ordering dependencies for this system. Override to declare which other systems must run before or after this one using SystemDependencies.
Signature
open override fun getDependencies(): SystemDependencies? Returns SystemDependencies?
The dependency configuration, or null if this system has no ordering constraints.
|
getEventDecoratorId
(
decoratorName
)
|
Signature
fun getEventDecoratorId(decoratorName: String): Long Parameters decoratorName: StringReturns Long |
getEventDecoratorValueLong
(
pointerEvent
, decoratorId
)
|
Signature
fun getEventDecoratorValueLong(pointerEvent: PointerEvent, decoratorId: Long): Long? Parameters pointerEvent: PointerEventdecoratorId: LongReturns Long? |
getHandForPointerEvent
(
pointerEvent
)
|
Signature
fun getHandForPointerEvent(pointerEvent: PointerEvent): Hand? Parameters pointerEvent: PointerEventReturns Hand? |
getInteractionEventSourceBehavior
(
pointerEvent
)
|
Signature
fun getInteractionEventSourceBehavior(pointerEvent: PointerEvent): InteractionEventSourceBehavior? Parameters pointerEvent: PointerEvent |
getScene
()
| |
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, based on its Kotlin class identity. Consistent with the SystemBase.equals implementation — systems of the same class produce the same hash code.
Signature
open override fun hashCode(): Int Returns Int
The hash code derived from this system's Kotlin class.
|
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 handler: ExternalControllerInputHandler |
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 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 |
setPanelCollisionPriority
(
entity
, priority
)
|
Sets the collision priority for a panel identified by entity.
Higher priority values will win collision resolution when panels overlap at the same depth. This should be called after setting the layer zIndex to synchronize the ISDK collision system with the rendering layer order.
Signature
fun setPanelCollisionPriority(entity: Entity, priority: Float) Parameters priority: Float
The collision priority (typically the layer's zIndex value)
|
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 handler: ExternalControllerInputHandler |
unregisterInteractableObserver
(
handle
)
|
Unregisters a specific observer using its handle.
Signature
fun unregisterInteractableObserver(handle: IsdkSystem.InteractableObserverHandle) Parameters handle: IsdkSystem.InteractableObserverHandle
The handle returned from registerInteractableObserver
|
unregisterObserver
(
observer
)
|
Signature
fun unregisterObserver(observer: (PointerEvent) -> Unit) Parameters observer: Function1 |
data class InteractableObserverHandle(val id: Long, val entityId: Long)
InteractableObserverHandle
(
id
, entityId
)
|
Signature
constructor(id: Long, entityId: Long) Parameters id: LongentityId: LongReturns IsdkSystem.InteractableObserverHandle |
entityId
: Long
[Get] |
Signature
val entityId: Long |
id
: Long
[Get] |
Signature
val id: Long |