From 968f336a98d8c3baa583192ae30158d9c8d55de9 Mon Sep 17 00:00:00 2001 From: kovacsv Date: Tue, 18 Jan 2022 19:51:07 +0100 Subject: [PATCH] Move camera to a separate file. --- source/engine/parameters/parameterlist.js | 2 +- source/engine/viewer/camera.js | 25 +++++++++++++++++++++ source/engine/viewer/navigation.js | 27 ++--------------------- source/engine/viewer/viewer.js | 3 ++- 4 files changed, 30 insertions(+), 27 deletions(-) create mode 100644 source/engine/viewer/camera.js diff --git a/source/engine/parameters/parameterlist.js b/source/engine/parameters/parameterlist.js index b511646..3080ab1 100644 --- a/source/engine/parameters/parameterlist.js +++ b/source/engine/parameters/parameterlist.js @@ -1,6 +1,6 @@ import { Coord3D } from '../geometry/coord3d.js'; import { Color } from '../model/color.js'; -import { Camera } from '../viewer/navigation.js'; +import { Camera } from '../viewer/camera.js'; export let ParameterConverter = { diff --git a/source/engine/viewer/camera.js b/source/engine/viewer/camera.js new file mode 100644 index 0000000..9b44d3f --- /dev/null +++ b/source/engine/viewer/camera.js @@ -0,0 +1,25 @@ +import { CoordIsEqual3D } from '../geometry/coord3d.js'; + +export class Camera +{ + constructor (eye, center, up) + { + this.eye = eye; + this.center = center; + this.up = up; + } + + Clone () + { + return new Camera ( + this.eye.Clone (), + this.center.Clone (), + this.up.Clone () + ); + } +} + +export function CameraIsEqual3D (a, b) +{ + return CoordIsEqual3D (a.eye, b.eye) && CoordIsEqual3D (a.center, b.center) && CoordIsEqual3D (a.up, b.up); +} diff --git a/source/engine/viewer/navigation.js b/source/engine/viewer/navigation.js index a4cc873..a8fe054 100644 --- a/source/engine/viewer/navigation.js +++ b/source/engine/viewer/navigation.js @@ -1,33 +1,10 @@ import { Coord2D, CoordDistance2D, SubCoord2D } from '../geometry/coord2d.js'; -import { CoordDistance3D, CoordIsEqual3D, CrossVector3D, SubCoord3D, VectorAngle3D } from '../geometry/coord3d.js'; +import { CoordDistance3D, CrossVector3D, SubCoord3D, VectorAngle3D } from '../geometry/coord3d.js'; import { DegRad, IsGreater, IsLower, IsZero } from '../geometry/geometry.js'; import { ParabolicTweenFunction, TweenCoord3D } from '../geometry/tween.js'; +import { CameraIsEqual3D } from './camera.js'; import { GetDomElementClientCoordinates } from './domutils.js'; -export class Camera -{ - constructor (eye, center, up) - { - this.eye = eye; - this.center = center; - this.up = up; - } - - Clone () - { - return new Camera ( - this.eye.Clone (), - this.center.Clone (), - this.up.Clone () - ); - } -} - -export function CameraIsEqual3D (a, b) -{ - return CoordIsEqual3D (a.eye, b.eye) && CoordIsEqual3D (a.center, b.center) && CoordIsEqual3D (a.up, b.up); -} - export class MouseInteraction { constructor () diff --git a/source/engine/viewer/viewer.js b/source/engine/viewer/viewer.js index 3872da1..a251431 100644 --- a/source/engine/viewer/viewer.js +++ b/source/engine/viewer/viewer.js @@ -2,8 +2,9 @@ import { Coord3D, CoordDistance3D, SubCoord3D } from '../geometry/coord3d.js'; import { Direction } from '../geometry/geometry.js'; import { ColorToHexString } from '../model/color.js'; import { ShadingType } from '../threejs/threeutils.js'; +import { Camera } from './camera.js'; import { GetDomElementInnerDimensions } from './domutils.js'; -import { Camera, Navigation } from './navigation.js'; +import { Navigation } from './navigation.js'; import { ViewerExtraGeometry, ViewerGeometry } from './viewergeometry.js'; export function GetDefaultCamera (direction)