Преглед изворни кода

Fix update-version for windows, add camera options in viewer options.

master
Palash Bansal пре 2 година
родитељ
комит
85a1882288
No account linked to committer's email address
5 измењених фајлова са 27 додато и 10 уклоњено
  1. 1
    1
      .eslintrc.cjs
  2. 1
    1
      package.json
  3. 7
    0
      scripts/update-version.mjs
  4. 1
    0
      src/assetmanager/AssetManager.ts
  5. 17
    8
      src/viewer/ThreeViewer.ts

+ 1
- 1
.eslintrc.cjs Прегледај датотеку

'comma-dangle': ['error', 'always-multiline'], 'comma-dangle': ['error', 'always-multiline'],
'indent': ['error', 4], 'indent': ['error', 4],
'quotes': ['error', 'single'], 'quotes': ['error', 'single'],
'linebreak-style': ['error', 'unix'],
// 'linebreak-style': ['error', 'unix'],
'no-loss-of-precision': 'error', 'no-loss-of-precision': 'error',
}, },
'overrides': [ 'overrides': [

+ 1
- 1
package.json Прегледај датотеку

"docs": "npx typedoc && markdown-to-html", "docs": "npx typedoc && markdown-to-html",
"build-plugins": "node scripts/build-plugins.mjs", "build-plugins": "node scripts/build-plugins.mjs",
"prepare": "npm run build && npm run build-plugins && npm run build-examples", "prepare": "npm run build && npm run build-plugins && npm run build-examples",
"update-version": "echo \"export const VERSION = '$npm_package_version'\" > src/viewer/version.ts"
"update-version": "node scripts/update-version.mjs"
}, },
"clean-package": { "clean-package": {
"remove": [ "remove": [

+ 7
- 0
scripts/update-version.mjs Прегледај датотеку

// (echo export const VERSION = '$npm_package_version') > src/viewer/version.ts

// in nodejs

import {writeFileSync} from "node:fs"

writeFileSync("src/viewer/version.ts", `export const VERSION = '${process.env.npm_package_version}'\n`)

+ 1
- 0
src/assetmanager/AssetManager.ts Прегледај датотеку

// materials: IMaterial[] = [] // materials: IMaterial[] = []
// textures: ITexture[] = [] // textures: ITexture[] = []


// todo move this function to viewer
async loadImported<T extends ValOrArr<ImportResult|undefined> = ImportResult>(imported: T, {autoSetEnvironment = true, autoSetBackground = false, ...options}: AddAssetOptions = {}): Promise<T | never[]> { async loadImported<T extends ValOrArr<ImportResult|undefined> = ImportResult>(imported: T, {autoSetEnvironment = true, autoSetBackground = false, ...options}: AddAssetOptions = {}): Promise<T | never[]> {
const arr: (ImportResult|undefined)[] = Array.isArray(imported) ? imported : [imported] const arr: (ImportResult|undefined)[] = Array.isArray(imported) ? imported : [imported]
let ret: T = Array.isArray(imported) ? [] : undefined as any let ret: T = Array.isArray(imported) ? [] : undefined as any

+ 17
- 8
src/viewer/ThreeViewer.ts Прегледај датотеку

IObjectProcessor, IObjectProcessor,
ITexture, ITexture,
PerspectiveCamera2, PerspectiveCamera2,
RootScene,
RootScene, TCameraControlsMode,
} from '../core' } from '../core'
import {ViewerRenderManager} from './ViewerRenderManager' import {ViewerRenderManager} from './ViewerRenderManager'
import { import {
import {DropzonePlugin, DropzonePluginOptions} from '../plugins/interaction/DropzonePlugin' import {DropzonePlugin, DropzonePluginOptions} from '../plugins/interaction/DropzonePlugin'
import {uiConfig, uiFolderContainer, UiObjectConfig} from 'uiconfig.js' import {uiConfig, uiFolderContainer, UiObjectConfig} from 'uiconfig.js'
import {IRenderTarget} from '../rendering' import {IRenderTarget} from '../rendering'
import type {ProgressivePlugin} from '../plugins'
import {TonemapPlugin} from '../plugins' import {TonemapPlugin} from '../plugins'
import {VERSION} from './version' import {VERSION} from './version'


*/ */
tonemap?: boolean tonemap?: boolean


camera?: {
controlsMode?: TCameraControlsMode,
position?: Vector3,
target?: Vector3,

}

/** /**
* Options for the asset manager. * Options for the asset manager.
*/ */


// camera // camera


const camera = new PerspectiveCamera2('orbit', this._canvas)
const camera = new PerspectiveCamera2(options.camera?.controlsMode ?? 'orbit', this._canvas)
camera.name = 'Default Camera' camera.name = 'Default Camera'
camera.position.set(0, 0, 5)
options.camera?.position ? camera.position.copy(options.camera.position) : camera.position.set(0, 0, 5)
options.camera?.target ? camera.target.copy(options.camera.target) : camera.target.set(0, 0, 0)
camera.setDirty()
camera.userData.autoLookAtTarget = true // only for when controls are disabled / not available camera.userData.autoLookAtTarget = true // only for when controls are disabled / not available


// Update camera controls postFrame if allowed to interact // Update camera controls postFrame if allowed to interact
this.addEventListener('postFrame', () => { // todo: move inside RootScene. this.addEventListener('postFrame', () => { // todo: move inside RootScene.
const cam = this._scene.mainCamera const cam = this._scene.mainCamera
if (cam && cam.canUserInteract) { if (cam && cam.canUserInteract) {
// todo
// const d = this.getPluginByType<ProgressivePlugin>('Progressive')?.postFrameConvergedRecordingDelta()
// // if (d && d > 0) delta = d
// if (d !== undefined && d === 0) return // not converged yet.
// // if d < 0 or undefined: not recording, do nothing
const d = this.getPlugin<ProgressivePlugin>('Progressive')?.postFrameConvergedRecordingDelta()
// if (d && d > 0) delta = d
if (d !== undefined && d === 0) return // not converged yet.
// if d < 0 or undefined: not recording, do nothing


cam.controls?.update() cam.controls?.update()
} }

Loading…
Откажи
Сачувај