UNPKG

@needle-tools/engine

Version:

Needle Engine is a web-based runtime for 3D apps. It runs on your machine for development with great integrations into editors like Unity or Blender - and can be deployed onto any device! It is flexible, extensible and networking and XR are built-in.

58 lines (49 loc) 1.68 kB
import { type IComponent } from "../../engine/engine_types.js"; export interface ICanvas extends IComponent { get isCanvas(): boolean; get screenspace(): boolean; registerTransform(rt: IRectTransform); unregisterTransform(rt: IRectTransform); registerEventReceiver(receiver: ICanvasEventReceiver); unregisterEventReceiver(receiver: ICanvasEventReceiver); } export interface ICanvasGroup { get isCanvasGroup(): boolean; blocksRaycasts: boolean; interactable: boolean; } export interface IHasAlphaFactor { setAlphaFactor(val: number); } export interface IGraphic extends IComponent, IHasAlphaFactor { get isGraphic(): boolean; raycastTarget: boolean; } export interface IRectTransform extends IComponent { get isDirty(): boolean; markDirty(); updateTransform(); } export interface IRectTransformChangedReceiver { onParentRectTransformChanged(comp: IRectTransform): void; } export interface ILayoutGroup extends IComponent { get isLayoutGroup(): boolean; get isDirty(): boolean; updateLayout(); } export interface ICanvasEventReceiver { /** Called before the canvas is rendering */ onBeforeCanvasRender?(canvas: ICanvas); } // export abstract class LayoutGroup extends Behaviour implements IRectTransformChangedReceiver, ILayoutGroup { // get isLayoutGroup(): boolean { // return true; // } // updateLayout() { // throw new Error("Method not implemented."); // } // onParentRectTransformChanged(comp: IRectTransform): void { // throw new Error("Method not implemented."); // } // }