@vived/app 5.0.5 → 5.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -133,6 +133,7 @@ class CalloutImp extends CalloutEntity {
133
133
  this.rootTransform.addChangeObserver(this.notifyOnChange);
134
134
  const labelAO = appObject.appObjectRepo.getOrCreate(myID + "_label");
135
135
  this.labelTransform = (0, Transform3D_1.makeTransform3D)(labelAO);
136
+ this.labelTransform.localRotation = core_1.Quaternion.FromYawPitchRoll(core_1.Angle.FromDegrees(180), core_1.Angle.FromDegrees(0), core_1.Angle.FromDegrees(0));
136
137
  this.labelTransform.addChangeObserver(this.notifyOnChange);
137
138
  }
138
139
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CalloutEntity.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n Quaternion,\r\n QuaternionDTO,\r\n\r\n\r\n RangedNumber, Vector3,\r\n Vector3DTO\r\n} from \"@vived/core\";\r\nimport { Hideable } from \"../../Hideable/Entities/Hideable\";\r\nimport { LabelEntity } from \"../../Label/Entities/LabelEntity\";\r\nimport {\r\n OverlayColor,\r\n OverlayColorEnums\r\n} from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport {\r\n makeSelectable,\r\n Selectable\r\n} from \"../../Selection/Entities/Selectable\";\r\nimport {\r\n makeTransform3D,\r\n Transform3D\r\n} from \"../../Transform3D/Entities/Transform3D\";\r\nimport { CalloutRepo } from \"./CalloutRepo\";\r\n\r\nexport const CALLOUT_MINIMUM_SIZE: number = 0.3;\r\nexport const CALLOUT_MAXIMUM_SIZE: number = 1.3;\r\n\r\nexport type CalloutOffsetDirection = \"LEFT\" | \"RIGHT\" | \"UP\" | \"DOWN\";\r\n\r\nexport interface CalloutDTO {\r\n id: string;\r\n rootPosition: Vector3DTO;\r\n rootRotation: QuaternionDTO;\r\n labelPosition: Vector3DTO;\r\n size: number;\r\n parentID: string;\r\n label: string;\r\n defaultLabel: string;\r\n color: string;\r\n}\r\n\r\nexport abstract class CalloutEntity extends AppObjectEntity {\r\n static readonly type = \"CALLOUT\";\r\n\r\n static get(appObj: AppObject): CalloutEntity | undefined {\r\n return appObj.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n static getById(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): CalloutEntity | undefined {\r\n return appObjects.get(id)?.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n abstract get id(): string;\r\n abstract inRepo?: CalloutRepo;\r\n\r\n abstract readonly label: LabelEntity;\r\n abstract readonly rootTransform: Transform3D;\r\n abstract readonly labelTransform: Transform3D;\r\n abstract readonly hideable: Hideable;\r\n abstract readonly selectable: Selectable;\r\n abstract readonly overlayColor: OverlayColor;\r\n abstract readonly rangedSize: RangedNumber;\r\n\r\n abstract get size(): number;\r\n abstract set size(val: number);\r\n\r\n abstract get rootPosition(): Vector3;\r\n abstract set rootPosition(p: Vector3);\r\n\r\n abstract get rootRotation(): Quaternion;\r\n abstract set rootRotation(r: Quaternion);\r\n\r\n abstract get labelPosition(): Vector3;\r\n abstract set labelPosition(p: Vector3);\r\n\r\n abstract get labelRotation(): Quaternion;\r\n abstract set labelRotation(r: Quaternion);\r\n\r\n abstract get data(): CalloutDTO;\r\n abstract set data(dto: CalloutDTO);\r\n\r\n abstract get offsetDirection(): CalloutOffsetDirection;\r\n}\r\n\r\nexport function makeCalloutEntity(appObject: AppObject): CalloutEntity {\r\n return new CalloutImp(appObject);\r\n}\r\n\r\nclass CalloutImp extends CalloutEntity {\r\n readonly label: LabelEntity;\r\n readonly hideable: Hideable;\r\n readonly selectable: Selectable;\r\n readonly rootTransform: Transform3D;\r\n readonly labelTransform: Transform3D;\r\n readonly overlayColor: OverlayColor;\r\n readonly rangedSize: RangedNumber;\r\n\r\n get id() {\r\n return this.appObject.id;\r\n }\r\n\r\n get size(): number {\r\n return this.rangedSize.val;\r\n }\r\n set size(val: number) {\r\n this.rangedSize.val = val;\r\n }\r\n\r\n get rootPosition(): Vector3 {\r\n return this.rootTransform.localPosition;\r\n }\r\n set rootPosition(p: Vector3) {\r\n this.rootTransform.localPosition = p;\r\n }\r\n\r\n get rootRotation(): Quaternion {\r\n return this.rootTransform.localRotation;\r\n }\r\n set rootRotation(r: Quaternion) {\r\n this.rootTransform.localRotation = r;\r\n }\r\n\r\n get labelPosition(): Vector3 {\r\n return this.labelTransform.localPosition;\r\n }\r\n set labelPosition(p: Vector3) {\r\n this.labelTransform.localPosition = p;\r\n }\r\n\r\n get labelRotation(): Quaternion {\r\n return this.labelTransform.localRotation;\r\n }\r\n set labelRotation(r: Quaternion) {\r\n this.labelTransform.localRotation = r;\r\n }\r\n\r\n get offsetDirection(): CalloutOffsetDirection {\r\n const worldStartPos = this.rootTransform.worldPosition;\r\n const worldEndPos = this.labelTransform.worldPosition;\r\n const delta = Vector3.Subtract(worldEndPos, worldStartPos);\r\n\r\n let offsetDirection: CalloutOffsetDirection = \"LEFT\";\r\n if (Math.abs(delta.y) > Math.abs(delta.x)) {\r\n if (delta.y < 0) offsetDirection = \"DOWN\";\r\n else offsetDirection = \"UP\";\r\n } else {\r\n if (delta.x < 0) offsetDirection = \"LEFT\";\r\n else offsetDirection = \"RIGHT\";\r\n }\r\n\r\n return offsetDirection;\r\n }\r\n\r\n inRepo?: CalloutRepo;\r\n\r\n get data(): CalloutDTO {\r\n return {\r\n id: this.appObject.id,\r\n parentID: this.inRepo ? this.inRepo.appObject.id : \"\",\r\n rootPosition: this.rootPosition.dto,\r\n rootRotation: this.rootRotation.dto,\r\n labelPosition: this.labelPosition.dto,\r\n size: this.size,\r\n label: this.label.custom,\r\n defaultLabel: this.label.default,\r\n color: this.overlayColor.overlayColor,\r\n };\r\n }\r\n\r\n set data(dto: CalloutDTO) {\r\n this.rootPosition = Vector3.FromDTO(dto.rootPosition);\r\n this.rootRotation = Quaternion.FromDTO(dto.rootRotation);\r\n this.labelPosition = Vector3.FromDTO(dto.labelPosition);\r\n this.size = dto.size;\r\n this.label.custom = dto.label;\r\n this.label.default = dto.defaultLabel;\r\n const overlayColor = dto.color as OverlayColorEnums;\r\n this.overlayColor.overlayColor = overlayColor ?? OverlayColorEnums.WHITE;\r\n }\r\n\r\n dispose = () => {\r\n super.dispose();\r\n this.label.dispose();\r\n this.hideable.dispose();\r\n this.selectable.dispose();\r\n this.overlayColor.dispose();\r\n this.labelTransform.appObject.dispose();\r\n this.rootTransform.appObject.dispose();\r\n\r\n if (this.inRepo) {\r\n this.inRepo.removeForAppObject(this.appObject.id);\r\n }\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, CalloutEntity.type);\r\n\r\n this.label = LabelEntity.addIfMissing(appObject);\r\n this.label.addChangeObserver(this.notifyOnChange);\r\n\r\n this.hideable = Hideable.addIfMissing(appObject);\r\n this.hideable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.overlayColor = OverlayColor.addIfMissing(appObject);\r\n this.overlayColor.addChangeObserver(this.notifyOnChange);\r\n\r\n this.selectable = makeSelectable(appObject);\r\n this.selectable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.rangedSize = new RangedNumber(\r\n {\r\n min: CALLOUT_MINIMUM_SIZE,\r\n max: CALLOUT_MAXIMUM_SIZE,\r\n initialValue:\r\n CALLOUT_MINIMUM_SIZE +\r\n 0.5 * (CALLOUT_MAXIMUM_SIZE - CALLOUT_MINIMUM_SIZE),\r\n },\r\n this.notifyOnChange\r\n );\r\n\r\n const myID = appObject.id;\r\n const rootAO = appObject.appObjectRepo.getOrCreate(myID + \"_root\");\r\n this.rootTransform = makeTransform3D(rootAO);\r\n this.rootTransform.addChangeObserver(this.notifyOnChange);\r\n\r\n const labelAO = appObject.appObjectRepo.getOrCreate(myID + \"_label\");\r\n this.labelTransform = makeTransform3D(labelAO);\r\n this.labelTransform.addChangeObserver(this.notifyOnChange);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CalloutEntity.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Angle,\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n Quaternion,\r\n QuaternionDTO,\r\n RangedNumber,\r\n Vector3,\r\n Vector3DTO,\r\n} from \"@vived/core\";\r\nimport { Hideable } from \"../../Hideable/Entities/Hideable\";\r\nimport { LabelEntity } from \"../../Label/Entities/LabelEntity\";\r\nimport {\r\n OverlayColor,\r\n OverlayColorEnums,\r\n} from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport {\r\n makeSelectable,\r\n Selectable,\r\n} from \"../../Selection/Entities/Selectable\";\r\nimport {\r\n makeTransform3D,\r\n Transform3D,\r\n} from \"../../Transform3D/Entities/Transform3D\";\r\nimport { CalloutRepo } from \"./CalloutRepo\";\r\n\r\nexport const CALLOUT_MINIMUM_SIZE: number = 0.3;\r\nexport const CALLOUT_MAXIMUM_SIZE: number = 1.3;\r\n\r\nexport type CalloutOffsetDirection = \"LEFT\" | \"RIGHT\" | \"UP\" | \"DOWN\";\r\n\r\nexport interface CalloutDTO {\r\n id: string;\r\n rootPosition: Vector3DTO;\r\n rootRotation: QuaternionDTO;\r\n labelPosition: Vector3DTO;\r\n size: number;\r\n parentID: string;\r\n label: string;\r\n defaultLabel: string;\r\n color: string;\r\n}\r\n\r\nexport abstract class CalloutEntity extends AppObjectEntity {\r\n static readonly type = \"CALLOUT\";\r\n\r\n static get(appObj: AppObject): CalloutEntity | undefined {\r\n return appObj.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n static getById(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): CalloutEntity | undefined {\r\n return appObjects.get(id)?.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n abstract get id(): string;\r\n abstract inRepo?: CalloutRepo;\r\n\r\n abstract readonly label: LabelEntity;\r\n abstract readonly rootTransform: Transform3D;\r\n abstract readonly labelTransform: Transform3D;\r\n abstract readonly hideable: Hideable;\r\n abstract readonly selectable: Selectable;\r\n abstract readonly overlayColor: OverlayColor;\r\n abstract readonly rangedSize: RangedNumber;\r\n\r\n abstract get size(): number;\r\n abstract set size(val: number);\r\n\r\n abstract get rootPosition(): Vector3;\r\n abstract set rootPosition(p: Vector3);\r\n\r\n abstract get rootRotation(): Quaternion;\r\n abstract set rootRotation(r: Quaternion);\r\n\r\n abstract get labelPosition(): Vector3;\r\n abstract set labelPosition(p: Vector3);\r\n\r\n abstract get labelRotation(): Quaternion;\r\n abstract set labelRotation(r: Quaternion);\r\n\r\n abstract get data(): CalloutDTO;\r\n abstract set data(dto: CalloutDTO);\r\n\r\n abstract get offsetDirection(): CalloutOffsetDirection;\r\n}\r\n\r\nexport function makeCalloutEntity(appObject: AppObject): CalloutEntity {\r\n return new CalloutImp(appObject);\r\n}\r\n\r\nclass CalloutImp extends CalloutEntity {\r\n readonly label: LabelEntity;\r\n readonly hideable: Hideable;\r\n readonly selectable: Selectable;\r\n readonly rootTransform: Transform3D;\r\n readonly labelTransform: Transform3D;\r\n readonly overlayColor: OverlayColor;\r\n readonly rangedSize: RangedNumber;\r\n\r\n get id() {\r\n return this.appObject.id;\r\n }\r\n\r\n get size(): number {\r\n return this.rangedSize.val;\r\n }\r\n set size(val: number) {\r\n this.rangedSize.val = val;\r\n }\r\n\r\n get rootPosition(): Vector3 {\r\n return this.rootTransform.localPosition;\r\n }\r\n set rootPosition(p: Vector3) {\r\n this.rootTransform.localPosition = p;\r\n }\r\n\r\n get rootRotation(): Quaternion {\r\n return this.rootTransform.localRotation;\r\n }\r\n set rootRotation(r: Quaternion) {\r\n this.rootTransform.localRotation = r;\r\n }\r\n\r\n get labelPosition(): Vector3 {\r\n return this.labelTransform.localPosition;\r\n }\r\n set labelPosition(p: Vector3) {\r\n this.labelTransform.localPosition = p;\r\n }\r\n\r\n get labelRotation(): Quaternion {\r\n return this.labelTransform.localRotation;\r\n }\r\n set labelRotation(r: Quaternion) {\r\n this.labelTransform.localRotation = r;\r\n }\r\n\r\n get offsetDirection(): CalloutOffsetDirection {\r\n const worldStartPos = this.rootTransform.worldPosition;\r\n const worldEndPos = this.labelTransform.worldPosition;\r\n const delta = Vector3.Subtract(worldEndPos, worldStartPos);\r\n\r\n let offsetDirection: CalloutOffsetDirection = \"LEFT\";\r\n if (Math.abs(delta.y) > Math.abs(delta.x)) {\r\n if (delta.y < 0) offsetDirection = \"DOWN\";\r\n else offsetDirection = \"UP\";\r\n } else {\r\n if (delta.x < 0) offsetDirection = \"LEFT\";\r\n else offsetDirection = \"RIGHT\";\r\n }\r\n\r\n return offsetDirection;\r\n }\r\n\r\n inRepo?: CalloutRepo;\r\n\r\n get data(): CalloutDTO {\r\n return {\r\n id: this.appObject.id,\r\n parentID: this.inRepo ? this.inRepo.appObject.id : \"\",\r\n rootPosition: this.rootPosition.dto,\r\n rootRotation: this.rootRotation.dto,\r\n labelPosition: this.labelPosition.dto,\r\n size: this.size,\r\n label: this.label.custom,\r\n defaultLabel: this.label.default,\r\n color: this.overlayColor.overlayColor,\r\n };\r\n }\r\n\r\n set data(dto: CalloutDTO) {\r\n this.rootPosition = Vector3.FromDTO(dto.rootPosition);\r\n this.rootRotation = Quaternion.FromDTO(dto.rootRotation);\r\n this.labelPosition = Vector3.FromDTO(dto.labelPosition);\r\n this.size = dto.size;\r\n this.label.custom = dto.label;\r\n this.label.default = dto.defaultLabel;\r\n const overlayColor = dto.color as OverlayColorEnums;\r\n this.overlayColor.overlayColor = overlayColor ?? OverlayColorEnums.WHITE;\r\n }\r\n\r\n dispose = () => {\r\n super.dispose();\r\n this.label.dispose();\r\n this.hideable.dispose();\r\n this.selectable.dispose();\r\n this.overlayColor.dispose();\r\n this.labelTransform.appObject.dispose();\r\n this.rootTransform.appObject.dispose();\r\n\r\n if (this.inRepo) {\r\n this.inRepo.removeForAppObject(this.appObject.id);\r\n }\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, CalloutEntity.type);\r\n\r\n this.label = LabelEntity.addIfMissing(appObject);\r\n this.label.addChangeObserver(this.notifyOnChange);\r\n\r\n this.hideable = Hideable.addIfMissing(appObject);\r\n this.hideable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.overlayColor = OverlayColor.addIfMissing(appObject);\r\n this.overlayColor.addChangeObserver(this.notifyOnChange);\r\n\r\n this.selectable = makeSelectable(appObject);\r\n this.selectable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.rangedSize = new RangedNumber(\r\n {\r\n min: CALLOUT_MINIMUM_SIZE,\r\n max: CALLOUT_MAXIMUM_SIZE,\r\n initialValue:\r\n CALLOUT_MINIMUM_SIZE +\r\n 0.5 * (CALLOUT_MAXIMUM_SIZE - CALLOUT_MINIMUM_SIZE),\r\n },\r\n this.notifyOnChange\r\n );\r\n\r\n const myID = appObject.id;\r\n const rootAO = appObject.appObjectRepo.getOrCreate(myID + \"_root\");\r\n this.rootTransform = makeTransform3D(rootAO);\r\n this.rootTransform.addChangeObserver(this.notifyOnChange);\r\n\r\n const labelAO = appObject.appObjectRepo.getOrCreate(myID + \"_label\");\r\n this.labelTransform = makeTransform3D(labelAO);\r\n this.labelTransform.localRotation = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(180),\r\n Angle.FromDegrees(0),\r\n Angle.FromDegrees(0)\r\n );\r\n this.labelTransform.addChangeObserver(this.notifyOnChange);\r\n }\r\n}\r\n"]}
@@ -114,7 +114,7 @@ describe("Callout Entity", () => {
114
114
  });
115
115
  it("Sets and gets the labelRotation", () => {
116
116
  const { callout, observer } = makeTestRig();
117
- expect(core_1.Quaternion.Close(callout.labelRotation, core_1.Quaternion.Identity())).toEqual(true);
117
+ expect(core_1.Quaternion.Close(callout.labelRotation, core_1.Quaternion.FromYawPitchRoll(core_1.Angle.FromDegrees(180), core_1.Angle.FromDegrees(0), core_1.Angle.FromDegrees(0)))).toEqual(true);
118
118
  const newQ = core_1.Quaternion.FromYawPitchRoll(core_1.Angle.FromDegrees(10), core_1.Angle.FromDegrees(20), core_1.Angle.FromDegrees(30));
119
119
  callout.labelRotation = newQ;
120
120
  expect(core_1.Quaternion.Close(callout.labelRotation, newQ)).toEqual(true);
@@ -1 +1 @@
1
- {"version":3,"file":"CalloutEntity.test.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Angle, makeAppObjectRepo, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { OverlayColorEnums } from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport { CalloutEntity, makeCalloutEntity } from \"./CalloutEntity\";\r\nimport { makeCalloutRepoEntity } from \"./CalloutRepo\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const calloutAO = appObjects.getOrCreate(\"calloutID\");\r\n const callout = makeCalloutEntity(calloutAO);\r\n const observer = jest.fn();\r\n callout.addChangeObserver(observer);\r\n\r\n const repoAO = appObjects.getOrCreate(\"repo\");\r\n const repo = makeCalloutRepoEntity(repoAO);\r\n repo.add(callout);\r\n callout.inRepo = repo;\r\n\r\n return { callout, appObjects, observer, repo };\r\n}\r\n\r\ndescribe(\"Callout Entity\", () => {\r\n it(\"Gets the entoty for the App Object\", () => {\r\n const { callout, appObjects } = makeTestRig();\r\n\r\n expect(CalloutEntity.getById(\"calloutID\", appObjects)).toEqual(callout);\r\n });\r\n\r\n it(\"Notifies when the Label changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n callout.label.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.label.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the hideable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.hideable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the hideable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.hideable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.hideable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the selectable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.selectable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the selectable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.selectable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.selectable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Removes itself from the repo\", () => {\r\n const { callout, repo } = makeTestRig();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(true);\r\n\r\n callout.dispose();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(false);\r\n });\r\n\r\n it(\"Notifies when the root transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.rootTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the root rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.rootTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the label transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.labelTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.labelTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.rootPosition).toEqual(Vector3.Zero());\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.rootTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(callout.rootRotation, Quaternion.Identity())\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.rootRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.rootRotation, newQ)).toEqual(true);\r\n expect(Quaternion.Close(callout.rootTransform.localRotation, newQ)).toEqual(\r\n true\r\n );\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.labelPosition).toEqual(Vector3.Zero());\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.labelTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(callout.labelRotation, Quaternion.Identity())\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.labelRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.labelRotation, newQ)).toEqual(true);\r\n expect(\r\n Quaternion.Close(callout.labelTransform.localRotation, newQ)\r\n ).toEqual(true);\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the dto id\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.id).toEqual(\"calloutID\");\r\n });\r\n\r\n it(\"Sets the dto parent\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.parentID).toEqual(\"repo\");\r\n });\r\n\r\n it(\"Sets the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.rootPosition).toEqual(callout.rootPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootRotation = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n expect(callout.data.rootRotation).toEqual(callout.rootRotation.dto);\r\n });\r\n\r\n it(\"Sets the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.labelPosition).toEqual(callout.labelPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.custom = \"custom label\";\r\n\r\n expect(callout.data.label).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Sets the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.default = \"default label\";\r\n\r\n expect(callout.data.defaultLabel).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Sets the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.overlayColor.overlayColor = OverlayColorEnums.RED;\r\n\r\n expect(callout.data.color).toEqual(\"Red\");\r\n });\r\n\r\n it(\"Applies the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n });\r\n\r\n it(\"Applies the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(\r\n Quaternion.Close(\r\n callout.rootRotation,\r\n Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n )\r\n )\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Applies the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(4, 5, 6));\r\n });\r\n\r\n it(\"Applies the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.custom).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Applies the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.default).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Applies the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.overlayColor.overlayColor).toEqual(OverlayColorEnums.RED);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"CalloutEntity.test.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Angle, makeAppObjectRepo, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { OverlayColorEnums } from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport { CalloutEntity, makeCalloutEntity } from \"./CalloutEntity\";\r\nimport { makeCalloutRepoEntity } from \"./CalloutRepo\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const calloutAO = appObjects.getOrCreate(\"calloutID\");\r\n const callout = makeCalloutEntity(calloutAO);\r\n const observer = jest.fn();\r\n callout.addChangeObserver(observer);\r\n\r\n const repoAO = appObjects.getOrCreate(\"repo\");\r\n const repo = makeCalloutRepoEntity(repoAO);\r\n repo.add(callout);\r\n callout.inRepo = repo;\r\n\r\n return { callout, appObjects, observer, repo };\r\n}\r\n\r\ndescribe(\"Callout Entity\", () => {\r\n it(\"Gets the entoty for the App Object\", () => {\r\n const { callout, appObjects } = makeTestRig();\r\n\r\n expect(CalloutEntity.getById(\"calloutID\", appObjects)).toEqual(callout);\r\n });\r\n\r\n it(\"Notifies when the Label changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n callout.label.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.label.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the hideable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.hideable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the hideable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.hideable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.hideable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the selectable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.selectable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the selectable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.selectable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.selectable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Removes itself from the repo\", () => {\r\n const { callout, repo } = makeTestRig();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(true);\r\n\r\n callout.dispose();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(false);\r\n });\r\n\r\n it(\"Notifies when the root transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.rootTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the root rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.rootTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the label transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.labelTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.labelTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.rootPosition).toEqual(Vector3.Zero());\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.rootTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(callout.rootRotation, Quaternion.Identity())\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.rootRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.rootRotation, newQ)).toEqual(true);\r\n expect(Quaternion.Close(callout.rootTransform.localRotation, newQ)).toEqual(\r\n true\r\n );\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.labelPosition).toEqual(Vector3.Zero());\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.labelTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(\r\n callout.labelRotation,\r\n Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(180),\r\n Angle.FromDegrees(0),\r\n Angle.FromDegrees(0)\r\n )\r\n )\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.labelRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.labelRotation, newQ)).toEqual(true);\r\n expect(\r\n Quaternion.Close(callout.labelTransform.localRotation, newQ)\r\n ).toEqual(true);\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the dto id\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.id).toEqual(\"calloutID\");\r\n });\r\n\r\n it(\"Sets the dto parent\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.parentID).toEqual(\"repo\");\r\n });\r\n\r\n it(\"Sets the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.rootPosition).toEqual(callout.rootPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootRotation = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n expect(callout.data.rootRotation).toEqual(callout.rootRotation.dto);\r\n });\r\n\r\n it(\"Sets the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.labelPosition).toEqual(callout.labelPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.custom = \"custom label\";\r\n\r\n expect(callout.data.label).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Sets the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.default = \"default label\";\r\n\r\n expect(callout.data.defaultLabel).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Sets the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.overlayColor.overlayColor = OverlayColorEnums.RED;\r\n\r\n expect(callout.data.color).toEqual(\"Red\");\r\n });\r\n\r\n it(\"Applies the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n });\r\n\r\n it(\"Applies the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(\r\n Quaternion.Close(\r\n callout.rootRotation,\r\n Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n )\r\n )\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Applies the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(4, 5, 6));\r\n });\r\n\r\n it(\"Applies the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.custom).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Applies the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.default).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Applies the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.overlayColor.overlayColor).toEqual(OverlayColorEnums.RED);\r\n });\r\n});\r\n"]}
@@ -1,9 +1,9 @@
1
- import { AppObjectEntity, Quaternion, RangedNumber, Vector3 } from "@vived/core";
1
+ import { Angle, AppObjectEntity, Quaternion, RangedNumber, Vector3, } from "@vived/core";
2
2
  import { Hideable } from "../../Hideable/Entities/Hideable";
3
3
  import { LabelEntity } from "../../Label/Entities/LabelEntity";
4
- import { OverlayColor, OverlayColorEnums } from "../../OverlayColor/Entities/OverlayColor";
5
- import { makeSelectable } from "../../Selection/Entities/Selectable";
6
- import { makeTransform3D } from "../../Transform3D/Entities/Transform3D";
4
+ import { OverlayColor, OverlayColorEnums, } from "../../OverlayColor/Entities/OverlayColor";
5
+ import { makeSelectable, } from "../../Selection/Entities/Selectable";
6
+ import { makeTransform3D, } from "../../Transform3D/Entities/Transform3D";
7
7
  export const CALLOUT_MINIMUM_SIZE = 0.3;
8
8
  export const CALLOUT_MAXIMUM_SIZE = 1.3;
9
9
  export class CalloutEntity extends AppObjectEntity {
@@ -128,6 +128,7 @@ class CalloutImp extends CalloutEntity {
128
128
  this.rootTransform.addChangeObserver(this.notifyOnChange);
129
129
  const labelAO = appObject.appObjectRepo.getOrCreate(myID + "_label");
130
130
  this.labelTransform = makeTransform3D(labelAO);
131
+ this.labelTransform.localRotation = Quaternion.FromYawPitchRoll(Angle.FromDegrees(180), Angle.FromDegrees(0), Angle.FromDegrees(0));
131
132
  this.labelTransform.addChangeObserver(this.notifyOnChange);
132
133
  }
133
134
  }
@@ -1 +1 @@
1
- {"version":3,"file":"CalloutEntity.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,eAAe,EAEf,UAAU,EAIV,YAAY,EAAE,OAAO,EAEtB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EACL,YAAY,EACZ,iBAAiB,EAClB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EACL,cAAc,EAEf,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,eAAe,EAEhB,MAAM,wCAAwC,CAAC;AAGhD,MAAM,CAAC,MAAM,oBAAoB,GAAW,GAAG,CAAC;AAChD,MAAM,CAAC,MAAM,oBAAoB,GAAW,GAAG,CAAC;AAgBhD,MAAM,OAAgB,aAAc,SAAQ,eAAe;IAGzD,MAAM,CAAC,GAAG,CAAC,MAAiB;QAC1B,OAAO,MAAM,CAAC,YAAY,CAAgB,IAAI,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,OAAO,CACZ,EAAU,EACV,UAAyB;QAEzB,OAAO,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,YAAY,CAAgB,IAAI,CAAC,IAAI,CAAC,CAAC;IACpE,CAAC;;AAXe,kBAAI,GAAG,SAAS,CAAC;AA6CnC,MAAM,UAAU,iBAAiB,CAAC,SAAoB;IACpD,OAAO,IAAI,UAAU,CAAC,SAAS,CAAC,CAAC;AACnC,CAAC;AAED,MAAM,UAAW,SAAQ,aAAa;IASpC,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;IAC3B,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;IAC7B,CAAC;IACD,IAAI,IAAI,CAAC,GAAW;QAClB,IAAI,CAAC,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC;IAC5B,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC1C,CAAC;IACD,IAAI,YAAY,CAAC,CAAU;QACzB,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;IAC1C,CAAC;IACD,IAAI,YAAY,CAAC,CAAa;QAC5B,IAAI,CAAC,aAAa,CAAC,aAAa,GAAG,CAAC,CAAC;IACvC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IAC3C,CAAC;IACD,IAAI,aAAa,CAAC,CAAU;QAC1B,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;IAC3C,CAAC;IACD,IAAI,aAAa,CAAC,CAAa;QAC7B,IAAI,CAAC,cAAc,CAAC,aAAa,GAAG,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,eAAe;QACjB,MAAM,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC;QACvD,MAAM,WAAW,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;QACtD,MAAM,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QAE3D,IAAI,eAAe,GAA2B,MAAM,CAAC;QACrD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAC1C,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;gBAAE,eAAe,GAAG,MAAM,CAAC;;gBACrC,eAAe,GAAG,IAAI,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,KAAK,CAAC,CAAC,GAAG,CAAC;gBAAE,eAAe,GAAG,MAAM,CAAC;;gBACrC,eAAe,GAAG,OAAO,CAAC;QACjC,CAAC;QAED,OAAO,eAAe,CAAC;IACzB,CAAC;IAID,IAAI,IAAI;QACN,OAAO;YACL,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE;YACrB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE;YACrD,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG;YACnC,YAAY,EAAE,IAAI,CAAC,YAAY,CAAC,GAAG;YACnC,aAAa,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG;YACrC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACxB,YAAY,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;YAChC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,YAAY;SACtC,CAAC;IACJ,CAAC;IAED,IAAI,IAAI,CAAC,GAAe;QACtB,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACtD,IAAI,CAAC,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;QACrB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,CAAC,YAAY,CAAC;QACtC,MAAM,YAAY,GAAG,GAAG,CAAC,KAA0B,CAAC;QACpD,IAAI,CAAC,YAAY,CAAC,YAAY,GAAG,YAAY,IAAI,iBAAiB,CAAC,KAAK,CAAC;IAC3E,CAAC;IAgBD,YAAY,SAAoB;QAC9B,KAAK,CAAC,SAAS,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;QAfvC,YAAO,GAAG,GAAG,EAAE;YACb,KAAK,CAAC,OAAO,EAAE,CAAC;YAChB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;YACrB,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACxB,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;YAC1B,IAAI,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC5B,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YACxC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC;YAEvC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;gBAChB,IAAI,CAAC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAKA,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACjD,IAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAErD,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEzD,IAAI,CAAC,UAAU,GAAG,cAAc,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAEvD,IAAI,CAAC,UAAU,GAAG,IAAI,YAAY,CAChC;YACE,GAAG,EAAE,oBAAoB;YACzB,GAAG,EAAE,oBAAoB;YACzB,YAAY,EACV,oBAAoB;gBACpB,GAAG,GAAG,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;SACtD,EACD,IAAI,CAAC,cAAc,CACpB,CAAC;QAEF,MAAM,IAAI,GAAG,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;QACnE,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,CAAC,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QAE1D,MAAM,OAAO,GAAG,SAAS,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,GAAG,QAAQ,CAAC,CAAC;QACrE,IAAI,CAAC,cAAc,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,IAAI,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;IAC7D,CAAC;CACF","sourcesContent":["import {\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n Quaternion,\r\n QuaternionDTO,\r\n\r\n\r\n RangedNumber, Vector3,\r\n Vector3DTO\r\n} from \"@vived/core\";\r\nimport { Hideable } from \"../../Hideable/Entities/Hideable\";\r\nimport { LabelEntity } from \"../../Label/Entities/LabelEntity\";\r\nimport {\r\n OverlayColor,\r\n OverlayColorEnums\r\n} from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport {\r\n makeSelectable,\r\n Selectable\r\n} from \"../../Selection/Entities/Selectable\";\r\nimport {\r\n makeTransform3D,\r\n Transform3D\r\n} from \"../../Transform3D/Entities/Transform3D\";\r\nimport { CalloutRepo } from \"./CalloutRepo\";\r\n\r\nexport const CALLOUT_MINIMUM_SIZE: number = 0.3;\r\nexport const CALLOUT_MAXIMUM_SIZE: number = 1.3;\r\n\r\nexport type CalloutOffsetDirection = \"LEFT\" | \"RIGHT\" | \"UP\" | \"DOWN\";\r\n\r\nexport interface CalloutDTO {\r\n id: string;\r\n rootPosition: Vector3DTO;\r\n rootRotation: QuaternionDTO;\r\n labelPosition: Vector3DTO;\r\n size: number;\r\n parentID: string;\r\n label: string;\r\n defaultLabel: string;\r\n color: string;\r\n}\r\n\r\nexport abstract class CalloutEntity extends AppObjectEntity {\r\n static readonly type = \"CALLOUT\";\r\n\r\n static get(appObj: AppObject): CalloutEntity | undefined {\r\n return appObj.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n static getById(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): CalloutEntity | undefined {\r\n return appObjects.get(id)?.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n abstract get id(): string;\r\n abstract inRepo?: CalloutRepo;\r\n\r\n abstract readonly label: LabelEntity;\r\n abstract readonly rootTransform: Transform3D;\r\n abstract readonly labelTransform: Transform3D;\r\n abstract readonly hideable: Hideable;\r\n abstract readonly selectable: Selectable;\r\n abstract readonly overlayColor: OverlayColor;\r\n abstract readonly rangedSize: RangedNumber;\r\n\r\n abstract get size(): number;\r\n abstract set size(val: number);\r\n\r\n abstract get rootPosition(): Vector3;\r\n abstract set rootPosition(p: Vector3);\r\n\r\n abstract get rootRotation(): Quaternion;\r\n abstract set rootRotation(r: Quaternion);\r\n\r\n abstract get labelPosition(): Vector3;\r\n abstract set labelPosition(p: Vector3);\r\n\r\n abstract get labelRotation(): Quaternion;\r\n abstract set labelRotation(r: Quaternion);\r\n\r\n abstract get data(): CalloutDTO;\r\n abstract set data(dto: CalloutDTO);\r\n\r\n abstract get offsetDirection(): CalloutOffsetDirection;\r\n}\r\n\r\nexport function makeCalloutEntity(appObject: AppObject): CalloutEntity {\r\n return new CalloutImp(appObject);\r\n}\r\n\r\nclass CalloutImp extends CalloutEntity {\r\n readonly label: LabelEntity;\r\n readonly hideable: Hideable;\r\n readonly selectable: Selectable;\r\n readonly rootTransform: Transform3D;\r\n readonly labelTransform: Transform3D;\r\n readonly overlayColor: OverlayColor;\r\n readonly rangedSize: RangedNumber;\r\n\r\n get id() {\r\n return this.appObject.id;\r\n }\r\n\r\n get size(): number {\r\n return this.rangedSize.val;\r\n }\r\n set size(val: number) {\r\n this.rangedSize.val = val;\r\n }\r\n\r\n get rootPosition(): Vector3 {\r\n return this.rootTransform.localPosition;\r\n }\r\n set rootPosition(p: Vector3) {\r\n this.rootTransform.localPosition = p;\r\n }\r\n\r\n get rootRotation(): Quaternion {\r\n return this.rootTransform.localRotation;\r\n }\r\n set rootRotation(r: Quaternion) {\r\n this.rootTransform.localRotation = r;\r\n }\r\n\r\n get labelPosition(): Vector3 {\r\n return this.labelTransform.localPosition;\r\n }\r\n set labelPosition(p: Vector3) {\r\n this.labelTransform.localPosition = p;\r\n }\r\n\r\n get labelRotation(): Quaternion {\r\n return this.labelTransform.localRotation;\r\n }\r\n set labelRotation(r: Quaternion) {\r\n this.labelTransform.localRotation = r;\r\n }\r\n\r\n get offsetDirection(): CalloutOffsetDirection {\r\n const worldStartPos = this.rootTransform.worldPosition;\r\n const worldEndPos = this.labelTransform.worldPosition;\r\n const delta = Vector3.Subtract(worldEndPos, worldStartPos);\r\n\r\n let offsetDirection: CalloutOffsetDirection = \"LEFT\";\r\n if (Math.abs(delta.y) > Math.abs(delta.x)) {\r\n if (delta.y < 0) offsetDirection = \"DOWN\";\r\n else offsetDirection = \"UP\";\r\n } else {\r\n if (delta.x < 0) offsetDirection = \"LEFT\";\r\n else offsetDirection = \"RIGHT\";\r\n }\r\n\r\n return offsetDirection;\r\n }\r\n\r\n inRepo?: CalloutRepo;\r\n\r\n get data(): CalloutDTO {\r\n return {\r\n id: this.appObject.id,\r\n parentID: this.inRepo ? this.inRepo.appObject.id : \"\",\r\n rootPosition: this.rootPosition.dto,\r\n rootRotation: this.rootRotation.dto,\r\n labelPosition: this.labelPosition.dto,\r\n size: this.size,\r\n label: this.label.custom,\r\n defaultLabel: this.label.default,\r\n color: this.overlayColor.overlayColor,\r\n };\r\n }\r\n\r\n set data(dto: CalloutDTO) {\r\n this.rootPosition = Vector3.FromDTO(dto.rootPosition);\r\n this.rootRotation = Quaternion.FromDTO(dto.rootRotation);\r\n this.labelPosition = Vector3.FromDTO(dto.labelPosition);\r\n this.size = dto.size;\r\n this.label.custom = dto.label;\r\n this.label.default = dto.defaultLabel;\r\n const overlayColor = dto.color as OverlayColorEnums;\r\n this.overlayColor.overlayColor = overlayColor ?? OverlayColorEnums.WHITE;\r\n }\r\n\r\n dispose = () => {\r\n super.dispose();\r\n this.label.dispose();\r\n this.hideable.dispose();\r\n this.selectable.dispose();\r\n this.overlayColor.dispose();\r\n this.labelTransform.appObject.dispose();\r\n this.rootTransform.appObject.dispose();\r\n\r\n if (this.inRepo) {\r\n this.inRepo.removeForAppObject(this.appObject.id);\r\n }\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, CalloutEntity.type);\r\n\r\n this.label = LabelEntity.addIfMissing(appObject);\r\n this.label.addChangeObserver(this.notifyOnChange);\r\n\r\n this.hideable = Hideable.addIfMissing(appObject);\r\n this.hideable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.overlayColor = OverlayColor.addIfMissing(appObject);\r\n this.overlayColor.addChangeObserver(this.notifyOnChange);\r\n\r\n this.selectable = makeSelectable(appObject);\r\n this.selectable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.rangedSize = new RangedNumber(\r\n {\r\n min: CALLOUT_MINIMUM_SIZE,\r\n max: CALLOUT_MAXIMUM_SIZE,\r\n initialValue:\r\n CALLOUT_MINIMUM_SIZE +\r\n 0.5 * (CALLOUT_MAXIMUM_SIZE - CALLOUT_MINIMUM_SIZE),\r\n },\r\n this.notifyOnChange\r\n );\r\n\r\n const myID = appObject.id;\r\n const rootAO = appObject.appObjectRepo.getOrCreate(myID + \"_root\");\r\n this.rootTransform = makeTransform3D(rootAO);\r\n this.rootTransform.addChangeObserver(this.notifyOnChange);\r\n\r\n const labelAO = appObject.appObjectRepo.getOrCreate(myID + \"_label\");\r\n this.labelTransform = makeTransform3D(labelAO);\r\n this.labelTransform.addChangeObserver(this.notifyOnChange);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"CalloutEntity.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.ts"],"names":[],"mappings":"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","sourcesContent":["import {\r\n Angle,\r\n AppObject,\r\n AppObjectEntity,\r\n AppObjectRepo,\r\n Quaternion,\r\n QuaternionDTO,\r\n RangedNumber,\r\n Vector3,\r\n Vector3DTO,\r\n} from \"@vived/core\";\r\nimport { Hideable } from \"../../Hideable/Entities/Hideable\";\r\nimport { LabelEntity } from \"../../Label/Entities/LabelEntity\";\r\nimport {\r\n OverlayColor,\r\n OverlayColorEnums,\r\n} from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport {\r\n makeSelectable,\r\n Selectable,\r\n} from \"../../Selection/Entities/Selectable\";\r\nimport {\r\n makeTransform3D,\r\n Transform3D,\r\n} from \"../../Transform3D/Entities/Transform3D\";\r\nimport { CalloutRepo } from \"./CalloutRepo\";\r\n\r\nexport const CALLOUT_MINIMUM_SIZE: number = 0.3;\r\nexport const CALLOUT_MAXIMUM_SIZE: number = 1.3;\r\n\r\nexport type CalloutOffsetDirection = \"LEFT\" | \"RIGHT\" | \"UP\" | \"DOWN\";\r\n\r\nexport interface CalloutDTO {\r\n id: string;\r\n rootPosition: Vector3DTO;\r\n rootRotation: QuaternionDTO;\r\n labelPosition: Vector3DTO;\r\n size: number;\r\n parentID: string;\r\n label: string;\r\n defaultLabel: string;\r\n color: string;\r\n}\r\n\r\nexport abstract class CalloutEntity extends AppObjectEntity {\r\n static readonly type = \"CALLOUT\";\r\n\r\n static get(appObj: AppObject): CalloutEntity | undefined {\r\n return appObj.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n static getById(\r\n id: string,\r\n appObjects: AppObjectRepo\r\n ): CalloutEntity | undefined {\r\n return appObjects.get(id)?.getComponent<CalloutEntity>(this.type);\r\n }\r\n\r\n abstract get id(): string;\r\n abstract inRepo?: CalloutRepo;\r\n\r\n abstract readonly label: LabelEntity;\r\n abstract readonly rootTransform: Transform3D;\r\n abstract readonly labelTransform: Transform3D;\r\n abstract readonly hideable: Hideable;\r\n abstract readonly selectable: Selectable;\r\n abstract readonly overlayColor: OverlayColor;\r\n abstract readonly rangedSize: RangedNumber;\r\n\r\n abstract get size(): number;\r\n abstract set size(val: number);\r\n\r\n abstract get rootPosition(): Vector3;\r\n abstract set rootPosition(p: Vector3);\r\n\r\n abstract get rootRotation(): Quaternion;\r\n abstract set rootRotation(r: Quaternion);\r\n\r\n abstract get labelPosition(): Vector3;\r\n abstract set labelPosition(p: Vector3);\r\n\r\n abstract get labelRotation(): Quaternion;\r\n abstract set labelRotation(r: Quaternion);\r\n\r\n abstract get data(): CalloutDTO;\r\n abstract set data(dto: CalloutDTO);\r\n\r\n abstract get offsetDirection(): CalloutOffsetDirection;\r\n}\r\n\r\nexport function makeCalloutEntity(appObject: AppObject): CalloutEntity {\r\n return new CalloutImp(appObject);\r\n}\r\n\r\nclass CalloutImp extends CalloutEntity {\r\n readonly label: LabelEntity;\r\n readonly hideable: Hideable;\r\n readonly selectable: Selectable;\r\n readonly rootTransform: Transform3D;\r\n readonly labelTransform: Transform3D;\r\n readonly overlayColor: OverlayColor;\r\n readonly rangedSize: RangedNumber;\r\n\r\n get id() {\r\n return this.appObject.id;\r\n }\r\n\r\n get size(): number {\r\n return this.rangedSize.val;\r\n }\r\n set size(val: number) {\r\n this.rangedSize.val = val;\r\n }\r\n\r\n get rootPosition(): Vector3 {\r\n return this.rootTransform.localPosition;\r\n }\r\n set rootPosition(p: Vector3) {\r\n this.rootTransform.localPosition = p;\r\n }\r\n\r\n get rootRotation(): Quaternion {\r\n return this.rootTransform.localRotation;\r\n }\r\n set rootRotation(r: Quaternion) {\r\n this.rootTransform.localRotation = r;\r\n }\r\n\r\n get labelPosition(): Vector3 {\r\n return this.labelTransform.localPosition;\r\n }\r\n set labelPosition(p: Vector3) {\r\n this.labelTransform.localPosition = p;\r\n }\r\n\r\n get labelRotation(): Quaternion {\r\n return this.labelTransform.localRotation;\r\n }\r\n set labelRotation(r: Quaternion) {\r\n this.labelTransform.localRotation = r;\r\n }\r\n\r\n get offsetDirection(): CalloutOffsetDirection {\r\n const worldStartPos = this.rootTransform.worldPosition;\r\n const worldEndPos = this.labelTransform.worldPosition;\r\n const delta = Vector3.Subtract(worldEndPos, worldStartPos);\r\n\r\n let offsetDirection: CalloutOffsetDirection = \"LEFT\";\r\n if (Math.abs(delta.y) > Math.abs(delta.x)) {\r\n if (delta.y < 0) offsetDirection = \"DOWN\";\r\n else offsetDirection = \"UP\";\r\n } else {\r\n if (delta.x < 0) offsetDirection = \"LEFT\";\r\n else offsetDirection = \"RIGHT\";\r\n }\r\n\r\n return offsetDirection;\r\n }\r\n\r\n inRepo?: CalloutRepo;\r\n\r\n get data(): CalloutDTO {\r\n return {\r\n id: this.appObject.id,\r\n parentID: this.inRepo ? this.inRepo.appObject.id : \"\",\r\n rootPosition: this.rootPosition.dto,\r\n rootRotation: this.rootRotation.dto,\r\n labelPosition: this.labelPosition.dto,\r\n size: this.size,\r\n label: this.label.custom,\r\n defaultLabel: this.label.default,\r\n color: this.overlayColor.overlayColor,\r\n };\r\n }\r\n\r\n set data(dto: CalloutDTO) {\r\n this.rootPosition = Vector3.FromDTO(dto.rootPosition);\r\n this.rootRotation = Quaternion.FromDTO(dto.rootRotation);\r\n this.labelPosition = Vector3.FromDTO(dto.labelPosition);\r\n this.size = dto.size;\r\n this.label.custom = dto.label;\r\n this.label.default = dto.defaultLabel;\r\n const overlayColor = dto.color as OverlayColorEnums;\r\n this.overlayColor.overlayColor = overlayColor ?? OverlayColorEnums.WHITE;\r\n }\r\n\r\n dispose = () => {\r\n super.dispose();\r\n this.label.dispose();\r\n this.hideable.dispose();\r\n this.selectable.dispose();\r\n this.overlayColor.dispose();\r\n this.labelTransform.appObject.dispose();\r\n this.rootTransform.appObject.dispose();\r\n\r\n if (this.inRepo) {\r\n this.inRepo.removeForAppObject(this.appObject.id);\r\n }\r\n };\r\n\r\n constructor(appObject: AppObject) {\r\n super(appObject, CalloutEntity.type);\r\n\r\n this.label = LabelEntity.addIfMissing(appObject);\r\n this.label.addChangeObserver(this.notifyOnChange);\r\n\r\n this.hideable = Hideable.addIfMissing(appObject);\r\n this.hideable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.overlayColor = OverlayColor.addIfMissing(appObject);\r\n this.overlayColor.addChangeObserver(this.notifyOnChange);\r\n\r\n this.selectable = makeSelectable(appObject);\r\n this.selectable.addChangeObserver(this.notifyOnChange);\r\n\r\n this.rangedSize = new RangedNumber(\r\n {\r\n min: CALLOUT_MINIMUM_SIZE,\r\n max: CALLOUT_MAXIMUM_SIZE,\r\n initialValue:\r\n CALLOUT_MINIMUM_SIZE +\r\n 0.5 * (CALLOUT_MAXIMUM_SIZE - CALLOUT_MINIMUM_SIZE),\r\n },\r\n this.notifyOnChange\r\n );\r\n\r\n const myID = appObject.id;\r\n const rootAO = appObject.appObjectRepo.getOrCreate(myID + \"_root\");\r\n this.rootTransform = makeTransform3D(rootAO);\r\n this.rootTransform.addChangeObserver(this.notifyOnChange);\r\n\r\n const labelAO = appObject.appObjectRepo.getOrCreate(myID + \"_label\");\r\n this.labelTransform = makeTransform3D(labelAO);\r\n this.labelTransform.localRotation = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(180),\r\n Angle.FromDegrees(0),\r\n Angle.FromDegrees(0)\r\n );\r\n this.labelTransform.addChangeObserver(this.notifyOnChange);\r\n }\r\n}\r\n"]}
@@ -112,7 +112,7 @@ describe("Callout Entity", () => {
112
112
  });
113
113
  it("Sets and gets the labelRotation", () => {
114
114
  const { callout, observer } = makeTestRig();
115
- expect(Quaternion.Close(callout.labelRotation, Quaternion.Identity())).toEqual(true);
115
+ expect(Quaternion.Close(callout.labelRotation, Quaternion.FromYawPitchRoll(Angle.FromDegrees(180), Angle.FromDegrees(0), Angle.FromDegrees(0)))).toEqual(true);
116
116
  const newQ = Quaternion.FromYawPitchRoll(Angle.FromDegrees(10), Angle.FromDegrees(20), Angle.FromDegrees(30));
117
117
  callout.labelRotation = newQ;
118
118
  expect(Quaternion.Close(callout.labelRotation, newQ)).toEqual(true);
@@ -1 +1 @@
1
- {"version":3,"file":"CalloutEntity.test.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Angle, makeAppObjectRepo, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { OverlayColorEnums } from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport { CalloutEntity, makeCalloutEntity } from \"./CalloutEntity\";\r\nimport { makeCalloutRepoEntity } from \"./CalloutRepo\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const calloutAO = appObjects.getOrCreate(\"calloutID\");\r\n const callout = makeCalloutEntity(calloutAO);\r\n const observer = jest.fn();\r\n callout.addChangeObserver(observer);\r\n\r\n const repoAO = appObjects.getOrCreate(\"repo\");\r\n const repo = makeCalloutRepoEntity(repoAO);\r\n repo.add(callout);\r\n callout.inRepo = repo;\r\n\r\n return { callout, appObjects, observer, repo };\r\n}\r\n\r\ndescribe(\"Callout Entity\", () => {\r\n it(\"Gets the entoty for the App Object\", () => {\r\n const { callout, appObjects } = makeTestRig();\r\n\r\n expect(CalloutEntity.getById(\"calloutID\", appObjects)).toEqual(callout);\r\n });\r\n\r\n it(\"Notifies when the Label changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n callout.label.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.label.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the hideable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.hideable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the hideable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.hideable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.hideable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the selectable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.selectable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the selectable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.selectable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.selectable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Removes itself from the repo\", () => {\r\n const { callout, repo } = makeTestRig();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(true);\r\n\r\n callout.dispose();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(false);\r\n });\r\n\r\n it(\"Notifies when the root transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.rootTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the root rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.rootTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the label transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.labelTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.labelTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.rootPosition).toEqual(Vector3.Zero());\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.rootTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(callout.rootRotation, Quaternion.Identity())\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.rootRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.rootRotation, newQ)).toEqual(true);\r\n expect(Quaternion.Close(callout.rootTransform.localRotation, newQ)).toEqual(\r\n true\r\n );\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.labelPosition).toEqual(Vector3.Zero());\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.labelTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(callout.labelRotation, Quaternion.Identity())\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.labelRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.labelRotation, newQ)).toEqual(true);\r\n expect(\r\n Quaternion.Close(callout.labelTransform.localRotation, newQ)\r\n ).toEqual(true);\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the dto id\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.id).toEqual(\"calloutID\");\r\n });\r\n\r\n it(\"Sets the dto parent\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.parentID).toEqual(\"repo\");\r\n });\r\n\r\n it(\"Sets the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.rootPosition).toEqual(callout.rootPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootRotation = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n expect(callout.data.rootRotation).toEqual(callout.rootRotation.dto);\r\n });\r\n\r\n it(\"Sets the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.labelPosition).toEqual(callout.labelPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.custom = \"custom label\";\r\n\r\n expect(callout.data.label).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Sets the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.default = \"default label\";\r\n\r\n expect(callout.data.defaultLabel).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Sets the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.overlayColor.overlayColor = OverlayColorEnums.RED;\r\n\r\n expect(callout.data.color).toEqual(\"Red\");\r\n });\r\n\r\n it(\"Applies the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n });\r\n\r\n it(\"Applies the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(\r\n Quaternion.Close(\r\n callout.rootRotation,\r\n Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n )\r\n )\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Applies the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(4, 5, 6));\r\n });\r\n\r\n it(\"Applies the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.custom).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Applies the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.default).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Applies the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.overlayColor.overlayColor).toEqual(OverlayColorEnums.RED);\r\n });\r\n});\r\n"]}
1
+ {"version":3,"file":"CalloutEntity.test.js","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { Angle, makeAppObjectRepo, Quaternion, Vector3 } from \"@vived/core\";\r\nimport { OverlayColorEnums } from \"../../OverlayColor/Entities/OverlayColor\";\r\nimport { CalloutEntity, makeCalloutEntity } from \"./CalloutEntity\";\r\nimport { makeCalloutRepoEntity } from \"./CalloutRepo\";\r\n\r\nfunction makeTestRig() {\r\n const appObjects = makeAppObjectRepo();\r\n\r\n const calloutAO = appObjects.getOrCreate(\"calloutID\");\r\n const callout = makeCalloutEntity(calloutAO);\r\n const observer = jest.fn();\r\n callout.addChangeObserver(observer);\r\n\r\n const repoAO = appObjects.getOrCreate(\"repo\");\r\n const repo = makeCalloutRepoEntity(repoAO);\r\n repo.add(callout);\r\n callout.inRepo = repo;\r\n\r\n return { callout, appObjects, observer, repo };\r\n}\r\n\r\ndescribe(\"Callout Entity\", () => {\r\n it(\"Gets the entoty for the App Object\", () => {\r\n const { callout, appObjects } = makeTestRig();\r\n\r\n expect(CalloutEntity.getById(\"calloutID\", appObjects)).toEqual(callout);\r\n });\r\n\r\n it(\"Notifies when the Label changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n callout.label.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.label.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the hideable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.hideable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the hideable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.hideable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.hideable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the selectable changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.selectable.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the selectable\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.selectable.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.selectable.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Removes itself from the repo\", () => {\r\n const { callout, repo } = makeTestRig();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(true);\r\n\r\n callout.dispose();\r\n\r\n expect(repo.hasForAppObject(callout.appObject.id)).toEqual(false);\r\n });\r\n\r\n it(\"Notifies when the root transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.rootTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the root rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.rootTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Notifies when the label transform changes\", () => {\r\n const { callout, observer } = makeTestRig();\r\n observer.mockClear();\r\n\r\n callout.labelTransform.notifyOnChange();\r\n\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Disposes the label rootTransform\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelTransform.dispose = jest.fn();\r\n\r\n callout.dispose();\r\n\r\n expect(callout.labelTransform.dispose).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.rootPosition).toEqual(Vector3.Zero());\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.rootTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the rootRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(callout.rootRotation, Quaternion.Identity())\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.rootRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.rootRotation, newQ)).toEqual(true);\r\n expect(Quaternion.Close(callout.rootTransform.localRotation, newQ)).toEqual(\r\n true\r\n );\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelPosition\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(callout.labelPosition).toEqual(Vector3.Zero());\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(callout.labelTransform.localPosition).toEqual(new Vector3(1, 2, 3));\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets and gets the labelRotation\", () => {\r\n const { callout, observer } = makeTestRig();\r\n\r\n expect(\r\n Quaternion.Close(\r\n callout.labelRotation,\r\n Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(180),\r\n Angle.FromDegrees(0),\r\n Angle.FromDegrees(0)\r\n )\r\n )\r\n ).toEqual(true);\r\n const newQ = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n callout.labelRotation = newQ;\r\n\r\n expect(Quaternion.Close(callout.labelRotation, newQ)).toEqual(true);\r\n expect(\r\n Quaternion.Close(callout.labelTransform.localRotation, newQ)\r\n ).toEqual(true);\r\n expect(observer).toHaveBeenCalled();\r\n });\r\n\r\n it(\"Sets the dto id\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.id).toEqual(\"calloutID\");\r\n });\r\n\r\n it(\"Sets the dto parent\", () => {\r\n const { callout } = makeTestRig();\r\n expect(callout.data.parentID).toEqual(\"repo\");\r\n });\r\n\r\n it(\"Sets the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.rootPosition).toEqual(callout.rootPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.rootRotation = Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n );\r\n\r\n expect(callout.data.rootRotation).toEqual(callout.rootRotation.dto);\r\n });\r\n\r\n it(\"Sets the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.labelPosition = new Vector3(1, 2, 3);\r\n\r\n expect(callout.data.labelPosition).toEqual(callout.labelPosition.dto);\r\n });\r\n\r\n it(\"Sets the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.custom = \"custom label\";\r\n\r\n expect(callout.data.label).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Sets the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.label.default = \"default label\";\r\n\r\n expect(callout.data.defaultLabel).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Sets the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.overlayColor.overlayColor = OverlayColorEnums.RED;\r\n\r\n expect(callout.data.color).toEqual(\"Red\");\r\n });\r\n\r\n it(\"Applies the dto root position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.rootPosition).toEqual(new Vector3(1, 2, 3));\r\n });\r\n\r\n it(\"Applies the dto root rotation\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(\r\n Quaternion.Close(\r\n callout.rootRotation,\r\n Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n )\r\n )\r\n ).toEqual(true);\r\n });\r\n\r\n it(\"Applies the dto label position\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.labelPosition).toEqual(new Vector3(4, 5, 6));\r\n });\r\n\r\n it(\"Applies the dto label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.custom).toEqual(\"custom label\");\r\n });\r\n\r\n it(\"Applies the dto default label\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.label.default).toEqual(\"default label\");\r\n });\r\n\r\n it(\"Applies the dto color\", () => {\r\n const { callout } = makeTestRig();\r\n\r\n callout.data = {\r\n id: \"calloutID\",\r\n parentID: \"repo\",\r\n rootPosition: new Vector3(1, 2, 3).dto,\r\n rootRotation: Quaternion.FromYawPitchRoll(\r\n Angle.FromDegrees(10),\r\n Angle.FromDegrees(20),\r\n Angle.FromDegrees(30)\r\n ).dto,\r\n labelPosition: new Vector3(4, 5, 6).dto,\r\n defaultLabel: \"default label\",\r\n label: \"custom label\",\r\n size: 5,\r\n color: \"Red\",\r\n };\r\n\r\n expect(callout.overlayColor.overlayColor).toEqual(OverlayColorEnums.RED);\r\n });\r\n});\r\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"CalloutEntity.d.ts","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EAGb,YAAY,EAAE,OAAO,EACrB,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EACL,YAAY,EAEb,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAEL,UAAU,EACX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,WAAW,EACZ,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAChD,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,UAAU,CAAC;IACzB,YAAY,EAAE,aAAa,CAAC;IAC5B,aAAa,EAAE,UAAU,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8BAAsB,aAAc,SAAQ,eAAe;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa;IAEjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS;IAIxD,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,aAAa,GAAG,SAAS;IAI5B,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE9B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3C,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;IAE/B,QAAQ,KAAK,YAAY,IAAI,OAAO,CAAC;IACrC,QAAQ,KAAK,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IAEtC,QAAQ,KAAK,YAAY,IAAI,UAAU,CAAC;IACxC,QAAQ,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE;IAEzC,QAAQ,KAAK,aAAa,IAAI,OAAO,CAAC;IACtC,QAAQ,KAAK,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE;IAEvC,QAAQ,KAAK,aAAa,IAAI,UAAU,CAAC;IACzC,QAAQ,KAAK,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE;IAE1C,QAAQ,KAAK,IAAI,IAAI,UAAU,CAAC;IAChC,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE;IAEnC,QAAQ,KAAK,eAAe,IAAI,sBAAsB,CAAC;CACxD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,CAErE"}
1
+ {"version":3,"file":"CalloutEntity.d.ts","sourceRoot":"","sources":["../../../../src/Callouts/Entities/CalloutEntity.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,eAAe,EACf,aAAa,EACb,UAAU,EACV,aAAa,EACb,YAAY,EACZ,OAAO,EACP,UAAU,EACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AAC/D,OAAO,EACL,YAAY,EAEb,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAEL,UAAU,EACX,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EAEL,WAAW,EACZ,MAAM,wCAAwC,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAChD,eAAO,MAAM,oBAAoB,EAAE,MAAY,CAAC;AAEhD,MAAM,MAAM,sBAAsB,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC;AAEtE,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,YAAY,EAAE,UAAU,CAAC;IACzB,YAAY,EAAE,aAAa,CAAC;IAC5B,aAAa,EAAE,UAAU,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,8BAAsB,aAAc,SAAQ,eAAe;IACzD,MAAM,CAAC,QAAQ,CAAC,IAAI,aAAa;IAEjC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,GAAG,aAAa,GAAG,SAAS;IAIxD,MAAM,CAAC,OAAO,CACZ,EAAE,EAAE,MAAM,EACV,UAAU,EAAE,aAAa,GACxB,aAAa,GAAG,SAAS;IAI5B,QAAQ,KAAK,EAAE,IAAI,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,WAAW,CAAC;IAE9B,QAAQ,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,aAAa,EAAE,WAAW,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,cAAc,EAAE,WAAW,CAAC;IAC9C,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IACrC,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;IACzC,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IAC7C,QAAQ,CAAC,QAAQ,CAAC,UAAU,EAAE,YAAY,CAAC;IAE3C,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC;IAC5B,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE;IAE/B,QAAQ,KAAK,YAAY,IAAI,OAAO,CAAC;IACrC,QAAQ,KAAK,YAAY,CAAC,CAAC,EAAE,OAAO,EAAE;IAEtC,QAAQ,KAAK,YAAY,IAAI,UAAU,CAAC;IACxC,QAAQ,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,EAAE;IAEzC,QAAQ,KAAK,aAAa,IAAI,OAAO,CAAC;IACtC,QAAQ,KAAK,aAAa,CAAC,CAAC,EAAE,OAAO,EAAE;IAEvC,QAAQ,KAAK,aAAa,IAAI,UAAU,CAAC;IACzC,QAAQ,KAAK,aAAa,CAAC,CAAC,EAAE,UAAU,EAAE;IAE1C,QAAQ,KAAK,IAAI,IAAI,UAAU,CAAC;IAChC,QAAQ,KAAK,IAAI,CAAC,GAAG,EAAE,UAAU,EAAE;IAEnC,QAAQ,KAAK,eAAe,IAAI,sBAAsB,CAAC;CACxD;AAED,wBAAgB,iBAAiB,CAAC,SAAS,EAAE,SAAS,GAAG,aAAa,CAErE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vived/app",
3
- "version": "5.0.5",
3
+ "version": "5.0.6",
4
4
  "description": "Public package of VIVED App Components",
5
5
  "main": "./dist/cjs/index.js",
6
6
  "module": "./dist/esm/index.js",