Skip to content

Commit

Permalink
Add viewHelper
Browse files Browse the repository at this point in the history
  • Loading branch information
arjxn-py committed Oct 1, 2024
1 parent 0ba9a9e commit 89938b7
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions packages/base/src/3dview/mainview.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
import { TransformControls } from 'three/examples/jsm/controls/TransformControls.js';
import { GLTFExporter } from 'three/examples/jsm/exporters/GLTFExporter.js';
import { STLLoader } from 'three/examples/jsm/loaders/STLLoader';
import { ViewHelper } from 'three/examples/jsm/helpers/ViewHelper';

import { FloatingAnnotation } from '../annotation';
import { getCSSVariableColor, isLightTheme, throttle } from '../tools';
Expand Down Expand Up @@ -351,6 +352,22 @@ export class MainView extends React.Component<IProps, IStates> {

this._transformControls.enabled = false;
this._transformControls.visible = false;

// ViewHelper setup
this._viewHelper = new ViewHelper(this._camera, this._renderer.domElement);
this._viewHelper.center = this._controls.target;

const viewHelperDiv = document.createElement('div');
viewHelperDiv.id = 'viewHelper';
viewHelperDiv.style.position = 'absolute';
viewHelperDiv.style.right = '0px';
viewHelperDiv.style.bottom = '0px';
viewHelperDiv.style.height = '128px';
viewHelperDiv.style.width = '128px';

this.divRef.current.appendChild(viewHelperDiv);

viewHelperDiv.addEventListener('pointerup', (event) => this._viewHelper.handleClick(event));
}
};

Expand All @@ -377,6 +394,7 @@ export class MainView extends React.Component<IProps, IStates> {
this._renderer.setRenderTarget(null);
this._renderer.clearDepth();
this._renderer.render(this._scene, this._camera);
this._viewHelper.render(this._renderer);
};

resizeCanvasToDisplaySize = (): void => {
Expand Down Expand Up @@ -1411,6 +1429,7 @@ export class MainView extends React.Component<IProps, IStates> {
private _controls: OrbitControls; // Mouse controls
private _transformControls: TransformControls; // Mesh position/rotation controls
private _pointer3D: IPointer | null = null;
private _viewHelper: ViewHelper;
private _collaboratorPointers: IDict<IPointer>;
private _pointerGeometry: THREE.SphereGeometry;
private _contextMenu: ContextMenu;
Expand Down

0 comments on commit 89938b7

Please sign in to comment.