From a406f2a7984fdeb6f98fc2ff1323165883265140 Mon Sep 17 00:00:00 2001 From: MasatoMakino Date: Fri, 17 Mar 2023 13:01:25 +0900 Subject: [PATCH 1/2] change : view and model to readonly --- src/CheckBoxObject.ts | 2 +- src/ClickableObject.ts | 2 +- src/InteractiveMesh.ts | 2 +- src/InteractiveSprite.ts | 3 +-- src/RadioButtonObject.ts | 2 +- 5 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/CheckBoxObject.ts b/src/CheckBoxObject.ts index f8c9073b..74fef2ee 100644 --- a/src/CheckBoxObject.ts +++ b/src/CheckBoxObject.ts @@ -6,7 +6,7 @@ import { } from "./"; export class CheckBoxObject extends ClickableObject { - declare view: CheckBoxMesh | CheckBoxSprite; + declare readonly view: CheckBoxMesh | CheckBoxSprite; protected _isSelect: boolean = false; /** diff --git a/src/ClickableObject.ts b/src/ClickableObject.ts index 9c42986d..b72b9ca5 100644 --- a/src/ClickableObject.ts +++ b/src/ClickableObject.ts @@ -48,7 +48,7 @@ export class ClickableObject { return this._isPress; } - view: ClickableView; + readonly view: ClickableView; protected _isPress: boolean = false; protected _isOver: boolean = false; protected _enable: boolean = true; diff --git a/src/InteractiveMesh.ts b/src/InteractiveMesh.ts index 488a8189..6470c6cd 100644 --- a/src/InteractiveMesh.ts +++ b/src/InteractiveMesh.ts @@ -17,7 +17,7 @@ class InteractiveMesh> extends Mesh implements IClickableObject3D { - public model: Model; + readonly model: Model; constructor( parameters: InteractiveMeshParameters, diff --git a/src/InteractiveSprite.ts b/src/InteractiveSprite.ts index a78a3470..af0d10be 100644 --- a/src/InteractiveSprite.ts +++ b/src/InteractiveSprite.ts @@ -16,8 +16,7 @@ class InteractiveSprite> extends Sprite implements IClickableObject3D { - public model: Model; - + readonly model: Model; constructor( material: StateMaterialSet, ctor: ModelConstructor diff --git a/src/RadioButtonObject.ts b/src/RadioButtonObject.ts index bd0cd248..6ea59114 100644 --- a/src/RadioButtonObject.ts +++ b/src/RadioButtonObject.ts @@ -1,7 +1,7 @@ import { CheckBoxObject, RadioButtonMesh, RadioButtonSprite } from "./"; export class RadioButtonObject extends CheckBoxObject { - declare view: RadioButtonMesh | RadioButtonSprite; + declare readonly view: RadioButtonMesh | RadioButtonSprite; protected _isFrozen: boolean = false; /** From a7621ff7c88713b8aacc9d048b3175b8f0c82222 Mon Sep 17 00:00:00 2001 From: MasatoMakino Date: Sat, 18 Mar 2023 07:29:03 +0900 Subject: [PATCH 2/2] change : ThreeMouseEvent.model and .isSelected to readonly --- src/ThreeMouseEvent.ts | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/src/ThreeMouseEvent.ts b/src/ThreeMouseEvent.ts index da5cf2bf..60fffa3b 100644 --- a/src/ThreeMouseEvent.ts +++ b/src/ThreeMouseEvent.ts @@ -3,8 +3,8 @@ import { ClickableObject, IClickableObject3D } from "./"; export interface ThreeMouseEvent extends Event { type: ThreeMouseEventType; - model?: ClickableObject; - isSelected?: boolean; + readonly model?: ClickableObject; + readonly isSelected?: boolean; } export class ThreeMouseEventUtil { @@ -12,15 +12,19 @@ export class ThreeMouseEventUtil { type: ThreeMouseEventType, modelOrView: ClickableObject | IClickableObject3D | undefined ): ThreeMouseEvent { - const e: ThreeMouseEvent = { - type, - model: ThreeMouseEventUtil.getModel(modelOrView), + const model = ThreeMouseEventUtil.getModel(modelOrView); + const getSelection = () => { + if (type === "select") { + return ThreeMouseEventUtil.getSelection(model); + } + return undefined; }; - if (type === "select") { - e.isSelected = ThreeMouseEventUtil.getSelection(e.model); - } - return e; + return { + type, + model, + isSelected: getSelection(), + }; } private static getModel(