interfaces.d.ts 3.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. import type { mat4, quat, vec2, vec3 } from 'gl-matrix';
  2. import type { Transform } from '../components';
  3. import type { IElement, INode, IParentNode } from '../dom';
  4. import type { AABB, Rectangle } from '../shapes';
  5. import type { DisplayObject } from '../display-objects';
  6. export interface SceneGraphService {
  7. triggerPendingEvents: () => void;
  8. clearPendingEvents: () => void;
  9. updateDisplayObjectDependency: (name: string, oldPath: DisplayObject, newPath: DisplayObject, object: DisplayObject) => void;
  10. informDependentDisplayObjects: (object: DisplayObject) => void;
  11. dirtifyToRoot: (element: INode, affectChildren?: boolean) => void;
  12. matches: <T extends IElement>(query: string, root: T) => boolean;
  13. querySelector: <R extends IElement, T extends IElement>(query: string, root: R) => T | null;
  14. querySelectorAll: <R extends IElement, T extends IElement>(query: string, root: R) => T[];
  15. attach: <C extends INode, P extends INode & IParentNode>(child: C, parent: P, index?: number) => void;
  16. detach: <C extends INode>(child: C) => void;
  17. getOrigin: (element: INode) => vec3;
  18. setOrigin: (element: INode, origin: vec3 | number, y?: number, z?: number) => void;
  19. setPosition: (element: INode, position: vec3 | vec2) => void;
  20. setLocalPosition: (element: INode, position: vec3 | vec2) => void;
  21. scaleLocal: (element: INode, scaling: vec3 | vec2) => void;
  22. setLocalScale: (element: INode, scaling: vec3 | vec2) => void;
  23. getLocalScale: (element: INode) => vec3;
  24. getScale: (element: INode) => vec3;
  25. getLocalSkew: (element: INode) => vec2;
  26. translate: (element: INode, translation: vec3 | number, y?: number, z?: number) => void;
  27. translateLocal: (element: INode, translation: vec3 | number, y?: number, z?: number) => void;
  28. getPosition: (element: INode) => vec3;
  29. getLocalPosition: (element: INode) => vec3;
  30. setLocalSkew: (element: INode, skew: vec2 | number, y?: number) => void;
  31. setEulerAngles: (element: INode, degrees: vec3 | number, y?: number, z?: number) => void;
  32. setLocalEulerAngles: (element: INode, degrees: vec3 | number, y?: number, z?: number) => void;
  33. rotateLocal: (element: INode, degrees: vec3 | number, y?: number, z?: number) => void;
  34. rotate: (element: INode, degrees: vec3 | number, y?: number, z?: number) => void;
  35. getRotation: (element: INode) => quat;
  36. setRotation: (element: INode, rotation: quat | number, y?: number, z?: number, w?: number) => void;
  37. setLocalRotation: (element: INode, rotation: quat | number, y?: number, z?: number, w?: number) => void;
  38. getLocalRotation: (element: INode) => quat;
  39. getWorldTransform: (element: INode, transform?: Transform) => mat4;
  40. getLocalTransform: (element: INode, transform?: Transform) => mat4;
  41. setLocalTransform: (element: INode, transform: mat4) => void;
  42. resetLocalTransform: (element: INode) => void;
  43. getBounds: (element: INode, render?: boolean) => AABB;
  44. getLocalBounds: (element: INode, render?: boolean) => AABB;
  45. getGeometryBounds: (element: INode, render?: boolean) => AABB;
  46. getBoundingClientRect: (element: INode) => Rectangle;
  47. syncHierarchy: (element: INode) => void;
  48. }
  49. //# sourceMappingURL=interfaces.d.ts.map