@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
text/typescript
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.");
// }
// }