threepipe
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import {LineGeometry2} from '../geometry/LineGeometry2'
  2. import {LineMaterial2} from '../material/LineMaterial2'
  3. import {IObject3D, IObject3DEventMap, IObject3DUserData} from '../IObject'
  4. import {Line2} from 'three/examples/jsm/lines/Line2'
  5. import {iObjectCommons} from './iObjectCommons'
  6. import {IMaterial} from '../IMaterial'
  7. export class MeshLine<
  8. TGeometry extends LineGeometry2 = LineGeometry2,
  9. TMaterial extends LineMaterial2 = LineMaterial2,
  10. TE extends IObject3DEventMap = IObject3DEventMap
  11. > extends Line2<TGeometry, TMaterial, TE> implements IObject3D<TE> {
  12. assetType = 'model' as const
  13. setDirty = iObjectCommons.setDirty
  14. refreshUi = iObjectCommons.refreshUi
  15. public readonly isMeshLine = true
  16. declare material: TMaterial
  17. declare readonly materials: IMaterial[]
  18. declare geometry: TGeometry
  19. /**
  20. * @deprecated use `this` instead
  21. */
  22. get modelObject(): this {
  23. return this
  24. }
  25. constructor(geometry?: TGeometry, material?: TMaterial) {
  26. super(geometry, material)
  27. iObjectCommons.upgradeObject3D.call(this)
  28. }
  29. declare userData: IObject3DUserData
  30. // region inherited type fixes
  31. // re-declaring from IObject3D because: https://github.com/microsoft/TypeScript/issues/16936
  32. traverse: (callback: (object: IObject3D) => void) => void
  33. traverseVisible: (callback: (object: IObject3D) => void) => void
  34. traverseAncestors: (callback: (object: IObject3D) => void) => void
  35. getObjectById: <T extends IObject3D = IObject3D>(id: number) => T | undefined
  36. getObjectByName: <T extends IObject3D = IObject3D>(name: string) => T | undefined
  37. getObjectByProperty: <T extends IObject3D = IObject3D>(name: string, value: string) => T | undefined
  38. copy: (source: MeshLine | IObject3D, recursive?: boolean, ...args: any[]) => this
  39. clone: (recursive?: boolean) => this
  40. remove: (...object: IObject3D[]) => this
  41. declare parent: IObject3D | null
  42. declare children: IObject3D[]
  43. dispose: (removeFromParent?: boolean) => void
  44. // endregion
  45. }