Viewer docs
参照用の表示ページ。原文はサイト内部に統合して配信しています(/viewer 配下へ .md を直接公開しない設計)。
================================ 3DSD-viewer.md・スE・スEiewer・スE・スE
0 逶ョ逧・・ス・ス驕ゥ逕ィ遽・・ス・ス
0.1 viewer 縺ョ蠖ケ蜑イ
3DSD-viewer・スE・ス莉・荳九」iewer・スE・ス・スE縲・ 3DSL 繝励Ο繧ク繧ァ繧ッ繝医↓縺翫¢繧・*讒矩繝・・スE繧ソ縺ョ髢イ隕ァ繝サ遒コ隱搾ソスE菴馴ィ・ 縺ォ迚ケ蛹悶@縺・ 蟆ら畑繝薙Η繝シ繝ッ繧「繝励Μ繧ア繝シ繧キ繝ァ繝ウ縺ァ縺ゅk縲・
viewer 縺ッ modeler 縺ォ繧医▲縺ヲ逕滂ソスE縺輔l縺・.3dss.json 繧定ェュ縺ソ蜿悶j縲∵ャ。繧呈署萓帙☆繧具シ・
- 荳画ャ。蜈・・ス・ス騾縺ョ蠢螳溘↑蜿ッ隕門喧
- 繝輔Ξ繝シ繝・スE・ス譎る俣螻、・スE・ス・スE蛻・・ス・ス
- 繝ャ繧、繝、・スE・スEines / points / aux・スE・ス・スE陦ィ遉コ蛻・・ス・ス
- 讒矩蜈ィ菴難ソスE菫ッ迸ー繝サ繧コ繝シ繝繝サ蝗櫁サ「
- name / description / appearance / meta 縺ョ遒コ隱搾シ郁。ィ遉コ縺ョ縺ソ・スE・スE
驥崎ヲ√↑蜑肴署
- viewer 縺ッ *讒矩繝・・スE繧ソ繧堤オカ蟇セ縺ォ螟画峩縺励↑縺・
- 螳鯉ソスE縺ェ read-only・スE・ス蜿ら・蟆ら畑・スE・ス繧「繝励Μ
- modeler 縺ィ逡ー縺ェ繧・*菫晏ュ假ソスE蜃コ蜉帶ゥ滂ソスE繧呈戟縺溘↑縺・ ・スE・スEI 迥カ諷具ソスE豌ク邯壼喧繧らヲ∵ュ「・スE・スE
UI 迥カ諷具シ磯∈謚橸ソスE繧ォ繝。繝ゥ繝サ陦ィ遉コ險ュ螳夲シ会ソスE session 蜀・・スE縺ソ譛牙柑縺ァ縲・ 讒矩繝・・スE繧ソ縺ォ譖ク縺肴綾縺輔l繧九%縺ィ縺ッ縺ェ縺・・ス・スE
0.2 common 莉墓ァ倥→縺ョ髢「菫・
viewer 縺ッ谺。縺ョ譁・・ス・ス縺ォ蠕薙≧・スE・スE
/schemas/3DSS.schema.json/specs/3DSD-common.md
common 縺ォ繧医k隕冗ッ・・ス・ス蠢螳溘↓隗」驥医@縺ヲ陦ィ遉コ縺吶k・スE・スE
- 蠎ァ讓咏ウサ・スE・スE+ up / freeXY・スE・スE
- lines / points / aux 縺ョ諢丞袖
- frames 縺ョ謇ア縺・・ス・ス陦ィ遉コ繝輔ぅ繝ォ繧ソ・スE・スE
- 繧ォ繝。繝ゥ隕冗ッ・・ス・ス謚募スア繝サZ+ up繝サ蜴溽せ・スE・スE
- 蠎ァ讓吝、画鋤繝サ蜊倅ス咲ウサ
viewer 縺ッ modeler 縺ィ蟇セ遘ー逧・・ス・ス縺ゅj縲・ *逕滂ソスE・スE・スEodeler・スE・スEvs 髢イ隕ァ・スE・スEiewer・スE・スE 縺ョ蠖ケ蜑イ蛻・・ス・ス縺鯉ソスE遒コ縺ァ縺ゅk縲・
0.3 驕ゥ逕ィ遽・・ス・ス
譛ャ莉墓ァ假ソスE /code/viewer/ 縺ョ蜈ィ繝「繧ク繝・繝シ繝ォ縺ォ驕ゥ逕ィ縺吶k・スE・スE
- Core・スE・ス隱ュ霎シ繝サ迥カ諷狗ョ。逅・・ス・スE
- Renderer・スE・ス荳画ャ。蜈・・ス・ス逕サ・スE・スE
- UI・スE・スEiewer 蟆ら畑 UI・スE・スE
- Validator・スE・スEtrict validation・スE・スE
- Utils・スE・ス蠎ァ讓吝、画鋤繝サ濶イ蜃ヲ逅・・ス・スE
- HUD・スE・スExis / origin 縺ェ縺ゥ隕冶ヲ夊」懷勧・スE・スE
0.4 髱槫ッセ雎。
viewer 縺ッ髢イ隕ァ蟆ら畑繧「繝励Μ縺ァ縺ゅj縲∽サ・荳具ソスE莉墓ァ伜、厄シ・
- 讒矩繝・・スE繧ソ縺ョ邱ィ髮・
- 讒矩繝・・スE繧ソ縺ョ菫晏ュ・
- UI 迥カ諷具ソスE豌ク邯壼喧
- annotation / comment / report 縺ェ縺ゥ縺ョ邱ィ髮・・ス・ス讖滂ソスE
- modeler 縺ョ蜀・・ス・ス蜍穂ス・
- 繧ケ繧ュ繝シ繝橸ソスE螳夂セゥ繝サ螟画鋤
蜀・・ス・ス API 縺ァ繧・update / remove / patch 遲会ソスE隱槫ス呻ソスE菴ソ逕ィ遖∵ュ「縲・
0.5 險ュ險域婿驥晢シ磯夢隕ァ蟆ら畑繧「繝励Μ縺ィ縺励※・スE・スE
-
蜿ゑソスE蟆ら畑
讒矩繝・・スE繧ソ縺ッ immutable縲よ嶌縺肴鋤縺育ヲ∵ュ「縲・ -
蠢螳溯。ィ遉コ
modeler 蜃コ蜉幢ソスE蛟、繧呈隼螟峨○縺壹∝庄閭ス縺ェ遽・・ス・ス縺ァ蠢螳溘↓陦ィ遉コ縺吶k縲・ 謠冗判荳奇ソスE陬懷勧縺ッ縲∵ァ矩繝・・スE繧ソ繧剃ク榊、会ソスE縺セ縺セ謇ア縺・・ス・スE・ス・ス縺ォ髯仙ョ壹☆繧九・ -
*鬮倬溷ソ懃ュ・
frame / camera / visibility 縺ョ UI 謫堺ス懊r蜊ウ譎ょ渚譏縲・ -
UI 迥カ諷九→讒矩繝・・スE繧ソ縺ョ螳鯉ソスE蛻・・ス・ス
UI 迥カ諷具シ磯∈謚橸ソスE繧ォ繝。繝ゥ繝サvisibility・スE・ス・スE uiState 縺ョ縺ソ縺ァ菫晄戟縺励・ JSON 縺ォ豺キ蜈・縺輔○縺ェ縺・・ス・スE -
*螟夜Κ騾壻ソ。縺ョ謇ア縺・・ス・ス繧ケ繧ュ繝シ繝槫叙蠕礼ヲ∵ュ「・スE・スE
- viewer runtime 縺ッ *繧ケ繧ュ繝シ繝槫叙蠕・ 繧・・ス・ス驛ィ繝ェ繧ス繝シ繧ケ縺ョ閾ェ蜍募叙蠕励r陦後o縺ェ縺・・ス・スEthree.js` 繧・schema 縺ッ vendor/local 繧貞盾辣ァ・スE・ス縲・
.3dss.json縺ョ蜿門セ暦シ医Ο繝シ繧ォ繝ォ/繝ェ繝「繝シ繝・蝓九a霎シ縺ソ・スE・ス・スE *Host・スE・スEstro/HTML 蛛エ・スE・ス雋ャ蜍・ 縺ィ縺吶k縲・- runtime 縺・URL 繧貞女縺代※
fetch縺吶k陬懷勧 API・スE・ス萓・bootstrapViewerFromUrl・スE・ス繧呈戟縺、蝣エ蜷医〒繧ゅ∬。後≧縺ョ縺ッ 譁・・ス・ス譛ャ菴難ソスE蜿門セ暦ソスE縺ソ 縺ィ縺励√せ繧ュ繝シ繝槫叙蠕暦ソスE霑ス霍。騾壻ソ。繝サ霑ス蜉繝輔ぉ繝・・ス・ス縺ッ遖∵ュ「縺吶k縲・
0.6 繧「繝シ繧ュ繝・・ス・ス繝√Ε・スE・ス繝ャ繧、繝、縺ィ雋ャ蜍呻シ・
viewer 縺ッ谺。縺ョ繝ャ繧、繝、縺ォ蛻・・ス・ス縺吶k・スE・スE
- entry: Host 縺九i蜿ゥ縺九l繧玖オキ蜍募哨・スE・ス萓・
bootstrapViewer・スE・スE - hub: UI 縺ィ core/renderer 縺ョ髮・・ス・ス・医Ο繧ク繝・・ス・ス遖∵ュ「・スE・スE
- core: canonical state 縺ィ繝薙ず繝阪せ繝ュ繧ク繝・・ス・ス・スE・スEDSS 縺ッ read-only・スE・スE
- renderer: three.js 謠冗判蟆ら畑・スE・ス迥カ諷具ソスE謠冗判繧ュ繝」繝・・ス・ス繝・縺ョ縺ソ・スE・スE
- ui: DOM 蜈・蜉・竊・hub API 縺ク縺ョ讖区ク。縺暦シ・ev harness / Host 蛛エ・スE・スE
萓晏ュ俶婿蜷托ソスE隕冗ッ・・ス・ス遖∵ュ「繧貞性繧・スE・スE
- 險ア蜿ッ・スE・ス豁」譁ケ蜷托シ・
- ui 竊・entry / hub
- entry 竊・hub / core / renderer
- hub 竊・core / renderer
- 遖∵ュ「・スE・ス邨カ蟇セ・スE・スE
- core 竊・hub / renderer
- renderer 竊・core / hub
- hub 竊・ui
- ui 竊・renderer・スE・スEick 繧ょ性繧・蠢・・ス・ス hub 邨檎罰・スE・スE
- entry 竊・ui・スE・スEI 縺ッ Host 蛛エ雋ャ蜍呻シ・
0.7 萓晏ュ俶ウィ蜈・・スE・スEI・スE・ス縺ィ composition root
- *composition root 縺ッ entry・スE・スEootstrap・スE・スE 縺ィ縺吶k縲・
- core 蜀・・スE繝「繧ク繝・繝シ繝ォ蜷悟」ォ縺ッ **import 縺ァ邨撰ソスE縺ェ縺・*縲ょソ・・ス・ス縺ェ萓晏ュ假ソスE
createXxx({ ...deps })縺ァ **蠑墓焚豕ィ蜈・**縺吶k縲・ - hub 縺ッ
{ core, renderer }繧・DI 縺ァ蜿励¢蜿悶j縲~core/繧・renderer/` 繧・import 縺励↑縺・・ス・スE - helper 縺ッ 蜷御ク繝輔ぃ繧、繝ォ蜀・・ス・ス髢峨§繧狗エ秘未謨ー縺ョ縺ソ險ア蜿ッ・スE・ス蛻・繝「繧ク繝・繝シ繝ォ蛹悶@縺ヲ import 縺吶k縺ョ縺ッ遖∵ュ「・スE・ス縲・
0.8 繝ゥ繧、繝輔し繧、繧ッ繝ォ隕冗エ・・ス・スEtart/stop/dispose・スE・スE
hub.start()/stop()/dispose()縺ッ idempotent・スE・ス隍・・ス・ス蝗槫他繧薙〒繧ょョ会ソスE・スE・ス縺ィ縺吶k縲・stop()縺ッ RAF 蛛懈ュ「縺ョ縺ソ・スE・スEebGL 雉・・ス・ス・スE菫晄戟・スE・ス縲・dispose()縺ッ stop + renderer 雉・・ス・ス隗」謾セ縲ゆサ・蠕鯉ソスEstart/stop/resize縺ッ no-op縲・dispose()蠕鯉ソスEpickObjectAt()縺ッ蟶ク縺ォnull・スE・ス萓句、也ヲ∵ュ「・スE・ス縲・onXChanged邉サ縺ッ unsubscribe 繧定ソ斐☆・スE・ス遨阪∩荳翫£繝ェ繝シ繧ッ繧帝亟縺撰シ峨・
0.9 迥カ諷区園譛画ィゥ・スE・スEingle-writer 繧貞性繧・スE・スE
- 3DSS document 縺ッ immutable・スE・スEalidate 蠕後↓ deepFreeze 縺励∽サ・蠕梧嶌縺肴鋤縺育ヲ∵ュ「・スE・ス縲・
- canonical state 縺ッ **core 縺梧園譛・*縺吶k・スE・ス萓・
uiState・スE・ス縲・ - single-writer:
uiState.visibleSet縺ッ core.recomputeVisibleSet() 縺ョ縺ソ縺梧峩譁ー縺励※繧医>縲・uiState.runtime.isFramePlaying縺ッ core.frameController 縺ョ縺ソ縺梧峩譁ー縺励※繧医>縲・
- renderer 縺ッ three.js 繧ェ繝悶ず繧ァ繧ッ繝医→謠冗判繧ュ繝」繝・・ス・ス繝・縺ョ縺ソ繧呈園譛峨@縲…ore state 縺ッ蜿励¢蜿悶▲縺ヲ蜿肴丐縺吶k縺縺代・
1 繧キ繧ケ繝・・ス・ス蜈ィ菴捺ァ具ソスE・スE・ス・スE驛ィ繧「繝シ繧ュ繝・・ス・ス繝√Ε・スE・スE
viewer 縺ョ蜀・・ス・ス讒矩縺ッ縲∵ャ。縺ョ 5繝ャ繧、繝、 縺ィ **2遞ョ鬘橸ソスE繧ィ繝ウ繝医Μ繝昴う繝ウ繝・*縺九i讒具ソスE縺輔l繧九・
- entry 螻、
bootstrapViewer/bootstrapViewerFromUrl・スE・スEomposition root・スE・スE
- hub 螻、
viewerHub・スE・スEI 縺ク縺ョ蜈ャ髢・API 髮・・ス・スE・ス・ス繝ュ繧ク繝・・ス・ス遖∵ュ「・スE・スE
- core 螻、
- canonical state・スE・スEiState・スE・ス縺ィ蜷・・ス・ス controller / cameraEngine
- 3DSS document 縺ッ immutable・スE・スEead-only・スE・スE
- renderer 螻、
- three.js 謠冗判・スE・スEcene/camera/objects・スE・ス・・microFX・スE・ス謠冗判蟆ら畑繧ュ繝」繝・・ス・ス繝・・スE・スE
- *ui 螻、・スE・スEost / dev harness・スE・スE
- pointerInput / keyboardInput / gizmo / picker / timeline 遲・
- DOM 蜈・蜉・竊・
hub.core.*/hub.pickObjectAt縺ク縺ョ讖区ク。縺・
陬懷勧螻、・スE・スEore 蜀・・ス・ス繝ヲ繝シ繝・・ス・ス繝ェ繝・・ス・ス・スE・ス・・
- Validator・スE・スEJV strict validation・スE・スE
- structIndex / utils・スE・スEuid index / frameRange 遲会シ・
繧ィ繝ウ繝医Μ繝昴う繝ウ繝茨シ・
bootstrapViewer(canvasOrId, document3dss, options?)bootstrapViewerFromUrl(canvasOrId, url, options?)
縺ゥ縺。繧峨b viewerHub 繧定ソ斐@縲∝、夜Κ謫堺ス懶ソスE **hub.core.* 縺ィ hub.pickObjectAt・スE・ス縺翫h・スE hub.viewerSettings.*・スE・ス縺ォ髯仙ョ・*縺吶k縲・
1.1 繝「繧ク繝・繝シ繝ォ讒具ソスE
viewer 螳溯」・・スE縺翫♀繧医◎谺。縺ョ繝「繧ク繝・繝シ繝ォ鄒、縺ォ蛻・・ス・ス繧後k縲・
| 繝ャ繧、繝、 / 繝「繧ク繝・繝シ繝ォ | 莉」陦ィ繝輔ぃ繧、繝ォ萓・ | 蠖ケ蜑イ |
|---|---|---|
| Boot | runtime/bootstrapViewer.js | canvas 縺ィ 3DSS 繧貞女縺大叙繧・runtime 繧定オキ蜍輔@縲~viewerHub` 繧定ソ斐☆縲ゅΞ繝ウ繝繝シ繝ォ繝シ繝鈴幕蟋九d PointerInput / KeyboardInput 縺ョ謗・邯夲ソスE陦後o縺壹?ost / dev harness 蛛エ縺ョ雋ャ蜍吶→縺吶k |
| Hub | runtime/viewerHub.js | Core / Renderer 繧偵∪縺ィ繧√※螟夜Κ縺ォ蜈ャ髢九☆繧九ヵ繧。繧オ繝シ繝峨Ahub.core.*API 縺ィhub.start/stop` 繧呈據縺ュ繧・ |
| Core | runtime/core/*.js | 3DSS 讒矩 state・スE・スEmmutable・スE・ス縺ィ uiState・スE・スEiewer 蟆ら畑 state・スE・ス・スE邂。逅・・ス・ス蜷・ィョ Controller / CameraEngine 繧貞性繧・スE・スEointerInput / KeyboardInput 縺ッ UI 繝ャ繧、繝、 ui/* 縺ォ蛻・・ス・ス・スE・スE |
| Renderer | runtime/renderer/context.js + renderer/microFX/* | three.js 縺ォ繧医k謠冗判縲[icroFX縲《election 繝上う繝ゥ繧、繝・ |
| UI・スE・スEev harness・スE・スE | viewerDevHarness.js ui/gizmo.js ui/pointerInput.js ui/keyboardInput.js 縺ェ縺ゥ | dev 逕ィ HTML / HUD / 繝懊ち繝ウ鬘槭1ointerInput / KeyboardInput / gizmo / 繧ソ繧、繝繝ゥ繧、繝ウ縺ァ蜿励¢縺滂ソスE繧ヲ繧ケ / 繧ュ繝シ蜈・蜉帙r hub.core.* / hub.pickObjectAt 邨檎罰縺ァ runtime 縺ォ讖区ク。縺励☆繧・ |
| Validator | runtime/core/validator.js | /schemas/3DSS.schema.json 縺ォ蟇セ縺吶k strict full validation |
| Utils / Index | runtime/core/structIndex.js 縺ェ縺ゥ | uuid 繧、繝ウ繝・・ス・ス繧ッ繧ケ讒狗ッ峨’rame 遽・・ス・ス讀懶ソスE縺ェ縺ゥ縺ョ陬懷勧讖滂ソスE |
| HUD / 隕冶ヲ夊」懷勧 | renderer/microFX/* | axis / marker / bounds / glow / highlight 遲峨∵ァ矩縺ィ縺ッ辟。髢「菫ゅ↑ viewer 蟆ら畑謠冗判 |
PointerInput / KeyboardInput 縺ッ ui/pointerInput.js / ui/keyboardInput.js 縺ォ鄂ョ縺阪ゞI 繝ャ繧、繝、・スE・スEost / dev harness・スE・ス・スE荳驛ィ縺ィ縺ソ縺ェ縺吶・
雋ャ蜍吶→縺励※縺ッ縲鯉ソスE蜉帙Ξ繧、繝、縲搾ソスE荳驛ィ縺ァ縺ゅj縲・*Host / dev harness 縺九i new PointerInput(canvas, hub) / new KeyboardInput(window, hub) 縺ァ逕滂ソスE繝サ謗・邯壹☆繧・*縲・
runtime/bootstrapViewer.js 繧・runtime/core/* 縺九i縺ッ import / new 縺励※縺ッ縺ェ繧峨↑縺・・ス・スE
窶サ 螳溘ヵ繧。繧、繝ォ讒具ソスE縺ッ viewer/runtime/*繝サviewer/ui/* 縺ョ繧ケ繧ア繝ォ繝医Φ縺ォ貅匁侠縺吶k縲・
窶サ three.js / AJV 縺ィ縺・・ス・ス縺溷、夜Κ繝ゥ繧、繝悶Λ繝ェ縺ッ runtime 縺九i縺ョ縺ソ蛻ゥ逕ィ縺励ゞI 縺九i逶エ謗・隗ヲ繧峨↑縺・・ス・スE
1.1.3 蟄伜惠縺励↑縺・・ス・ス繧ク繝・繝シ繝ォ・スE・ス・スE遒コ縺ォ遖∵ュ「・スE・スE
viewer 縺ォ縺ッ谺。縺ョ繝「繧ク繝・繝シ繝ォ縺ッ蟄伜惠縺励↑縺・・ス・ス霑ス蜉繧らヲ∵ュ「・スE・ス・・
- Exporter・スE・ス讒矩繝・・スE繧ソ縺ョ菫晏ュ假ソスE譖ク縺搾ソスE縺暦シ・
- Editor・スE・ス讒矩邱ィ髮・・ス・スE
- Annotation / Report・スE・ス豕ィ驥茨ソスE繝ャ繝晢ソスE繝茨シ・
- Snapshot / Export・スE・ス繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス逕滂ソスE遲峨」iewer 迢ャ閾ェ蜃コ蜉幢シ・
1.2 Core・スE・スEead-only state・スE・スE
Core 縺ッ縲梧ァ矩 state縲阪→縲袈I state (uiState)縲搾ソスE 2 邉サ蛻励□縺代r謇ア縺・・ス・スE
-
*讒矩 state・スE・スEtruct・スE・スE
- strict validation 貂医∩ .3dss.json 繧偵◎縺ョ縺セ縺セ菫晄戟縺吶k縲・
- 繝医ャ繝励Ξ繝吶Ν讒矩・スE・スE
lines[]points[]aux[]document_meta
- deep-freeze 縺輔l縺・read-only 繧ェ繝悶ず繧ァ繧ッ繝医→縺励※謇ア縺・・ス・スE 隕∫エ縺ョ add / update / remove / 蠎ァ讓呵」懈ュ」縺ェ縺ゥ縺ッ荳蛻・・ス・ス繧上↑縺・・ス・スE
-
*UI state・スE・スEiState・スE・スE
- viewer 縺後後←縺・・ス・ス縺帙※縺・・ス・ス縺九搾ソスE迥カ諷九□縺代r謖√▽縲・
- 萓具シ・
selection・スE・ス驕ク謚樔クュ uuid 縺ィ kind・スE・スEframe.current/frame.rangecameraState・スE・ス菴咲スョ繝サ蜷代″繝サFOV 遲会シ・filters・スE・スEines/points/aux 縺ョ ON/OFF・スE・スEruntime・スE・スErame 蜀咲函荳ュ縺九・ソスE蜍輔き繝。繝ゥ荳ュ縺・遲会シ・mode・スE・スEacro / micro・スE・スE 窶サ meso 縺ッ蟆・・ス・ス諡。蠑オ縺ョ莠育エ・・ス・ス縺ィ縺励∵悽莉墓ァ假シ育樟陦悟ョ溯」・・ス・スE・ス・ス・スE・ス縺ァ縺ッ謇ア繧上↑縺・・ス・スEmicroState・スE・スEicroFX 縺ョ蜈・蜉幢シ・viewerSettings・スE・スEineWidth 繧・microFX 險ュ螳壹↑縺ゥ・スE・スEvisibleSet・スE・ス迴セ蝨ィ謠冗判蟇セ雎。縺ィ縺ェ縺」縺ヲ縺・・ス・ス uuid 髮・・ス・ス・スE・スE
讒矩 state 縺ィ uiState 縺ョ隧ウ邏ー縺ッ隨ャ 2 遶繝サ隨ャ 5 遶縺ォ縺ヲ螳夂セゥ縺吶k縲・ 譛ャ遶縺ァ縺ッ縲・*struct 縺ッ荳榊、会シ瞬iState 縺縺代′螟牙喧縺吶k**縲阪→縺・・ス・ス髢「菫ゅ□縺代r蝗コ螳壹☆繧九・
1.3 蜀・・ス・ス萓晏ュ倬未菫・
萓晏ュ俶婿蜷托ソスE蟶ク縺ォ縲御ク贋ス阪Ξ繧、繝、 竊・荳倶ス阪Ξ繧、繝、縲搾ソスE荳譁ケ蜷代→縺吶k縲・
- UI / dev harness 繝ャ繧、繝、・スE・スEviewer_dev.html
/viewerDevHarness.js` / gizmo / timeline / HUD DOM・スE・スE- 竊・
viewerHub・スE・スEhub.core.*/hub.pickObjectAt`・スE・スE
- 竊・
- runtime Boot / Core・スE・スEiState / 蜷・・ス・ス Controller / CameraEngine / Visibility / Selection / Mode / Micro ・スE・スE
- 竊・struct・スE・スEmmutable 3DSS・スE・スE
- 竊・Renderer・スE・スEendererContext + microFX・スE・スE
- three.js / WebGL
PointerInput / KeyboardInput 縺ッ縲鯉ソスE蜉帙う繝吶Φ繝磯寔邏・・ス・ス繧、繝、縲阪→縺励※縲・
window / canvas 縺ョ DOM 繧、繝吶Φ繝医r 1 邂・・ス・ス縺ァ蜿励¢蜿悶j縲・
蠢・・ス・ス hub.core.* 縺縺代r蜿ゥ縺擾シ・ameraEngine 繧・three.js 繧堤峩謗・隗ヲ繧峨↑縺・・ス・ス縲・
Validator 縺ッ縲罫untime 襍キ蜍募燕縺ョ隱ュ縺ソ霎シ縺ソ繝輔ぉ繝シ繧コ縲阪↓縺縺第諺蜈・縺輔l繧具シ・
- JSON 繝ュ繝シ繝・竊・Validator・スE・スEtrict full validation・スE・ス・スE OK 縺ョ縺ィ縺搾ソスE縺ソ Core 縺ォ貂。縺・
HUD / microFX 縺ッ Renderer 縺ョ荳驛ィ縺ィ縺励※謇ア縺・・ス・スE 讒矩 state 縺ォ縺ッ荳蛻・・ス・ス蟄倥&縺帙↑縺・・ス・ス蠎ァ讓吝盾辣ァ縺ッ縺励※繧ゅ∵ァ矩縺ョ螟画峩縺ッ縺励↑縺・・ス・ス縲・
1.4 蜷・・ス・ス繧ク繝・繝シ繝ォ縺ョ雋ャ蜍・
1.4.1 Boot・スE・スEootstrapViewer.js・スE・スE
-
bootstrapViewer(canvasOrId, document3dss, options?)-
蠖ケ蜑イ・スE・スE
- canvas 隗」豎コ・スE・スEOM 隕∫エ or id 譁・・ス・ス・スE・スE・スE
- **validate3DSS 繧貞クク縺ォ螳溯。・*・スE・スEG縺ェ繧・throw縲Iub 縺ッ逕滂ソスE縺励↑縺・・ス・スE
options.strictValidate === true縺セ縺滂ソスEoptions.validateRefIntegrity === true縺ョ蝣エ蜷茨ソスE縺ソ validateRefIntegrity 繧貞ョ溯。鯉シ・G縺ェ繧・throw・スE・スE- validate 蠕後↓ *deep-freeze・スE・スEmmutable蛹厄シ・ 縺吶k
- structIndex・スE・スEuid 繧、繝ウ繝・・ス・ス繧ッ繧ケ / frame 遽・・ス・ス・スE・ス・スE讒狗ッ・
- uiState 縺ョ蛻晄悄蛹・
- controller 鄒、 / cameraEngine / cameraController / viewerSettingsController 縺ョ蛻晄悄蛹厄シ・ore 蜀・・ス・ス莠剃セ晏ュ假ソスE import 縺ァ邨撰ソスE縺・DI 縺ァ貂。縺呻シ・
- rendererContext 蛻晄悄蛹・竊・
syncDocument(document, indices)竊・getSceneMetrics() metrics縺九i蛻晄悄繧ォ繝。繝ゥ state 繧呈アコ螳壹@縲・*cameraEngine.setState(initialState)** 縺ァ遒コ螳壹☆繧具シ・etrics 縺・null 縺ョ蝣エ蜷茨ソスE fallback 隕冗ッ・・ス・スEcore.recomputeVisibleSet()繧・1 蝗槫他繧薙〒蛻晄悄 visibleSet 繧堤「コ螳壹☆繧・createViewerHub({ core, renderer })繧貞他縺ウ縲”ub 繧堤函謌舌@縺ヲ霑斐☆- **繝ャ繝ウ繝繝シ繝ォ繝シ繝鈴幕蟋具ソスE陦後o縺ェ縺・*・スE・スEhub.start()` 縺ッ Host / dev harness 縺ョ雋ャ蜍呻シ・
options.devBootLog === true縺ョ蝣エ蜷医∬オキ蜍輔Ο繧ー・スE・スEOOT / MODEL / CAMERA / LAYERS / FRAME・スE・ス繧・1 蝗槭★縺、蜃コ蜉帙☆繧・
-
options・スE・スE
devBootLog?: booleanlogger?: (line: string) => voidstrictValidate?: booleanvalidateRefIntegrity?: boolean
-
-
bootstrapViewerFromUrl(canvasOrId, url, options?)-
蠖ケ蜑イ・スE・スE
fetch(url)竊・res.ok===false縺ッ throw・スE・スETTP status 繧貞性繧√k・スE・スEres.json()縺励◆ document 繧・bootstrapViewer(canvasOrId, document, options2)縺ォ貂。縺・options2.strictValidate縺ョ default 縺ッ true・スE・ス譛ェ謖・・ス・ス譎ゅ・蜿ゑソスE謨エ蜷域ァ縺セ縺ァ蜷ォ繧√◆ strict 繧貞━蜈茨シ・
-
豕ィ諢擾シ・
- schema 蜿門セ励↑縺ゥ縺ョ霑ス蜉騾壻ソ。縺ッ遖∵ュ「・スE・スEalidator 縺ッ繝ュ繝シ繧ォ繝ォ蜷梧「ア schema 繧貞盾辣ァ縺励※蛻晄悄蛹悶☆繧具シ・
-
1.4.2 viewerHub・スE・スEuntime/viewerHub.js・スE・スE
-
runtime 蜀・・ス・ス縺ォ縺ゅk Core / Renderer / CameraEngine 遲峨r縺セ縺ィ繧√※邂。逅・・ス・ス縲・ 螟夜Κ縺ォ縺ッ *hub 1 繧ェ繝悶ず繧ァ繧ッ繝医□縺・ 繧定ヲ九○繧九・
-
莉」陦ィ逧・・ス・ス蜈ャ髢九う繝ウ繧ソ繝シ繝輔ぉ繝シ繧ケ・スE・スE
hub.start()/hub.stop()窶ヲ 繧「繝九Γ繝シ繧キ繝ァ繝ウ繝ォ繝シ繝鈴幕蟋具ソスE蛛懈ュ「hub.pickObjectAt(ndcX, ndcY)窶ヲ NDC 蠎ァ讓吶°繧画ァ矩隕∫エ縺ョ uuid 繧貞叙蠕・hub.core.frame.*hub.core.camera.*hub.core.selection.*hub.core.mode.*hub.core.micro.*hub.core.filters.*hub.core.runtime.*
-
UI / dev harness / host 繧「繝励Μ縺ッ **hub 邨檎罰縺ァ縺励° runtime 繧呈桃菴懊@縺ヲ縺ッ縺ェ繧峨↑縺・*縲・
-
hub.pickObjectAt縺ッ renderer 縺ョ繝偵ャ繝育オ先棡縺ァ縺ゅ▲縺ヲ繧ゅ・visibilityController.isVisible(uuid) === false縺ョ蝣エ蜷茨ソスE 蠢・・ス・ス null 繧定ソ斐☆・スE・ス荳榊庄隕冶ヲ∫エ縺ッ驕ク謚樔ク榊庄繧剃ソ晁ィシ・スE・ス縲・
1.4.3 Core
- strict validation 貂医∩ 3DSS 繧・struct 縺ィ縺励※菫晄戟・スE・スEeep-freeze・スE・スE
- uiState 縺ョ逕滂ソスE繝サ譖エ譁ー
- 蜷・・ス・ス Controller 縺ォ繧医k迥カ諷具ソスE遘サ・スE・スE
- frameController 窶ヲ frame 縺ョ蛻・・ス・ス譖ソ縺茨ソスE蜀咲函
- selectionController 窶ヲ selection 縺ョ蜚ッ荳縺ョ豁」隕上Ν繝シ繝・
- visibilityController 窶ヲ frame / filter 縺九i visibleSet 繧抵ソスE險育ョ・
- modeController 窶ヲ macro / meso / micro 繝「繝シ繝臥ョ。逅・
- microController 窶ヲ microFX 逕ィ縺ョ microState 繧定ィ育ョ・
- CameraEngine 窶ヲ cameraState 縺ョ蜚ッ荳縺ョ繧ス繝シ繧ケ繧ェ繝悶ヨ繧・繝ォ繝シ繧ケ
Core 縺ッ three.js 繧堤峩謗・縺ッ遏・繧峨★縲ヽenderer 縺ォ蟇セ縺励※縲檎憾諷九阪r貂。縺吶□縺代→縺吶k縲・
1.4.4 Renderer
- three.js / WebGL 縺ォ繧医k謠冗判蜃ヲ逅・・ス・ス諡・・ス・スE
- 荳サ縺ェ雋ャ蜍呻シ・
- struct + structIndex 繧偵b縺ィ縺ォ Object3D 鄒、繧呈ァ狗ッ・
applyFrame(visibleSet)縺ォ繧医k陦ィ遉コ繝サ髱櫁。ィ遉コ縺ョ蛻・・ス・ス譖ソ縺・updateCamera(cameraState)縺ォ繧医k繧ォ繝。繝ゥ蜿肴丐applyMicroFX(microState)縺ォ繧医k microFX 驕ゥ逕ィ / 隗」髯、applySelection(selectionState)縺ォ繧医k macro 繝「繝シ繝臥畑繝上う繝ゥ繧、繝・pickObjectAt(ndcX, ndcY)縺ォ繧医k繧ェ繝悶ず繧ァ繧ッ繝磯∈謚橸シ・aycasting・スE・スE
Renderer 縺ッ讒矩 state 繧貞、画峩縺帙★縲∵緒逕サ螻樊ァ・スE・ス・スE繝・・ス・ス繧「繝ォ繝サvisible繝サrenderOrder 遲会シ会ソスE縺ソ繧呈桃菴懊☆繧九・
1.4.5 UI / dev harness
-
髢狗匱逕ィ viewer・スE・スEiewer_dev.html・スE・ス繧・ー・・ス・ス縺ョ Astro 繝夲ソスE繧ク縺ェ縺ゥ縲・ HTML / DOM 繧オ繧、繝会ソスE螳溯」・・ス・ス諡・・ス・ス縲・
-
莉」陦ィ繝「繧ク繝・繝シ繝ォ・スE・スE
pointerInput窶ヲ canvas 荳奇ソスE繝槭え繧ケ謫堺ス・竊・hub.core.camera / hub.pickObjectAtkeyboardInput窶ヲ keydown 竊・hub.core.frame / hub.core.mode / hub.core.cameragizmo窶ヲ 逕サ髱「蜿ウ荳具ソスE繧ォ繝。繝ゥ繧ョ繧コ繝「 竊・hub.core.camera.*picker窶ヲ click 竊・hub.pickObjectAt 竊・hub.core.selection.*timeline窶ヲ frame 蜀咲函 UI 竊・hub.core.frame.*
UI 縺ッ viewerHub 縺ョ蜈ャ髢・API 縺ョ縺ソ繧貞茜逕ィ縺励,ore / Renderer 縺ォ逶エ謗・隗ヲ繧後※縺ッ縺ェ繧峨↑縺・・ス・スE
1.4.6 Validator
/schemas/3DSS.schema.json縺ッ 繝ュ繝シ繧ォ繝ォ蜷梧「ア繧貞盾辣ァ縺励√ロ繝・・ス・ス繝ッ繝シ繧ッ蜿門セ暦ソスE陦後o縺ェ縺・・ス・スEbootstrapViewer縺ッ validate3DSS 繧貞クク縺ォ螳溯。後☆繧九・- 蜿ゑソスE謨エ蜷域ァ・スE・スEuid ref 遲会シ会ソスE
strictValidate縺セ縺滂ソスEvalidateRefIntegrity謖・・ス・ス譎ゅ・縺ソ螳溯。後☆繧九・
1.4.7 Utils / Index / HUD
-
Utils / Index
structIndex縺ォ繧医k uuid 竊・kind / element 蜿ゑソスE- frame 遽・・ス・ス讀懶ソスE・スE・スEin / max・スE・ス縲∝コァ讓咏ウサ繝ヲ繝シ繝・・ス・ス繝ェ繝・・ス・ス
-
HUD / microFX
- axis / origin / bounds / glow / highlight 縺ェ縺ゥ縺ョ隕冶ヲ夊」懷勧
- 縺吶∋縺ヲ Renderer 蜀・・ス・ス縺ョ three.js 繧ェ繝悶ず繧ァ繧ッ繝医→縺励※螳溯」・
- 3DSS 讒矩縺ォ縺ッ荳蛻・・ス・ス縺肴綾縺輔↑縺・・ス・ス縲瑚ヲ九∴譁ケ縲榊ーら畑・スE・スE
1.5 I/O・スE・スEiewer・スE・ス讎りヲ・・ス・スE
- 蜈・蜉幢シ・
.3dss.json・スE・スEtrict full validation 貂医∩ 3DSS 讒矩繝・・スE繧ソ・スE・スE - 蜃コ蜉幢シ夂┌縺・
UI 迥カ諷具ソスE繧ォ繝。繝ゥ繝サvisibility 縺ェ縺ゥ縺ッ 繧サ繝・・ス・ス繝ァ繝ウ蜀・・スE uiState 縺ォ縺縺台ソ晄戟 縺励・ 繝輔ぃ繧、繝ォ菫晏ュ倥d螟夜Κ蜃コ蜉幢ソスE陦後o縺ェ縺・・ス・スE
隧ウ邏ー縺ェ I/O 繝昴Μ繧キ繝シ縺ッ隨ャ 6 遶縺ォ縺ヲ螳夂セゥ縺吶k縲・
1.6 遖∵ュ「莠矩・・ス・スEiewer 蜈ィ菴難シ・
viewer 縺ッ谺。縺ョ陦檎ぜ繧剃ク蛻・・ス・ス縺」縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
- 讒矩繝・・スE繧ソ縺ョ螟画峩・スE・スEdd / update / remove・スE・スE
- 讒矩繝・・スE繧ソ縺ョ菫晏ュ假シ・xporter・スE・スE
- 邱ィ髮・・ス・ス繝吶Φ繝茨シ・ndo / redo / duplicate 遲会シ会ソスE螳溯」・
- UI 迥カ諷具ソスE JSON 蜃コ蜉幢ソスE豌ク邯壼喧
- annotation / comment / report 遲会ソスE逕滂ソスE
- viewerSettings 繧・JSON 蛹悶@縺ヲ菫晏ュ假シ域ーク邯壼喧・スE・ス縺吶k縺薙→
- extension 縺ョ諢丞袖隗」驥茨ソスE逕滂ソスE繝サ陬懷ョ鯉シ域ァ矩螟画峩縺ォ逶ク蠖難シ・
- normalize / 謗ィ貂ャ / 陬懷ョ・/ prune / reorder 遲会ソスE逕滂ソスE蜃ヲ逅・
- 譛ェ譚・繧ケ繧ュ繝シ繝樣・・ス・ス縺ョ謗ィ貂ャ繝サ隗」驥茨シ・emantic inference・スE・スE
viewer 縺ッ 螳鯉ソスE read-only 縺ョ陦ィ遉コ陬・・ス・ス 縺ァ縺ゅj縲・ viewer 迢ャ閾ェ諠・・ス・ス縺ッ uiState 蜀・・ス・ス縺ォ縺ョ縺ソ菫晄戟縺励※繧医>・スE・ス讒矩繝・・スE繧ソ縺ク縺ョ豺キ蜈・遖∵ュ「・スE・ス縲・
1.7 襍キ蜍輔ヵ繝ュ繝シ・スE・スEiewer_dev.html 竊・viewerDevHarness.js 竊・bootstrapViewer 竊・viewerHub・スE・スE
1.7.1 繧ィ繝ウ繝医Μ邨瑚キッ縺ョ蝗コ螳・
viewerDevHarness.js 縺・bootstrapViewerFromUrl 繧貞他縺ウ縲∝セ励i繧後◆ viewerHub 縺ォ蟇セ縺励※
hub.start() 繧貞他縺ウ蜃コ縺励√&繧峨↓ PointerInput / KeyboardInput 繧呈ァ狗ッ峨@縺ヲ canvas / window 縺ォ繧、繝吶Φ繝医r謗・邯壹☆繧九・
-
viewer_dev.html- dev 逕ィ DOM 鬪ィ譬シ・スE・スED canvas繝サ繝ュ繧ー鬆伜沺繝サ繝懊ち繝ウ遲会シ峨r螳夂セゥ縺吶k縲・
-
viewerDevHarness.jswindow.load・スE・ス縺セ縺滂ソスEDOMContentLoaded・スE・ス蠕後↓ UI 隕∫エ繧抵ソスE縺ィ縺ィ縺翫j蜿門セ励@縲・bootstrapViewerFromUrl(canvasId, jsonUrl, options)繧・1 蠎ヲ縺縺大他縺ウ蜃コ縺吶・- 蠕励i繧後◆
viewerHub繧偵Ο繝シ繧ォ繝ォ螟画焚縺翫h縺ウ繧ー繝ュ繝シ繝舌Ν・スE・スEwindow.hub` 遲会シ峨↓ expose 縺励※縲・ dev 逕ィ UI / 繧ウ繝ウ繧ス繝シ繝ォ縺九i險コ譁ュ縺ァ縺阪k繧医≧縺ォ縺吶k縲・ hub.start()繧貞他縺ウ蜃コ縺励※ render loop・スE・スErequestAnimationFrame`・スE・ス繧帝幕蟋九☆繧九・new PointerInput(canvas, hub)/new KeyboardInput(window, hub)繧堤函謌舌@縲・attach()・スE・ス縺ゅl・スE・スE・ス繧貞他繧薙〒 canvas / window 縺ォ pointer / key 繧、繝吶Φ繝医r謗・邯壹☆繧九・- PointerInput / KeyboardInput / gizmo / 繧ソ繧、繝繝ゥ繧、繝ウ縺ェ縺ゥ縺ァ蜿励¢縺滂ソスE蜉帙r
hub.core.*/hub.pickObjectAt縺ォ繝槭ャ繝斐Φ繧ー縺吶k縲・
-
runtime/bootstrapViewer.js- 3DSS 縺ョ strict validation・スE・スEbootstrapViewerFromUrl` 邨檎罰縺ョ蝣エ蜷茨シ峨・
- struct 縺ョ deep-freeze /
structIndex讒狗ッ峨・ rendererContext/uiState/CameraEngine/ 蜷・・ス・ス Controller 縺ョ蛻晄悄蛹悶・createViewerHub({ core, renderer })繧貞他縺ウ蜃コ縺励~hub繧定ソ斐☆縲・ ・スE・ス縺薙%縺ァ縺ッhub.start()` 繧貞他縺ー縺壹√Ξ繝ウ繝繝シ繝ォ繝シ繝怜宛蠕。縺ッ Host / dev harness 蛛エ縺ョ雋ャ蜍吶→縺吶k・スE・スE
-
viewerHubhub.core.*縺ィhub.pickObjectAt繧帝壹§縺ヲ縲・ frame / camera / selection / mode / micro / filters / runtime API 繧抵ソスE髢九☆繧九・hub.start()/hub.stop()縺ァ render loop・スE・スErequestAnimationFrame`・スE・ス繧帝幕蟋具ソスE蛛懈ュ「縺吶k縲・
縺難ソスE邨瑚キッ莉・螟悶°繧・Core / Renderer / CameraEngine 繧・new / 逶エ謗・蜻シ縺ウ蜃コ縺励☆繧九%縺ィ縺ッ遖∵ュ「縺ィ縺吶k縲・
PointerInput / KeyboardInput 縺ッ UI 繝ャ繧、繝、・スE・スEiewerDevHarness / 譛ャ逡ェ Host・スE・ス縺九i・スE縺ソ new 縺励※繧医¥縲・
runtime 螻、・スE・スEruntime/*・スE・ス縺九aEimport / new` 縺励※縺ッ縺ェ繧峨↑縺・・ス・スE
蠢・・ス・ス bootstrapViewer / bootstrapViewerFromUrl 繧・runtime 縺ョ蜚ッ荳縺ョ蜈・蜿」縺ィ縺励・
霑斐▲縺ヲ縺阪◆ hub 縺ォ蟇セ縺励※ Host 蛛エ縺・hub.start() 繧貞他縺ウ蜃コ縺吶%縺ィ縺ァ繝ャ繝ウ繝繝シ繝ォ繝シ繝励r髢句ァ九☆繧九・
1.7.2 viewerDevHarness.js 縺ョ雋ャ蜍・
viewerDevHarness.js 縺ッ縲慧ev 逕ィ繝帙せ繝医阪〒縺ゅj縲〉untime 縺ィ縺ッ譏守「コ縺ォ蛻・・ス・ス縺吶k縲・
-
蠖ケ蜑イ・スE・スE
- dev 逕ィ HTML・スE・スEviewer_dev.html`・スE・ス縺ォ驟咲スョ縺輔l縺溷推遞ョ DOM・スE・スErame 繧ケ繝ゥ繧、繝繝サfilter 繝懊ち繝ウ繝サHUD繝サgizmo 遲会シ峨r蜿門セ励☆繧九・
bootstrapViewerFromUrl(canvasId, jsonUrl, options)繧・1 蝗槭□縺大他縺ウ蜃コ縺励・ 蠕励i繧後◆viewerHub繧偵Ο繝シ繧ォ繝ォ螟画焚縺翫h縺ウwindow.hub縺ォ菫晄戟縺吶k縲・new PointerInput(canvas, hub)/new KeyboardInput(window, hub)繧堤函謌舌@縲・ canvas / window 縺ォ pointer / key 繧、繝吶Φ繝医r謗・邯壹☆繧九・hub.core.frame.*/hub.core.filters.*/hub.core.mode.*/hub.core.selection.*/
hub.core.camera.*縺ェ縺ゥ繧・UI 繧、繝吶Φ繝茨シ茨ソスE繧ソ繝ウ / 繧ケ繝ゥ繧、繝 / gizmo 遲会シ峨↓謗・邯壹☆繧九・- dev 逕ィ HUD / 繝。繧ソ繝代ロ繝ォ / 繝ュ繧ー陦ィ遉コ・スE・スEOOT / MODEL / CAMERA / LAYERS / FRAME・スE・ス繧貞ョ溯」・・ス・ス繧九・
hub.start()/hub.stop()繧貞他縺ウ蜃コ縺励‥ev viewer 縺ョ繝ゥ繧、繝輔し繧、繧ッ繝ォ・スE・ス襍キ蜍・/ 蜀崎オキ蜍・/ 蛛懈ュ「・スE・ス繧堤ョ。逅・・ス・ス繧九・- dev viewer・スE・スEiewer_dev.html・スE・ス・スE縲・ fetch 螟ア謨暦ソスEJSON 繝托ソスE繧ケ繧ィ繝ゥ繝シ繝サstrict validation NG 縺ョ 縺・・ス・ス繧鯉ソスE蝣エ蜷医b struct 繧剃ク蛻・・ス・ス謖√○縺・hub 繧堤函謌舌@縺ェ縺・・ス・スE 蜿ウ繝壹う繝ウ縺ォ縺ッ繧ィ繝ゥ繝シ遞ョ蛻・・スE・スEETWORK_ERROR / JSON_ERROR / VALIDATION_ERROR・スE・スE 縺ィ繝。繝・・ス・ス繝シ繧ク繧定。ィ遉コ縺励~(no struct loaded)` 縺ィ譏守、コ縺吶k縲・
-
蛻カ邏・・ス・スE
runtime/core/*/runtime/renderer/*繧堤峩謗・ import 縺励↑縺・ ・スE・スEuntime 縺ク縺ョ蜈・蜿」縺ッruntime/bootstrapViewer.js縺ョbootstrapViewer*縺ョ縺ソ縺ィ縺吶k・スE・ス縲・- three.js / AJV / CameraEngine 繧堤峩謗・隗ヲ繧峨↑縺・・ス・スE
- 3DSS 讒矩・スE・スEcore.data
/structIndex`・スE・ス繧貞、画峩縺励↑縺・・ス・スEiState 縺ョ蜿ゑソスE縺ィ陦ィ遉コ縺縺題。後≧・スE・ス縲・ - PointerInput / KeyboardInput 縺ョ繝ュ繧ク繝・・ス・ス繧剃ク頑嶌縺阪○縺壹・ソスE蜉・竊・
hub.core.*/hub.pickObjectAt縺ョ豬√l繧剃ソ昴▽縲・
讎ら払繝輔Ο繝シ縺ッ谺。縺ョ騾壹j・スE・スE
viewer_dev.html ・スE・ス髢狗匱逕ィ DOM 鬪ィ譬シ・スE・スE
竊・
viewerDevHarness.js ・スE・スEev 逕ィ繝擾ソスE繝阪せ・スE・スbootstrapViewerFromUrl / hub.start / PointerInput / KeyboardInput・スE・スE
竊・
bootstrapViewerFromUrl(canvas, modelPath, options)
竊・
viewerHub・スE・スEub・スE・スE
竊・
hub.start() ・スE・ス繝ャ繝ウ繝繝シ繝ォ繝シ繝鈴幕蟋具シ・
1.8 dev viewer 縺ィ譛ャ逡ェ viewer 縺ョ髢「菫・
viewer runtime 閾ェ菴難ソスE繝帙せ繝磯撼萓晏ュ假ソスE蜈ア騾壹さ繝ウ繝晢ソスE繝阪Φ繝医〒縺ゅj縲・ dev viewer 縺ッ縺晢ソスE荳螳溯」・・ス・ス縺ォ驕弱℃縺ェ縺・・ス・ス縺ィ繧剃サ墓ァ倥→縺励※譏守、コ縺吶k縲・
- 蜈ア譛峨☆繧九b縺ョ・スE・スE
- runtime/bootstrapViewer.js
- runtime/viewerHub.js
- runtime/core/*
- runtime/renderer/*
- dev viewer 蝗コ譛会ソスE繧ゑソスE・スE・スE
- viewer_dev.html・スE・スE 繧ォ繝ゥ繝繝ャ繧、繧「繧ヲ繝医√Γ繧ソ繝代ロ繝ォ縲?UD 遲会シ・
- viewerDevHarness.js
- dev 逕ィ HUD / gizmo / 蜷・・ス・ス繝懊ち繝ウ鬘橸シ・i/gizmo.js 縺ェ縺ゥ・スE・スE
1.8.1 蜈ア騾壹お繝ウ繝医Μ繝昴う繝ウ繝・
縺吶∋縺ヲ縺ョ繝帙せ繝茨ソスE縲∵ャ。縺ョ 蜈ア騾壹お繝ウ繝医Μ API 縺九i viewer runtime 繧定オキ蜍輔☆繧九・
- bootstrapViewer(canvasOrId, threeDSS, options?) 竊・hub
- strict validation 貂医∩縺ョ 3DSS 繧ェ繝悶ず繧ァ繧ッ繝医r蜿励¢蜿悶j縲」iewerHub 繧呈ァ狗ッ峨@縺ヲ霑斐☆縲・
- bootstrapViewerFromUrl(canvasOrId, url, options?) 竊・Promise
- url 縺九i .3dss.json 繧・fetch 縺励《trict validation 繧貞ョ溯。後@縺溘≧縺医〒 bootstrapViewer 繧貞他縺ウ蜃コ縺吶Λ繝・・ス・ス繝シ縲・
dev viewer 繧よ悽逡ェ viewer 繧ゅ√%繧御サ・螟厄ソスE邨瑚キッ縺ァ runtime 繧定オキ蜍輔@縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
1.8.2 dev viewer・スE・ス髢狗匱逕ィ繝擾ソスE繝阪せ・スE・ス・スE襍キ蜍輔ヵ繝ュ繝シ
dev viewer 縺ョ襍キ蜍墓凾縲」iewerDevHarness.js 縺ッ讎ゑソスE谺。縺ョ繧医≧縺ォ蜍輔¥・スE・スE
- window.addEventListener(‘load’, boot) 縺ァ 1 蝗槭□縺・boot() 繧定オキ蜍輔☆繧九・
- boot() 蜀・・ス・ス
- 繝。繧ソ繝代ロ繝ォ / HUD / frame 繧ケ繝ゥ繧、繝 / filter 繝懊ち繝ウ遲会ソスE DOM 繧貞叙蠕励☆繧九・
- const canvasId = “viewer-canvas”;
- const jsonUrl = ”../3dss/scenes/default/default.3dss.json”;・スE・スEaseline 遒コ隱肴凾・スE・スE
- bootstrapViewerFromUrl(canvasId, jsonUrl, { devBootLog:true, devLabel:“viewer_dev”, modelUrl:jsonUrl, logger:devLogger }) 繧貞他縺カ縲・
- devLogger(line) 縺ッ
- console.log(line) + 繝。繧ソ繝代ロ繝ォ縺ク縺ョ霑ス險假シ・ppendModelLog(line)・スE・ス繧定。後≧縲・
縺難ソスE繧医≧縺ォ縲‥ev viewer 縺ッ縲後Ο繧ー繝サHUD繝サ繧ウ繝ウ繝医Ο繝シ繝ォ鬘槭′霑ス蜉縺輔l縺滂ソスE繧ケ繝医阪〒縺ゅj縲・ runtime 閾ェ菴薙↓縺ッ荳蛻・・ス・ス繧抵ソスE繧後↑縺・・ス・スE
1.8.3 譛ャ逡ェ viewer・スE・スEstro / 蝓九a霎シ縺ソ・スE・ス・スE襍キ蜍輔ヵ繝ュ繝シ
譛ャ逡ェ viewer・スE・スEstro 繧オ繧、繝医d莉厄ソスE繧ケ繝医い繝励Μ・スE・ス繧ゅ・ 蝓コ譛ャ逧・・ス・ス縺ッ dev viewer 縺ィ蜷後§繧ィ繝ウ繝医Μ API 繧堤畑縺・・ス・ス縲・
Host・スE・スEstro / React / plain HTML 遲会シ・ 竊・ bootstrapViewerFromUrl(canvasRef, modelUrl, options) 竊・ viewerHub・スE・スEub・スE・スE 竊・ host 蛛エ縺九i hub.core.* 繧貞茜逕ィ縺励※ UI 縺ィ騾」謳コ 竊・ hub.start() ・スE・ス繝ャ繝ウ繝繝シ繝ォ繝シ繝鈴幕蟋具シ・
-
Host・スE・スEstro / React / plain HTML 遲会シ・
-
閾ェ霄ォ縺ョ繝ャ繧、繧「繧ヲ繝茨ソスE荳ュ縺ォ
-
繝槭え繝ウ繝亥ョ御コ・・ス・ス縺ォ bootstrapViewerFromUrl 縺セ縺滂ソスE 莠句燕縺ォ fetch + validation 貂医∩縺ョ 3DSS 繧堤畑縺・・ス・ス bootstrapViewer 繧貞他縺カ縲・
-
蠕励i繧後◆ hub 縺ョ core.* API 繧偵・ソスE蜑搾ソスE UI 繧ウ繝ウ繝晢ソスE繝阪Φ繝茨シ医ち繧、繝繝ゥ繧、繝ウ繝サ繝ャ繧、繝、繝医げ繝ォ縺ェ縺ゥ・スE・ス縺ォ謗・邯壹☆繧九・
-
fetch 螟ア謨・/ JSON 繝托ソスE繧ケ繧ィ繝ゥ繝シ / strict validation NG 縺ョ 縺・・ス・ス繧後〒繧ゅ”ub 繧堤函謌舌○縺・canvas 繧呈緒逕サ縺励↑縺・ ・スE・ス驛ィ蛻・・ス・ス逕サ縺励↑縺・・ス・ス縲ょ承繝壹う繝ウ File 縺ォ
ERROR: <遞ョ蛻・>繧定。ィ遉コ縺励・ HUD 縺ォERROR繝舌ャ繧ク繧抵ソスE縺吶□縺代→縺励・ struct・スE・スEDSS document・スE・ス・スE core 縺ォ菫晄戟縺励↑縺・・ス・スE -
蛻カ邏・・ス・スE
-
dev harness 縺ィ蜷梧ァ倥〉untime 縺ォ縺ッ bootstrapViewer* / hub.core.* 縺ァ縺ョ縺ソ繧「繧ッ繧サ繧ケ縺吶k縲・
-
讒矩繝・・スE繧ソ・スE・スEDSS・スE・ス・スE strict read-only 縺ィ縺励」iewer 縺九i譖ク縺肴鋤縺医↑縺・・ス・スE
1.9 baseline 襍キ蜍墓凾縺ョ蝗コ螳壽擅莉カ
譛ャ遽縺ァ縺ッ縲‥ev viewer・スE・スEiewer_dev.html・スE・ス縺ォ縺翫>縺ヲ default.3dss.json 繧定ェュ縺ソ霎シ繧薙□縺ィ縺阪↓ 縲梧ッ主屓蜷後§蛻晄悄逕サ髱「縲阪′蜀咲樟縺輔l繧九h縺・・ス・ス縺吶k縺溘a縺ョ譚。莉カ繧貞ョ夂セゥ縺吶k縲・
1.9.1 蜈・蜉帙ヵ繧。繧、繝ォ縺ョ蝗コ螳・
-
dev 襍キ蜍墓凾縺ョ baseline 蜈・蜉幢ソスE縲∝クク縺ォ ../3dss/scenes/default/default.3dss.json 縺ィ縺吶k・スE・ス螳溘ヱ繧ケ縺ッ繝ェ繝昴ず繝医Μ讒具ソスE縺ォ霑ス蠕難シ峨・
-
莉厄ソスE繧オ繝ウ繝励Ν繧偵Ο繝シ繝峨☆繧・UI 縺後≠縺」縺ヲ繧ゅ・ 縲瑚オキ蜍慕峩蠕後↓閾ェ蜍輔〒繝ュ繝シ繝峨&繧後k繝輔ぃ繧、繝ォ縲搾ソスE荳願ィ・1 譛ャ縺ォ髯仙ョ壹☆繧九・
-
隱ュ縺ソ霎シ繧薙□繝輔ぃ繧、繝ォ繝代せ縺ッ襍キ蜍輔Ο繧ー縺ォ蠢・・ス・ス 1 陦鯉ソスE蜉帙☆繧九・
1.9.2 繧ォ繝。繝ゥ蛻晄悄迥カ諷具ソスE蝗コ螳・
default.3dss.json 隱ュ縺ソ霎シ縺ソ逶エ蠕鯉ソスE繧ォ繝。繝ゥ迥カ諷具ソスE縲・ 繧キ繝シ繝ウ蠅・・ス・ス・スE・スEounding sphere・スE・ス縺九i邂暦ソスE縺輔l繧・豎コ螳夂噪縺ェ蛻晄悄蛟、 縺ィ縺励※蝗コ螳壹☆繧九・
- 謚募スア譁ケ蠑・ PerspectiveCamera
- up 繝吶け繝医Ν: (0, 0, 1) // Z+ 繧堤オカ蟇セ荳翫→縺ソ縺ェ縺・
- target: 繧キ繝シ繝ウ荳ュ蠢・metrics.center・スE・ス蜿門セ励〒縺阪↑縺・・ス・ス蜷茨ソスE (0, 0, 0)・スE・スE
- 霍晞屬: 繧キ繝シ繝ウ蜊雁セ・metrics.radius 縺ョ邏・2.4 蛟搾シ・istance = radius * 2.4縲Sadius 荳搾ソスE譎ゑソスE 4・スE・スE
- 隕夜㍽隗・ fov = 50・スE・スEeg・スE・スE
蛻晄悄繧ォ繝。繝ゥ state 縺ッ renderer 縺ョ getSceneMetrics() 縺九i邂暦ソスE縺励・
cameraEngine.setState(initialState) 縺ォ繧医j遒コ螳壹&繧後k縲・
縺難ソスE蛻晄悄蛟、縺ッ 3DSS 讒矩縺ク譖ク縺肴綾縺輔★縲・ 縺ゅ¥縺セ縺ァ縲計iewer runtime 蜀・・スE uiState・スE・スEameraState・スE・ス縲阪→縺励※縺ョ縺ソ菫晄戟縺輔l繧九・
1.9.3 frame / layer 蛻晄悄迥カ諷・
baseline 襍キ蜍慕峩蠕鯉ソスE frame / layer 迥カ諷具ソスE谺。縺ョ縺ィ縺翫j蝗コ螳壹☆繧九・
- frame
- detectFrameRange(struct) 縺ォ繧医j {min,max} 繧呈アゅa繧九・
- uiState.frame.current = frameRange.min・スE・ス譛蟆上ヵ繝ャ繝シ繝縺九i髢句ァ具シ峨・
- uiState.runtime.isFramePlaying = false・スE・ス・スE逕・OFF・スE・ス縲・
- layer / filters
- filters.types.points = true
- filters.types.lines = true
- filters.types.aux = true
- 縺、縺セ繧翫・ソスE逕溘d繝輔ぅ繝ォ繧ソ謫堺ス懊r陦後≧蜑搾ソスE縲鯉ソスE繝ャ繧、繝、 ON縲搾ソスE迥カ諷九°繧牙ァ九∪繧九・
1.9.4 襍キ蜍輔Ο繧ー・スE・スEOOT / MODEL / CAMERA / LAYERS / FRAME・スE・スE
viewer runtime 縺ッ縲・ソスE譛溷喧螳御コ・・ス・ス縺ォ options.devBootLog === true 縺ョ蝣エ蜷医・ 谺。縺ョ 5 繝ャ繧ウ繝シ繝峨r 蠢・・ス・ス縺難ソスE鬆・・ス・ス縺ァ 1 蝗槭□縺・蜃コ蜉帙☆繧九・
- BOOT
- MODEL
縺ッ options.modelUrl 縺後≠繧鯉ソスE縺昴l繧堤畑縺・・ス・ス縺ェ縺代l縺ー url・スE・スEromUrl 縺ョ蠑墓焚・スE・ス縲・
- CAMERA {…}
- cameraEngine.getState() 逶ク蠖難ソスE payload 繧・JSON 譁・・ス・ス・スE縺ィ縺励※蜃コ蜉帙☆繧九・
- {“position”:[x,y,z],“target”:[tx,ty,tz],“fov”:50} 縺ョ繧医≧縺ェ蠖「縲・
- LAYERS points=on/off lines=on/off aux=on/off
- FRAME frame_id=
縺薙l繧会ソスE縲梧ァ矩蛹悶Ο繧ー繧、繝吶Φ繝医阪→縺励※ runtime 蜀・・ス・ス縺九i logger 縺ォ貂。縺輔l繧九・
-
options.logger 縺碁未謨ー縺ョ蝣エ蜷・ 竊・蜷・・ス・ス繧・logger(line) 縺ィ縺励※蜻シ縺ウ蜃コ縺吶・
-
options.logger 縺梧悴謖・・ス・ス・スE蝣エ蜷・ 竊・譌「螳壹〒 console.log(line) 繧堤畑縺・・ス・ス縲・ dev viewer・スE・スEiewer_dev.html・スE・ス縺ァ縺ッ騾壼クク縲・
-
logger = devLogger ・スE・スEonsole.log + 繝。繧ソ繝代ロ繝ォ縺ク縺ョ append・スE・スE 繧呈欠螳壹@縲`odel 繝代ロ繝ォ縺ォ
BOOT viewer_dev
MODEL ../s3dss/scenes/default.3dss.json
CAMERA {...}
LAYERS points=on lines=on aux=on
FRAME frame_id=0
縺ョ繧医≧縺ェ陦後′荳ヲ縺カ縺薙→繧堤「コ隱阪〒縺阪k縲・
蜷後§繝薙Ν繝・+ 蜷後§ baseline 繝輔ぃ繧、繝ォ縺ォ蟇セ縺励※ 縺薙l繧会ソスE繝ュ繧ー蜀・・ス・ス縺梧ッ主屓荳閾エ縺吶k縺薙→繧偵b縺」縺ヲ縲瑚オキ蜍墓擅莉カ縺悟崋螳壹&繧後※縺・・ス・ス縲阪→縺ソ縺ェ縺吶・
2 繝・・スE繧ソ讒矩縺ィ繧ケ繧ュ繝シ繝樊コ匁侠・スE・ス髢イ隕ァ蛛エ隕也せ・スE・スE
viewer 縺ッ逕滂ソスE繧「繝励Μ縺ァ縺ゅk modeler 縺ィ逡ー縺ェ繧翫・ 蜈・蜉帙&繧後◆ 3DSS 繝・・スE繧ソ繧偵◎縺ョ縺セ縺セ隱ュ縺ソ蜿悶j縲∝庄隕門喧縺吶k縺縺托ソスE繧「繝励Μ繧ア繝シ繧キ繝ァ繝ウ縺ァ縺ゅk縲・
譛ャ遶縺ァ縺ッ viewer 蛛エ縺九i隕九◆ 3DSS 繝・・スE繧ソ縺ョ謇ア縺・・ス・ス繝サ貅匁侠遽・・ス・ス繝サ蜀・・ス・ス菫晄戟譁ケ蠑上r螳夂セゥ縺吶k縲・ viewer 縺ッ讒矩邱ィ髮・・スE陬懷ョ鯉ソスE菫ョ蠕ゥ繧剃ク蛻・・ス・ス繧上↑縺・・ス・スE
2.1 髢イ隕ァ蟇セ雎。縺ィ縺ェ繧・3DSS 繝・・スE繧ソ讒矩
viewer 縺梧桶縺・・ス・ス騾繝・・スE繧ソ縺ッ縲・
*modeler 縺檎函謌舌@縺・.3dss.json 縺ォ螳鯉ソスE萓晏ュ・ 縺吶k縲・
譛荳贋ス肴ァ矩・スE・スE
lines・スE・ス髢「菫りヲ∫エpoints・スE・ス蟄伜惠隕∫エaux・スE・ス陬懷勧隕∫エdocument_meta・スE・ス邂。逅・・ス・ス蝣ア
viewer 縺ッ縺薙l繧峨r
- 隱ュ縺ソ蜿悶j・スE・スEtrict validation・スE・スE
- 蜿ッ隕門喧
縺ョ 2 谿オ髫弱□縺代r諡・・ス・ス縺励∫キィ髮・・スE陦後o縺ェ縺・・ス・スE
3DSS 閾ェ菴難ソスE莉墓ァ假ソスE蛻・邏吶・DSS 莉墓ァ俶嶌・スE・スE3DSS.schema.json`・スE・ス縲阪↓蟋費ソスE縲・ viewer 縺ッ縺晢ソスE *髢イ隕ァ蟆ら畑繧ッ繝ゥ繧、繧「繝ウ繝・ 縺ィ縺励※謖ッ繧具ソスE縺・・ス・スE
2.2 繝・・スE繧ソ隱ュ霎シ譎ゑソスE蜃ヲ逅・・ス・ス繝ュ繝シ
viewer 縺ッ讒矩繝・・スE繧ソ縺ョ隱ュ霎シ譎ゅ↓谺。縺ョ蜃ヲ逅・・ス・ス陦後≧・スE・スE
- JSON 隱ュ霎シ・スE・スEromUrl 縺ョ蝣エ蜷茨ソスE fetch 竊・json・スE・スE
- Validator 縺ォ繧医k validation・スE・スEalidate3DSS 繧貞クク縺ォ螳溯。鯉シ・
- ・スE・ス謖・ョ壽凾縺ョ縺ソ・スE・ス蜿ら・謨エ蜷域ァ繝√ぉ繝・・ス・ス・スE・スEalidateRefIntegrity・スE・スE
- Core 縺ォ immutable state 縺ィ縺励※繝ュ繝シ繝会シ・eep-freeze・スE・スE
- structIndex / frameRange 繧呈ァ狗ッ・
- Renderer 縺ォ繧医k荳画ャ。蜈・・ス・ス繝シ繝ウ讒狗ッ会シ・yncDocument・スE・ス縺ィ繧キ繝シ繝ウ繝。繝医Μ繧ッ繧ケ邂暦ソスE・スE・スEetSceneMetrics・スE・スE
- 蛻晄悄 cameraState 繧堤「コ螳壹@縲…ameraEngine.setState(initialState) 繧定。後≧
- core.recomputeVisibleSet() 繧・1 蝗槫他縺ウ縲・ソスE譛・visibleSet 繧堤「コ螳壹☆繧・
- hub 繧定ソ斐☆・スE・ス謠冗判繝ォ繝シ繝鈴幕蟋具ソスE陦後o縺ェ縺・・ス・スEost 縺・hub.start() 繧貞他縺カ・スE・スE
2.2.1 strict full validation 縺ョ蜀・・ス・ス
viewer 縺ッ /schemas/3DSS.schema.json・スE・ス繝ュ繝シ繧ォ繝ォ蜷梧「ア・スE・ス繧呈ュ」縺ィ縺吶k Validator・スE・スEJV・スE・ス縺ォ繧医j validation 繧定。後≧縲・
validate3DSS(document)縺ッ **蟶ク縺ォ螳溯。・*・スE・スEG縺ェ繧・throw縲”ub 縺ッ逕滂ソスE縺励↑縺・・ス・スEvalidateRefIntegrity(document)縺ッ options.strictValidate===true 縺セ縺滂ソスE options.validateRefIntegrity===true 縺ョ縺ィ縺搾ソスE縺ソ 螳溯。鯉シ・G縺ェ繧・throw・スE・スEbootstrapViewerFromUrl縺ッstrictValidate縺ョ default 繧・true 縺ィ縺吶k
AJV 縺ッ蟆代↑縺上→繧よャ。繧呈コ縺溘☆・スE・スE
removeAdditional: falseuseDefaults: falsecoerceTypes: false
縺、縺セ繧翫・ソスE蜉・JSON 繧呈嶌縺肴鋤縺医k譁ケ蜷托ソスE繧ェ繝励す繝ァ繝ウ縺ッ荳蛻・・ス・ス繧上↑縺・・ス・スE
2.2.2 繝撰ソスE繧ク繝ァ繝ウ縺翫h縺ウ schema_uri 縺ョ謇ア縺・
-
document_meta.schema_uri.../schemas/3DSS.schema.json繧呈欠縺吶%縺ィ繧定ヲ∵アゅ☆繧具シ医ヵ繧。繧、繝ォ蜷搾ソスE蝗コ螳夲シ・- schema_uri 縺ョ MAJOR 荳堺ク閾エ縺ッ隱ュ霎シ諡貞凄
- MINOR/PATCH 縺ッ縲《trict validation 縺ョ邨先棡縺ォ蠕薙≧・スE・ス繧ケ繧ュ繝シ繝槭↓蜿阪@縺ヲ縺・・ス・ス縺ー reject・スE・スE
-
document_meta.version- 繝峨く繝・繝。繝ウ繝茨シ医さ繝ウ繝・・ス・ス繝・・ス・ス・スE迚育ョ。逅・・ス・ス繧ソ縺ァ縺ゅj縲√せ繧ュ繝シ繝樔コ呈鋤蛻、螳壹↓縺ッ逕ィ縺・・ス・ス縺・・ス・ス陦ィ遉コ繝サ繝ュ繧ー逕ィ騾費シ・
2.3 蜀・・ス・ス state 縺ョ讒矩・スE・ス讒矩 vs uiState・スE・スE
Core 蜀・・ス・ス縺ァ菫晄戟縺吶k state 縺ッ縲梧ァ矩繝・・スE繧ソ縲阪→縲袈I state縲阪↓螳鯉ソスE縺ォ蛻・・ス・ス縺輔l繧九・
{
// immutable・スE・スEeep-freeze 貂医∩・スE・スE
document_3dss: {
document_meta,
points: [],
lines: [],
aux: [],
},
// read-only facade・スE・スEndices 蜀・・ス・ス・スE・スE
structIndex: { /* getCenter/getKind/getItem ... */ },
// viewer 蟆ら畑 uiState・スE・スEanonical state・スE・スE
uiState: {
frame: {
current: number | null,
range: { min:number, max:number } | null,
},
runtime: {
isFramePlaying: boolean,
isCameraAuto: boolean,
},
mode: "macro" | "micro",
selection: { kind:"points"|"lines"|"aux"|null, uuid:string|null },
hover: { kind:"points"|"lines"|"aux"|null, uuid:string|null },
filters: {
points: boolean,
lines: boolean,
aux: boolean,
auxModules: { grid:boolean, axis:boolean, plate:boolean, shell:boolean, hud:boolean, extension:boolean },
},
viewerSettings: {
worldAxesVisible: boolean,
lineWidthMode: "auto"|"fixed"|"adaptive",
microFXProfile: "weak"|"normal"|"strong",
},
visibleSet: {
frame: number | null,
points: Set<string>,
lines: Set<string>,
aux: Set<string>,
} | null,
cameraState: {
position: [number,number,number],
target: [number,number,number],
up: [number,number,number],
fov: number,
near: number,
far: number,
// 蠢・・ス・ス縺ェ繧・distance 縺ェ縺ゥ繧りソス蜉・スE・ス縺溘□縺・renderer 縺ク貂。縺呻ソスE縺ッ荳奇ソスE遒コ螳壼、・スE・スE
},
microState: object | null, // MicroFXPayload
},
}
迚ケ蠕エ・スE・スE
- 讒矩繝・・スE繧ソ・スE・スEdata`・スE・ス・スE deep-freeze 縺輔l縺ヲ縺翫j縲・ 縺ゥ縺ョ繝ャ繧、繝、縺九i繧・**螟画峩遖∵ュ「**縲・
- UI state・スE・スEuiState
・スE・ス・スE viewer 蜀・・ス・ス螟画峩蜿ッ閭ス縺縺後・.3dss.json` 縺ク縺ッ譖ク縺肴綾縺輔↑縺・・ス・ス繧サ繝・・ス・ス繝ァ繝ウ髯仙ョ夲シ峨・ visibleSet/microState縺ッ UI state 縺ョ豢セ逕滓ュ蝣ア縺ィ縺励※ Core 縺梧園譛峨@縲・ Renderer 縺ッ縺昴l繧定ェュ縺ソ蜿悶k縺縺代→縺吶k縲・
2.4 viewer 縺ォ縺翫¢繧区ァ矩繝・・スE繧ソ縺ョ謇ア縺・・ス・ス
viewer 縺ッ讒矩繝・・スE繧ソ縺ォ蟇セ縺励※谺。繧剃ク蛻・・ス・ス繧上↑縺・・ス・スE
- 蜉遲・・ス・スEdd・スE・スE
- 螟画峩・スE・スEpdate・スE・スE
- 陬懷ョ鯉シ・uto-fill・スE・スE
- 髯、蜴サ・スE・スEuto-clean・スE・スE
- 謗ィ貂ャ陬懷ョ鯉シ・nference・スE・スE
- 蜀肴ァ具ソスE・スE・スEestructure・スE・スE
- 閾ェ蜍包ソスE繝シ繧ク・スE・スEerge・スE・スE
讒矩繝・・スE繧ソ縺ッ *縲瑚ェュ縺ソ蜿悶k縺縺代・ 縺ァ縺ゅj縲・ 隕冶ヲ壼喧縺ョ縺溘a縺ョ隗」驥茨ソスE縺励※繧ゅ∵ァ矩閾ェ菴難ソスE螟峨∴縺ェ縺・・ス・スE
2.4.1 荳榊、会シ・mmutable・スE・ス・スE邯ュ謖・
- Core 縺ォ繝ュ繝シ繝峨@縺滓ァ矩繝・・スE繧ソ縺ッ縲‥eep-freeze 縺ォ繧医j荳榊、峨→縺吶k縲・
- 驕ク謚橸ソスEhover繝サcamera繝サ繝輔ぅ繝ォ繧ソ繝サ蜀咲函迥カ諷九↑縺ゥ縺ョ螟牙喧縺ッ
縺吶∋縺ヲuiState縺ォ縺ョ縺ソ蜿肴丐縺輔l繧九・ - three.js 縺ョ繧ェ繝悶ず繧ァ繧ッ繝茨シ・THREE.Object3D`・スE・ス縺ォ蜈・JSON 繧堤峩謗・縺カ繧我ク九£繧九↑縺ゥ縲・ 讒矩繝・・スE繧ソ縺ク縺ョ譖ク縺崎セシ縺ソ邨瑚キッ縺檎函縺倥k險ュ險茨ソスE遖∵ュ「縺ィ縺吶k縲・
2.4.2 陦ィ遉コ蛻カ蠕。縺ョ縺溘a縺ョ隗」驥茨ソスE險ア蜿ッ縺輔l繧・
陦ィ遉コ蛻カ蠕。縺ョ縺溘a縺ョ *縲瑚ァ」驥医・ 縺ッ險ア蜿ッ縺輔l繧九ゆセ具シ・
frame.current縺ォ蠢懊§縺溯ヲ∫エ縺ョ陦ィ遉コ繝サ髱櫁。ィ遉コappearance.*縺ョ謠冗判譁ケ蠑丞渚譏・スE・ス濶イ繝サ螟ェ縺包ソスE騾擾ソスE蠎ヲ縺ェ縺ゥ・スE・スEmarker.shape縺ォ蠢懊§縺・geometry 逕滂ソスEaux.module縺ョ遞ョ鬘槭↓蠢懊§縺溯。ィ遉コ・スE・スErid / axis / label 縺ェ縺ゥ・スE・スE
縺薙l繧会ソスE 陦ィ遉コ繝ュ繧ク繝・・ス・ス 縺ァ縺ゅj縲∵ァ矩繝・・スE繧ソ縺ョ螟画峩縺ァ縺ッ縺ェ縺・・ス・スE
viewer 縺ッ appearance.visible 縺ェ縺ゥ繧貞盾辣ァ縺励※繧ゅ∝、繧呈嶌縺肴鋤縺医◆繧贋ク頑嶌縺阪@縺溘j縺励↑縺・・ス・スE
2.4.3 marker.text 縺ョ viewer 隗」驥井サ墓ァ・
viewer 縺ッ points.appearance.marker.text 繧・蜚ッ荳縺ョ隗」驥亥ア、・・abelIndex・峨〒豁」隕丞喧縺励ヽenderer 縺ッ縺昴・邨先棡縺縺代r蜿ら・縺励※謠冗判縺吶k縲・
莉・荳九・隕丞援縺ッ viewer 蜀・〒蝗コ螳壹→縺励}ublic / dist 縺ェ縺ゥ縺ョ繝溘Λ繝シ縺ォ縺ッ驥崎、・ョ夂セゥ繧堤スョ縺九↑縺・・
content・夐撼遨コ譁・ュ怜・縺ェ繧画怙蜆ェ蜈医〒菴ソ逕ィ縲らゥコ縺ェ繧・signification.name繧定ィ隱樣・シ・document_meta.i18n竊・ja竊・en竊・譛蛻昴・譁・ュ怜・繧ュ繝シ・峨〒繝輔か繝シ繝ォ繝舌ャ繧ッ縺吶k縲・ 荳。譁ケ遨コ縺ェ繧峨Λ繝吶Ν閾ェ菴薙r逕滓・縺励↑縺・・-size・・*world 蜊倅ス阪・隲也炊繧オ繧、繧コ**縲AlabelConfig.baseLabelSize=8繧貞渕貅悶↓ world 鬮倥&縺ク螟画鋤縺吶k縲・number莉・螟悶√∪縺溘・ 0 莉・荳九・8縺ォ繝輔か繝シ繝ォ繝舌ャ繧ッ縲・-plane・啻xy/yz/zx/billboard縲・billboard縺ッ繧ォ繝。繝ゥ豁」髱「蝗コ螳壹~xy縺ッ +Z 豁」髱「縲~yz縺ッ +X 豁」髱「縲~zx縺ッ +Y 豁」髱「繧貞髄縺上・ 辟。蜉ケ蛟、縺ッzx縺ォ繝輔か繝シ繝ォ繝舌ャ繧ッ縲・-align・啻left/center/rightテ・top/middle/baseline繧・left top縺ョ蠖「蠑上〒謖・ョ壹☆繧九・ 蝓コ貅也せ・・oint 蠎ァ讓呻シ峨↓蟇セ縺吶k繧「繝ウ繧ォ繝シ菴咲スョ縺ァ縺ゅj縲~baseline縺ッ 譁・ュ鈴伜沺縺ョ荳狗ォッ縺ィ縺励※謇ア縺・・ 辟。蜉ケ蛟、縺ッcenter middle縺ォ繝輔か繝シ繝ォ繝舌ャ繧ッ縲・-font・啻string` 繧貞女縺台サ倥¢繧九・helvetiker_regular縺セ縺溘・遨コ譁・ュ励・ viewer 縺ョ譌「螳壹ヵ繧ゥ繝ウ繝医↓繝輔か繝シ繝ォ繝舌ャ繧ッ縲・- 縺昴l莉・螟悶・ **CSS font-family 譁・ュ怜・**縺ィ縺励※謇ア縺・・
- 蜈磯ュ縺ォ
italic/oblique/normal繧・100..900/bold縺ェ縺ゥ縺ョ繝医・繧ッ繝ウ縺悟性縺セ繧後k蝣エ蜷医・ style / weight 縺ィ縺励※隗」驥医@縲∵ョ九j繧・family 縺ィ縺吶k縲・
2.5 frame / frames 縺ョ謇ア縺・
3DSS 蛛エ縺ョ frames 縺ィ viewer 蛛エ縺ョ frame.current 縺ョ髢「菫ゑソスE谺。縺ョ騾壹j縺ィ縺吶k・スE・スE
-
uiState.frame.current === null竊・frames 繧堤┌隕悶@縺ヲ蜿ッ隕門愛螳壹☆繧具シ・rame 繝輔ぅ繝ォ繧ソ OFF・スE・スE -
uiState.frame.current === n竊・隕∫エ縺ョappearance.frames縺・- number 縺ョ蝣エ蜷茨シ嗜 縺ィ荳閾エ縺吶k譎ゅ□縺大庄隕・
- number[] 縺ョ蝣エ蜷茨シ嗜 繧貞性繧譎ゅ□縺大庄隕厄シ育ゥコ驟搾ソスE縺ッ蟶ク縺ォ荳榊庄隕厄シ・
-
appearance.frames譛ェ螳夂セゥ 竊・蜈ィ繝輔Ξ繝シ繝縺ァ蜿ッ隕厄シ・rame.current 縺ォ萓晏ュ倥@縺ェ縺・・ス・スE
frameRange {min,max} 縺ッ detectFrameRange(document) 縺ァ邂暦ソスE縺励・
frames 縺・1 莉カ繧ら┌縺・・ス・ス蜷茨ソスE range=null 縺ィ縺吶k縲・
2.6 蜿ゑソスE謨エ蜷茨シ・ef 竊・uuid・スE・スE
ref 竊・uuid 縺ョ謨エ蜷茨ソスE 隱ュ霎シ譎ゑソスE Validator 縺御ソ晁ィシ 縺吶k縲・
莉」陦ィ萓具シ・
line.end_a.ref竊・points[*].uuidline.end_b.ref竊・points[*].uuid- 縺晢ソスE莉悶・DSS 莉墓ァ俶嶌縺ァ螳夂セゥ縺輔l縺ヲ縺・・ス・ス蜈ィ縺ヲ縺ョ蜿ゑソスE
荳肴紛蜷医′縺ゅk蝣エ蜷茨シ・
- viewer 縺ッ隱ュ霎シ閾ェ菴薙r螟ア謨励&縺帙k・スE・ス萓句、也匱逕滂ソスE繧ィ繝ゥ繝シ繝。繝・・ス・ス繝シ繧ク陦ィ遉コ・スE・ス縲・
- 蜀・・ス・ス縺ァ縲後〒縺阪k遽・・ス・ス縺縺第緒逕サ縺吶k縲阪→縺・・ス・ス縺滓嫌蜍包ソスE陦後o縺ェ縺・ ・スE・スEartial rendering / best-effort 謠冗判縺ッ縺励↑縺・・ス・ス縲・
runtime 蜀・・ス・ス縺ョ蜀阪メ繧ァ繝・・ス・ス縺ッ荳崎ヲ√〒縺ゅj縲・ 諤ァ閭ス髱「繧貞━蜈医@縺ヲ validation 縺ォ荳莉サ 縺吶k縲・
2.7 隱ュ霎シ遖∵ュ「繝サ髱槫ッセ雎。繝・・スE繧ソ
viewer 縺ッ莉・荳九r讒矩繝・・スE繧ソ縺ィ縺励※謇ア繧上↑縺・・ス・スE
- UI 迥カ諷具シ医き繝。繝ゥ繝サ驕ク謚樒憾諷九↑縺ゥ・スE・スE
- 繧ウ繝。繝ウ繝医ヵ繧」繝シ繝ォ繝会シ・uthoring 逕ィ縺ョ free text・スE・スE
- 豕ィ驥茨ソスE繝。繝「繝サ繝ャ繝晢ソスE繝茨シ域ァ矩螟厄ソスE narrative・スE・スE
- modeler 縺ョ蜀・・ス・ス諠・・ス・ス・スE・スEndo stack 縺ェ縺ゥ・スE・スE
- 螟夜Κ蝓九a霎シ縺ソ glTF / 3D 繝「繝・・ス・ス・スE・ス讒矩螻、縺ィ縺ッ蛻・繝ャ繧、繝、・スE・スE
- viewer 迢ャ閾ェ蠖「蠑擾ソスE JSON・スE・ス・スE蜉幢ソスE隱ュ霎シ縺ィ繧ゅ↓遖∵ュ「・スE・スE
- 3DSS-prep・スE・スEuthoring 逕ィ繝溘ル繝槭Ν繧ケ繧ュ繝シ繝橸シ・
讒矩繝・・スE繧ソ縺ィ縺励※謇ア縺・・スE縺ッ縲・
/schemas/3DSS.schema.json 縺ォ貅匁侠縺励◆ 3DSS 縺ョ縺ソ縺ィ縺吶k縲・
2.8 繝・・スE繧ソ讒矩縺ォ髢「縺吶k遖∵ュ「莠矩・・ス・スEiewer・スE・スE
viewer 縺ッ讒矩繝・・スE繧ソ縺ォ蟇セ縺励※縲∵ャ。繧定。後o縺ェ縺・・ス・スE
- 讒矩縺ョ閾ェ蜍穂ソョ蠕ゥ
- 谺謳阪お繝・・ス・ス繧抵ソスE蜍戊」懷ョ後☆繧・
- 蜿ゑソスE蛻・・ス・ス繧抵ソスE蜍輔〒蜑企勁縺吶k
- 證鈴サ呻ソスE default 莉倅ク・
- 繧ケ繧ュ繝シ繝槭↓
default縺後≠縺」縺ヲ繧ゅ・ runtime 蛛エ縺ァ縺昴l繧貞享謇九↓驕ゥ逕ィ縺励※ JSON 繧呈嶌縺肴鋤縺医↑縺・・ス・スE
- 繧ケ繧ュ繝シ繝槭↓
- 繧ュ繝シ蜷搾ソスE譖ク縺肴鋤縺・
name_ja/name_en縺ェ縺ゥ繧抵ソスE蜍・merge / rename 縺励↑縺・・ス・スE
- 蠎ァ讓呻ソスE荳ク繧・ソスE豁」隕丞喧
- 蟆乗焚轤ケ譯∵焚縺ョ荳ク繧・
- 迚ケ螳夊サク縺ク縺ョ謚募スア
- frame 諠・・ス・ス縺ョ閾ェ蜍慕函謌・
frames譛ェ螳夂セゥ隕∫エ縺ク縺ョ閾ェ蜍穂サ倅ク・- time-series 縺ョ陬憺俣
- 繧ケ繧ュ繝シ繝槫、夜・・ス・ス縺ョ菫晄戟
additionalProperties:false縺ォ蜿阪☆繧玖ソス蜉繧ュ繝シ繧・ 縲御ク譌ヲ隱ュ繧薙〒縺九i謐ィ縺ヲ繧九阪%縺ィ繧り。後o縺ェ縺・・ス・スEalidation 縺ァ reject・スE・ス縲・
- UI 迥カ諷具ソスE JSON 菫晏ュ・
- camera / selection / filters / runtime 繝輔Λ繧ー縺ェ縺ゥ繧・
.3dss.json縺ク譖ク縺肴綾縺輔↑縺・・ス・スE
- camera / selection / filters / runtime 繝輔Λ繧ー縺ェ縺ゥ繧・
- normalize / resolve / prune / reorder 縺ョ螳溯。・
- JSON 縺ョ key 鬆・・ス・ス螟画峩
- 蜀鈴聞諠・・ス・ス縺ョ蜑企勁
- 蛻・繝輔か繝シ繝槭ャ繝医∈縺ョ螟画鋤
viewer 縺ッ讒矩繝・・スE繧ソ繧・ *窶懈焔縺、縺九★縺ョ縺セ縺セ謇ア縺・・ス・ス縺ィ窶・ 縺悟宍蟇・・ス・ス莉墓ァ倥→縺励※鄒ゥ蜍吶▼縺代i繧後k縲・
2.9 Runtime API 讎りヲ・・ス・ス譛蟆上そ繝・・ス・ス・スE・スE
viewer 縺ッ modeler 縺九i螳鯉ソスE縺ォ迢ャ遶九@縺・read-only 繧「繝励Μ縺ァ縺ゅk縺後・ UI 繝擾ソスE繝阪せ繝サdev 逕ィ繝・・スE繝ォ繝サ蟆・・ス・ス縺ョ modeler 縺九i縺ョ蜀榊茜逕ィ繧呈Φ螳壹@縲・ 螟夜Κ蜷代¢縺ォ螳牙ョ壹@縺ヲ謠蝉セ帙☆繧・runtime API 縺ョ譛蟆上そ繝・・ス・ス 繧貞ョ夂セゥ縺吶k縲・
隧ウ邏ー縺ェ API 莉墓ァ假ソスE蛻・邏・runtime_spec 縺ォ蟋費ソスE縲・
譛ャ遽縺ァ縺ッ縲後お繝ウ繝医Μ繝昴う繝ウ繝医阪→縲悟、夜Κ縺九i隕九∴繧・hub 縺ョ鬪ィ譬シ縲阪□縺代r遉コ縺吶・
2.9.1 繧ィ繝ウ繝医Μ API
-
bootstrapViewer(canvasOrId, threeDSS, options?) 竊・hub- validate3DSS 繧貞クク縺ォ螳溯。後@縲∝ソ・・ス・ス縺ェ繧・validateRefIntegrity 繧貞ョ溯。後☆繧九・
-
bootstrapViewerFromUrl(canvasOrId, url, options?) 竊・Promise<hub>- fetch 竊・json 竊・bootstrapViewer 縺ォ貂。縺吶・
- strictValidate 縺ョ default 縺ッ true縲・
options・スE・スE
devBootLog?: booleanlogger?: (line:string)=>voidstrictValidate?: booleanvalidateRefIntegrity?: boolean
窶サ BOOT/MODEL 遲会ソスE繝ュ繧ー縺ォ莉倅ク弱☆繧・label 繧・modelUrl 繧呈戟縺溘○縺溘>蝣エ蜷茨ソスE縲・ runtime_spec.viewer.yaml 蛛エ縺ョ options 螳夂セゥ縺ォ霑ス蜉縺励∽ク。莉墓ァ倥r荳閾エ縺輔○繧九・
2.9.2 hub 縺ョ螟門ス「
bootstrapViewer* 縺ョ謌サ繧雁、 hub 縺ッ縲∝ー代↑縺上→繧よャ。縺ョ繝励Ο繝代ユ繧」繧呈戟縺、・スE・スE
hub.core窶ヲ runtime API 蜷榊燕遨コ髢難シ・rame / camera / selection / mode / micro / filters / runtime / uiState 遲会シ・hub.start()窶ヲ requestAnimationFrame 繝ォ繝シ繝鈴幕蟋・hub.stop()窶ヲ 繝ォ繝シ繝怜●豁「hub.pickObjectAt(ndcX, ndcY)窶ヲ 繝斐ャ繧ュ繝ウ繧ー・スE・スEI 縺九i selectionController 縺ク縺ョ讖区ク。縺暦シ・
莉・髯搾ソスE遶・スE・スE.8 / 7.11 遲会シ峨♀繧茨ソスE runtime_spec 縺ォ縺翫>縺ヲ縲・
hub.core 莉・荳具ソスE蜷・・ス・ス繧ス繝・・ス・ス・スE・スEframe.get/set/step/camera.rotate/pan/zoom/reset` 縺ェ縺ゥ・スE・ス繧・
隧ウ邏ー縺ォ螳夂セゥ縺吶k縲・
譛ャ遶縺ョ遽・・ス・ス縺ァ縺ッ・スE・スE
- 縲梧ァ矩繝・・スE繧ソ縺ッ 3DSS 縺ォ螳鯉ソスE萓晏ュ倥@ read-only縲・
- 縲袈I 縺九i讒矩縺ク縺ッ蠢・・ス・ス
hub.core.*邨檎罰縺ァ繧「繧ッ繧サ繧ケ縺吶k縲・
縺ィ縺・・ス・ス 2 轤ケ繧剃サ墓ァ倅ク奇ソスE邏・・ス・ス莠九→縺励※譏守、コ縺吶k縺ォ縺ィ縺ゥ繧√k縲・
3 UI讒具ソスE縺ィ謫堺ス應ス鍋ウサ・スE・スEiewer・スE・スE
viewer 縺ッ讒矩繝・・スE繧ソ縺ョ邱ィ髮・・ス・ス荳蛻・・ス・ス繧上★縲・ 髢イ隕ァ繝サ遒コ隱搾ソスE逅・・ス・ス 縺ョ縺溘a縺ョ UI 讒矩縺縺代r蛯吶∴繧九・
譛ャ遶縺ァ縺ッ縲・・ス・ス隕ァ蟆ら畑 UI 縺ィ縺励※蠢・・ス・ス縺ェ讖滂ソスE繝サ繝ャ繧、繧「繧ヲ繝茨ソスE謫堺ス應ス鍋ウサ繧貞ョ夂セゥ縺励・ 邱ィ髮・UI 繧・・ス・ス蟄・UI 縺悟ュ伜惠縺励↑縺・・ス・ス縺ィ繧抵ソスE遒コ縺ォ縺吶k縲・
viewer UI 縺ッ modeler UI 縺ィ蛻・邉サ邨ア縺ァ縺ゅj縲∫キィ髮・・ス・ス蠖吶r蜷ォ縺セ縺ェ縺・・ス・スE
3.1 UI 蜈ィ菴薙Ξ繧、繧「繧ヲ繝・
viewer_dev・スE・ス髢狗匱逕ィ viewer・スE・ス・スE讓呎コ悶Ξ繧、繧「繧ヲ繝茨ソスE谺。縺ョ莠鯉ソスE蜑イ讒具ソスE縺ィ縺吶k・スE・スE
笏娯楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏・
笏・ 繝。繧、繝ウ繝薙Η繝シ・スE・スED繝励Ξ繝薙Η繝シ・スE・スE 笏・
笏懌楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏ャ笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏、
笏・ 諠・・ス・ス繝代ロ繝ォ 笏・ 陦ィ遉コ繧ウ繝ウ繝医Ο繝シ繝ォ繝代ロ繝ォ 笏・
笏披楳笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏エ笏笏笏笏笏笏笏笏笏笏笏笏笏笏笏・
- 荳頑ョオ・スE・スthree.js 縺ォ繧医k 3D 繝。繧、繝ウ繝薙Η繝シ・スE・スEanvas・スE・スE
- 蟾ヲ荳具シ壹Γ繧ソ諠・・ス・ス繝サ繝ュ繧ー繧定。ィ遉コ縺吶k縲梧ュ蝣ア繝代ロ繝ォ縲・
- 蜿ウ荳具シ喃rame / filter / mode / gizmo 縺ェ縺ゥ縺ョ縲瑚。ィ遉コ繧ウ繝ウ繝医Ο繝シ繝ォ繝代ロ繝ォ縲・
譛ャ繝ャ繧、繧「繧ヲ繝茨ソスE dev viewer・スE・スEviewer_dev.html`・スE・ス・スE讓呎コ悶→縺励・ 譛ャ逡ェ蝓九a霎シ縺ソ viewer 縺ァ縺ッ縲・ソスE繧ケ繝茨ソスE UI 驛ス蜷医↓蜷医o縺帙※蜀肴ァ具ソスE縺励※繧医>縲・
3.1.1 PC 蜷代¢ dev viewer 繝ャ繧、繧「繧ヲ繝郁ヲ∽サカ
PC 蜷代¢縺ョ dev viewer 縺ァ縺ッ縲∝ー代↑縺上→繧よャ。繧呈コ縺溘☆・スE・スE
- 繝。繧、繝ウ繝薙Η繝シ
- 3D 繧ュ繝」繝ウ繝舌せ・スE・スE
- pointerInput・スE・ス・スE繧ヲ繧ケ / 繧ソ繝・・ス・ス・スE・ス繧偵く繝」繝ウ繝舌せ縺ォ縺縺托ソスE繧我ク九£繧九・
- 諠・・ス・ス繝代ロ繝ォ・スE・ス蟾ヲ荳具シ・
- File 諠・・ス・ス・スE・ス繧ス繝シ繧ケ繝代せ / frame range / current frame・スE・スE
- Model 繝ュ繧ー・スE・スEevBootLog 繧貞性繧・スE・ス繧偵せ繧ッ繝ュ繝シ繝ォ鬆伜沺縺ィ縺励※陦ィ遉コ縲・
- 陦ィ遉コ繧ウ繝ウ繝医Ο繝シ繝ォ繝代ロ繝ォ・スE・ス蜿ウ荳具シ・
- frame 繧ケ繝ゥ繧、繝縺ィ蜀咲函繝懊ち繝ウ鄒、
- points / lines / aux 縺ョ陦ィ遉コ繝輔ぅ繝ォ繧ソ
- mode HUD・スE・スEacro / meso / micro・スE・ス縺ィ focus 陦ィ遉コ
- 霆ク繧ョ繧コ繝「縺ョ DOM 繝ゥ繝・・ス・ス・スE・ス蟾ヲ荳・canvas 荳翫↓驥搾ソスE縺ヲ繧ゅh縺・・ス・スE
3.1.2 譛ャ逡ェ viewer 譛蟆剰ヲ∽サカ
譛ャ逡ェ viewer・スE・スEstro 蝓九a霎シ縺ソ縺ェ縺ゥ・スE・ス縺ァ縺ッ縲∵ャ。縺縺代r譛菴朱剞縺ィ縺吶k・スE・スE
- 繝。繧、繝ウ繝薙Η繝シ・スE・スED canvas・スE・スE
- frame 蛻・・ス・ス UI・スE・ス繧ケ繝ゥ繧、繝 or +/- 繝懊ち繝ウ or 繧ュ繝シ繝懶ソスE繝会シ・
- layer 蛻・・ス・ス UI・スE・スEoints / lines / aux 縺ョ ON/OFF・スE・スE
- 驕ク謚樔クュ隕∫エ縺ョ隴伜挨縺後〒縺阪k陦ィ遉コ・スE・ス萓具シ啅UID / name 縺ョ縺ゥ縺。繧峨°・スE・スE
dev 逕ィ HUD / 繝ュ繧ー繝代ロ繝ォ / 隧ウ邏ー縺ェ繝。繧ソ諠・・ス・ス陦ィ遉コ縺ッ縲・ 譛ャ逡ェ viewer 縺ァ縺ッ莉サ諢上→縺吶k縲・
3.2 繝。繧、繝ウ繝薙Η繝シ縺ィ HUD
3.2.1 繝。繧、繝ウ繝薙Η繝シ・スE・スED 繝励Ξ繝薙Η繝シ・スE・スE
繝。繧、繝ウ繝薙Η繝シ縺ョ雋ャ蜍呻シ・
- three.js 縺ォ繧医k 3D 謠冗判・スE・スEenderer 螻、縺ョ canvas・スE・スE
- 繧ォ繝。繝ゥ謫堺ス懶シ・rbit / pan / zoom・スE・ス・スE隕冶ヲ夂噪繝輔ぅ繝シ繝峨ヰ繝・・ス・ス
- 驕ク謚櫁ヲ∫エ縺ョ繝上う繝ゥ繧、繝郁。ィ遉コ・スE・スEelection + microFX 縺ョ邨先棡・スE・スE
- frame / filters 縺ォ繧医k陦ィ遉コ蛻・・ス・ス縺ョ邨先棡繧貞渚譏
蛻カ邏・・ス・スE
- 繝。繧、繝ウ繝薙Η繝シ縺ッ讒矩繝・・スE繧ソ繧堤キィ髮・・ス・ス縺ェ縺・・ス・スE
- UI 繧、繝吶Φ繝・竊・camera/frame/selection/mode 縺ク縺ョ蜿肴丐縺ッ
縺吶∋縺ヲ PointerInput / KeyboardInput 竊・hub.core. 邨檎罰* 縺ィ縺吶k縲・
3.2.2 HUD・スE・ス繝医・繧ケ繝・/ mode 繝斐Ν / focus 繝ゥ繝吶Ν・スE・スE
dev viewer 縺ァ縺ッ縲√Γ繧、繝ウ繝薙Η繝シ荳翫↓谺。縺ョ HUD 繧帝㍾縺ュ繧具シ・
- 繝茨ソスE繧ケ繝医Γ繝・・ス・ス繝シ繧ク・スE・スEviewerToast`・スE・スE
showHudMessage(text, {duration, level})逕ア譚・縺ョ邁。譏馴夂衍縲・- 萓具シ啻”Viewer loaded”
,”Camera: HOME”,”MACRO MODE”` 縺ェ縺ゥ縲・
- mode 繝斐Ν
MACRO / MESO / MICRO縺ョ 3 縺、縺ョ pill 繧定。ィ遉コ縲・- 迴セ蝨ィ mode 縺ォ蟇セ蠢懊☆繧・pill 縺縺・
mode-pill-active繧剃サ倅ク弱・
- focus 繝ゥ繝吶Ν
- 迴セ蝨ィ selection・スE・スEuiState.selection.uuid`・スE・ス繧定。ィ遉コ縲・
- selection 縺後↑縺・・ス・ス蜷茨ソスE
"-"繧定。ィ遉コ縲・
HUD 縺ッ dev viewer 蟆ら畑縺ョ陬懷勧 UI 縺ィ縺励・ 譛ャ逡ェ viewer 縺ァ縺ッ莉サ諢乗ゥ滂ソスE縺ィ縺吶k縲・
3.2.3 霆ク繧ョ繧コ繝「・スE・スEizmo・スE・スE
- DOM 繝呻ソスE繧ケ縺ョ HUD 縺ィ縺励※逕サ髱「蟾ヲ荳九↓驥搾ソスE繧九・
- 蠖ケ蜑イ・スE・スE
- 迴セ蝨ィ繧ォ繝。繝ゥ縺ョ蜷代″繧堤、コ縺咏ー。譏・3D axes 陦ィ遉コ縲・
- 繧ッ繝ェ繝・・ス・ス縺ァ繧ォ繝。繝ゥ繧剃クサ隕∬サク譁ケ蜷托シ・X / +Y / +Z・スE・ス縺ク snap 縺吶k縲・
- HOME 繝懊ち繝ウ縺ァ繧ォ繝。繝ゥ蛻晄悄迥カ諷九∈謌サ縺吶・
- 螳溯」・・ス・スE
viewer/ui/gizmo.js・スE・スEOM 謫堺ス懶シ峨→縺励》hree.js 縺ョ scene 縺ォ縺ッ蜈・繧後↑縺・・ス・スE- 繧ォ繝。繝ゥ謫堺ス懶ソスE
viewerHub.core.camera.reset/.snapToAxis(axis)邨檎罰縺ァ陦後≧縲・
3.3 諠・・ス・ス繝代ロ繝ォ・スE・スEile / Model・スE・スE
諠・・ス・ス繝代ロ繝ォ縺ッ縲∽クサ縺ォ dev viewer 縺ァ蛻ゥ逕ィ縺吶k 繝・・ス・ス繧ケ繝茨ソスE繝シ繧ケ縺ョ繝。繧ソ陦ィ遉コ鬆伜沺 縺ィ縺吶k縲・
3.3.1 File 諠・・ス・ス繝代ロ繝ォ
- 陦ィ遉コ蜀・・ス・ス・スE・ス萓具シ会シ・
- Source:
../3dss/sample/frame_aux_demo.3dss.json - Frame range:
[min, max] - Current frame:
n
- Source:
- 諠・・ス・ス貅撰シ・
hub.core.frame.getRange()/hub.core.frame.getActive()bootstrapViewerFromUrl縺ォ貂。縺励◆modelUrl
3.3.2 Model 繝ュ繧ー繝代ロ繝ォ
-
蛻晄悄迥カ諷具シ・
"Model"隕具ソスE縺励→縲~(logs will appear here)` 縺ョ繝励Ξ繝シ繧ケ繝帙Ν繝縲・
-
devBootLog 繧呈怏蜉ケ縺ォ縺励◆蝣エ蜷茨シ・
-
襍キ蜍墓凾縺ォ蠢・・ス・ス谺。縺ョ 5 陦後′縺難ソスE繝代ロ繝ォ縺ォ荳ヲ縺カ・スE・スE
BOOT <devLabel> MODEL <modelUrl or (unknown)> CAMERA {"position":[...],"target":[...],"fov":50} LAYERS points=on/off lines=on/off aux=on/off FRAME frame_id=<n>
-
-
蜃コ蜉帷オ瑚キッ・スE・スE
bootstrapViewer繧ェ繝励す繝ァ繝ウdevBootLog: true譎ゅ・options.logger縺後≠繧鯉ソスE縺昴l繧剃スソ縺・・ス・ス辟。縺代l縺ーconsole.log繧堤畑縺・・ス・ス縲・- viewer_dev 繝擾ソスE繝阪せ縺ァ縺ッ
logger: devLogger繧呈ク。縺励・devLogger縺・appendModelLog繧帝壹§縺ヲ Model 繝代ロ繝ォ縺ク霑ス險倥☆繧九・
devBootLog 縺ョ隧ウ邏ー莉墓ァ假ソスE 1.8 遽繧呈ュ」縺ィ縺吶k縲・
3.4 陦ィ遉コ繧ウ繝ウ繝医Ο繝シ繝ォ繝代ロ繝ォ
陦ィ遉コ繧ウ繝ウ繝医Ο繝シ繝ォ繝代ロ繝ォ縺ッ縲」iewer 縺ョ 迥カ諷九r螟厄ソスE縺九i謫堺ス懊☆繧句髪荳縺ョ UI 髮・・ス・スE 縺ァ縺ゅk縲・ 縺溘□縺玲悽逡ェ viewer 縺ァ縺ッ縲・・スE鄂ョ繧・・ス・ス縺溽岼縺ッ繝帙せ繝医↓莉サ縺帙・ API 蜻シ縺ウ蜃コ縺暦シ・ub.core.・スE・ス縺縺代r莉墓ァ倥→縺励※蝗コ螳壹☆繧九・
3.4.1 Frame 繧ウ繝ウ繝医Ο繝シ繝ォ
dev viewer 縺ョ frame UI 縺ッ谺。縺ョ讒具ソスE縺ィ縺吶k・スE・スE
-
繧ケ繝ゥ繧、繝・スE・スE#frame-slider`・スE・スE
input繧、繝吶Φ繝医〒hub.core.frame.setActive(newValue)繧貞他縺カ縲・
-
繝ゥ繝吶Ν・スE・スE#frame-slider-label`・スE・スE
hub.core.frame.getActive()繧定。ィ遉コ縺吶k縲・
-
繝懊ち繝ウ鄒、
btn-rew窶ヲhub.core.frame.setActive(range.min)btn-step-back窶ヲhub.core.frame.prev()btn-home窶ヲhub.core.frame.setActive(range.min)btn-step-forward窶ヲhub.core.frame.next()btn-ff窶ヲhub.core.frame.setActive(range.max)btn-play窶ヲ ・スE・スEev harness 蛛エ縺ァ蜀咲函繝医げ繝ォ・スE・スE
蜀咲函繝医げ繝ォ縺ッ dev viewer 蝗コ譛会ソスE螳溯」・・ス・ス縺励・
蜀・・ス・ス逧・・ス・ス縺ッ setInterval 遲峨〒 next 繧剃ク螳夐俣髫斐〒蜻シ縺ウ蜃コ縺吶・
runtime 譛ャ菴難ソスE莉墓ァ倥→縺励※縺ッ縲掲rame 蜀咲函 API縲阪′縺ェ縺上※繧ゅh縺上・
螳溯」・・ス・ス繧句エ蜷茨ソスE hub.core.runtime.* 縺ィ縺励※蛻・騾泌ョ夂セゥ縺吶k縲・
frame UI 縺ョ隕∽サカ・スE・スE
- frame ID 螟画峩縺ッ 蟶ク縺ォ
hub.core.frame.*邨檎罰 縺ィ縺吶k縲・ - UI 莉・螟厄シ・eyboardInput・スE・ス縺九i・スE螟画峩縺ッ縲~frameUiLoop` 縺ォ繧医j繧ケ繝ゥ繧、繝繝サ繝ゥ繝吶Ν縺ク蜿肴丐縺吶k縲・
- 繝槭え繧ケ繝帙う繝シ繝ォ縺ッ v1 縺ァ縺ッ Zoom 蟆ら畑 縺ィ縺励’rame 螟画峩縺ォ縺ッ菴ソ繧上↑縺・・ス・スE
3.4.2 Layer 繝輔ぅ繝ォ繧ソ
points / lines / aux 縺ョ陦ィ遉コ蛻・・ス・ス UI 繧呈戟縺、縲・
- 繝懊ち繝ウ・スE・スE
#filter-points#filter-lines#filter-aux
- 陦ィ遉コ迥カ諷具シ・
filter-on/filter-off繧ッ繝ゥ繧ケ縺ィ邨オ譁・・ス・ス・芋汨・/ 刪・スE・ス縺ァ陦ィ迴セ縲・
- 繝ュ繧ク繝・・ス・ス・スE・スE
- 蜷・・スE繧ソ繝ウ縺ッ
filters.setTypeEnabled(kind, enabled)繧貞他縺カ縲・ filters.get()縺ョ邨先棡縺九i UI 迥カ諷九r蜷梧悄縺吶k縲・
- 蜷・・スE繧ソ繝ウ縺ッ
蜀・・ス・ス縺ァ縺ッ・スE・スE
hub.core.filters.setTypeEnabled(kind, enabled)
竊・visibilityController.setTypeFilter縺・uiState.filters.types.*縺ィvisibleSet繧呈峩譁ー縺吶k縲・hub.core.filters.get()
竊・迴セ蝨ィ縺ョFiltersState繧定ソ斐☆縲・
3.4.3 Mode / Focus 謫堺ス懶シ・acro / micro + meso optional・スE・スE
-
mode 繝斐Ν・スE・スEUD・スE・スE
- 陦ィ遉コ縺ョ縺ソ繧貞渕譛ャ縺ィ縺吶k・スE・ス繧ッ繝ェ繝・・ス・ス蛻・・ス・ス縺ッ蠢・・ス・ス縺ァ縺ッ縺ェ縺・・ス・ス縲・
- host / dev harness 縺ッ
hub.core.mode.getSupported()繧貞盾辣ァ縺励・meso === false縺ョ蝣エ蜷茨ソスE MESO 陦ィ遉コ繧抵ソスE縺輔↑縺・・ス・ス縺セ縺滂ソスE disabled 陦ィ遉コ・スE・ス縲・
-
focus 繝医げ繝ォ繝懊ち繝ウ・スE・スE#mode-focus-toggle`・スE・スE
- 繧ッ繝ェ繝・・ス・ス譎ゑシ・
- 迴セ蝨ィ selection 繧貞叙蠕暦シ・hub.core.selection.get()`・スE・ス縲・
sel.uuid縺後≠繧鯉ソスEhub.core.mode.set("micro", sel.uuid)繧貞他縺カ縲・set()縺・false繧定ソ斐@縺溷エ蜷茨ソスE菴輔b縺励↑縺・・ス・ス蠢・・ス・ス縺ェ繧・HUD 繝茨ソスE繧ケ繝医〒騾夂衍・スE・ス縲・
- 繧ッ繝ェ繝・・ス・ス譎ゑシ・
-
MESO pill / 繝懊ち繝ウ・スE・スEptional・スE・スE
hub.core.mode.getSupported().meso === true縺ョ縺ィ縺搾ソスE縺ソ UI 繧抵ソスE縺励※繧医>縲・- 繧ッ繝ェ繝・・ス・ス譎ゑシ・
- selection 縺後≠繧鯉ソスE
hub.core.mode.set("meso", sel.uuid)繧貞他縺カ縲・ - 縺溘□縺・v1 螳溯」・・ス・ス縺ッ meso 縺ッ *macro 逶ク蠖難シ・icroFX 辟。縺暦シ・ 縺ィ縺励※謇ア縺」縺ヲ繧医¥縲・ 隕九◆逶ョ縺ョ蟾ョ蛻・・ス・ス辟。縺上※繧ゆサ墓ァ倬&蜿阪〒縺ッ縺ェ縺・・ス・スE
- selection 縺後≠繧鯉ソスE
meso === false縺ョ迺ー蠅・・ス・ス縺ッset("meso", ...)縺ッfalse繧定ソ斐@縲∫憾諷具ソスE螟峨∴縺ェ縺・・ス・スE
mode 縺ィ microFX 縺ョ隧ウ邏ー繝ォ繝シ繝ォ縺ッ 6.8 遽繝サruntime_spec 繧呈ュ」縺ィ縺励・ 譛ャ遽縺ッ縲袈I 縺九i蜻シ縺カ API 繝代ち繝シ繝ウ縲阪→縲稽eso optional縲搾ソスE譚。莉カ縺縺代r螳夂セゥ縺吶k縲・
3.5 蜈・蜉帶桃菴懶シ・ointerInput / KeyboardInput・スE・スE
蜈・蜉帶桃菴懶ソスE runtime 螻、縺ァ縺ッ縺ェ縺・**UI 繝ャ繧、繝、・スE・スEiewer/ui/・スE・スE 縺ォ髮・・ス・スE・ス・ス繧九・
- PointerInput / KeyboardInput 縺ッ Host / dev harness 蛛エ縺ァ
new縺励…anvas / window 縺ォ繧、繝吶Φ繝医r謗・邯壹☆繧九・ - runtime 螻、・スE・スEuntime/*・スE・ス縺九aEPointerInput / KeyboardInput 繧・import / new 縺吶k縺薙→縺ッ遖∵ュ「縺吶k縲・
- 蜈・蜉帙う繝吶Φ繝茨ソスE蠢・・ス・ス
hub.core.*/hub.pickObjectAt縺ォ繝槭ャ繝斐Φ繧ー縺励,ameraEngine 繧・three.js 繧堤峩謗・隗ヲ繧峨↑縺・・ス・スE
3.5.1 PointerInput・スE・ス・スE繧ヲ繧ケ / 繧ソ繝・・ス・ス・スE・スE
PointerInput 縺ョ雋ャ蜍呻シ・
- 繧ュ繝」繝ウ繝舌せ荳奇ソスE繝昴う繝ウ繧ソ謫堺ス懊r荳謇九↓髮・・ス・スE・ス・ス繧九・
- camera / selection / mode 縺ク縺ョ螟画峩縺ッ hub.core. 邨檎罰* 縺ァ陦後≧縲・
- renderer 繧・three.js 繧堤峩謗・隗ヲ繧峨↑縺・・ス・スE 驟咲スョ・スE・スE
viewer/ui/pointerInput.js縺ォ鄂ョ縺擾シ・I 繝ャ繧、繝、・スE・ス縲・- runtime 縺九i蜿ゑソスE縺励↑縺・・ス・ス謗・邯夲ソスE host・スE・スEiewerDevHarness 遲会シ峨′陦後≧縲・
v1 縺ョ讓呎コ厄ソスE繝・・ス・ス繝ウ繧ー・スE・ス・スE繧ヲ繧ケ・スE・ス・・
- 蟾ヲ繝峨Λ繝・・ス・ス・スE・スorbit・スE・ス繧ォ繝。繝ゥ蝗櫁サ「・スE・スE
- 蜿ウ繝峨Λ繝・・ス・ス or 荳ュ繝峨Λ繝・・ス・ス・スE・スpan・スE・ス繧ォ繝。繝ゥ蟷ウ陦檎ァサ蜍包シ・
- 繝帙う繝シ繝ォ・スE・スzoom・スE・ス蜑榊セ鯉シ・
- 繧ッ繝ェ繝・・ス・ス・スE・スE
- click / pointerup 譎ゅ↓ canvas 蠎ァ讓・竊・NDC 螟画鋤縺励・
hub.pickObjectAt(ndcX, ndcY)繧貞他縺ウ縲・- 繝偵ャ繝医@縺・uuid 縺後≠繧鯉ソスE
hub.core.selection.select(uuid)繧貞他縺カ縲・ - 縺晢ソスE邨先棡縲[ode / microFX 縺ッ core 蛛エ縺ァ蜀崎ィ育ョ励&繧後k縲・
豕ィ諢擾シ・
- Frame 縺ョ蠅玲ク帙r繝槭え繧ケ繝帙う繝シ繝ォ縺ォ蜑イ繧雁ス薙※繧九%縺ィ縺ッ遖∵ュ「・スE・スE.4.1 蜿ゑソスE・スE・ス縲・
- 繝「繝シ繝会ソスE遘サ譚。莉カ・スE・スEanEnter / exit 縺ェ縺ゥ・スE・ス・スE core/modeController 縺ョ雋ャ蜍吶→縺励・ PointerInput 縺ッ縲慶lick 竊・select縲阪∪縺ァ縺ァ豁「繧√k縲・
3.5.2 KeyboardInput・スE・ス繧ュ繝シ繝懶ソスE繝会シ・
KeyboardInput 縺ョ雋ャ蜍呻シ・
window縺ョkeydown繧・1 邂・・ス・ス縺ォ髮・・ス・スE・ス・ス繧九・- core.camera / core.frame / core.mode / core.selection 縺ョ縺ソ 繧貞娼縺上・
- UI 隕∫エ・スE・スEOM・スE・ス繧・CameraEngine 縺ォ縺ッ逶エ謗・隗ヲ繧後↑縺・・ス・スE 驟咲スョ・スE・スE
viewer/ui/keyboardInput.js縺ォ鄂ョ縺擾シ・I 繝ャ繧、繝、・スE・ス縲・- runtime 縺九i蜿ゑソスE縺励↑縺・・ス・ス謗・邯夲ソスE host・スE・スEiewerDevHarness 遲会シ峨′陦後≧縲・
繧ュ繝シ蜈・蜉幢ソスE谺。縺ョ繝ォ繝シ繝ォ縺ォ蠕薙≧・スE・スE
-
蜈・蜉帶ャ・・ス・ス螟・
ev.target.tagName縺・INPUT/TEXTAREA縺ョ蝣エ蜷茨ソスE辟。隕悶・
-
Home・スE・ス繧ォ繝。繝ゥ HOME・スE・スE
ev.code === "Home"縺九▽core.camera.reset縺悟ュ伜惠縺吶k蝣エ蜷茨シ・ev.preventDefault()core.camera.reset()繧貞他縺カ縲・
-
Frame 謫堺ス懶シ・ageUp / PageDown・スE・スE
core.frame縺悟ュ伜惠縺吶k蝣エ蜷茨シ・PageUp窶ヲnextPageDown窶ヲprev
- frame 遽・・ス・ス螟悶∈縺ッ FrameController 蛛エ縺ァ繧ッ繝ゥ繝ウ繝励☆繧具シ・untime_spec 蜿ゑソスE・スE・ス縲・
-
Mode 蛻・・ス・ス・スE・スEsc・スE・スE
Escape・スE・スEmode.set("macro")
-
繧ォ繝。繝ゥ Zoom・スE・スE / -・スE・スE
+/NumpadAdd・スE・スEcamera.zoom(-ホ・・スE・ス蜑埼イ・スE・スE
-/NumpadSubtract・スE・スEcamera.zoom(+ホ・・スE・ス蠕碁・スE・スE
- ホ費シ・OOM_STEP・スE・ス・スE螳溯」・・スE縺ョ螳壽焚・スE・ス萓具シ・.1・スE・ス縺ィ縺吶k縲・
-
繧ォ繝。繝ゥ Orbit・スE・ス遏「蜊ー繧ュ繝シ・スE・スE
ArrowLeft窶ヲcamera.rotate(-step, 0)ArrowRight窶ヲcamera.rotate(+step, 0)ArrowUp窶ヲcamera.rotate(0, -step)・スE・ス荳翫↓繝√Ν繝茨シ・ArrowDown窶ヲcamera.rotate(0, +step)・スE・ス荳九↓繝√Ν繝茨シ・Shift謚シ縺励〒 step 繧貞「励d縺励∵掠蝗槭@縺ィ縺吶k・スE・ス萓具シ・ツー 竊・4ツー・スE・ス縲・
dev viewer 縺ァ縺ッ縲√%繧後↓蜉縺医※繝擾ソスE繝阪せ蛛エ縺ァ谺。繧定ソス蜉縺励※繧医>・スE・スE
Space・スE・スE- 蜀咲函繝懊ち繝ウ・スE・スE#btn-play`・スE・ス・スE click 繧剃サ」逅・・ス・ス轣ォ縺励’rame 蜀咲函繧偵ヨ繧ー繝ォ縺吶k縲・
- 縺薙l縺ッ viewer_dev 蟆ら畑繧キ繝ァ繝シ繝医き繝・・ス・ス 縺ィ縺励〉untime 譛ャ菴謎サ墓ァ倥↓縺ッ蜷ォ繧√↑縺・・ス・スE
3.6 dev viewer 蝗コ譛会ソスE諡。蠑オ
viewer_dev・スE・ス髢狗匱逕ィ harness・スE・ス・スE縲∵悽逡ェ viewer 縺ォ蜷ォ繧√↑縺・・ス・ス蜉ゥ讖滂ソスE繧呈戟縺、・スE・スE
window.hub窶ヲviewerHub縺ク縺ョ繝・・ス・ス繝・・ス・ス逕ィ蜿ゑソスEwindow.viewerLog(line)窶ヲ Model 繝代ロ繝ォ縺ク縺ョ繝ュ繧ー霑ス險・window.viewerToast(text, options)窶ヲ HUD 繝茨ソスE繧ケ繝郁。ィ遉コ- 襍キ蜍墓凾 devBootLog
BOOT / MODEL / CAMERA / LAYERS / FRAME縺ョ 5 陦後r Model 繝代ロ繝ォ縺ク陦ィ遉コ
- gizmo HOME / axis 繝懊ち繝ウ
- 繧ォ繝。繝ゥ謫堺ス懊さ繝槭Φ繝会ソスE繧キ繝ァ繝シ繝医き繝・・ス・ス・スE・スEeset / snapToAxis・スE・スE
縺薙l繧会ソスE *縲碁幕逋コ謾ッ謠エ讖滂ソスE縲・ 縺ィ縺励※謇ア縺・・ス・スE 譛ャ逡ェ viewer 莉墓ァ假シ域ゥ滂ソスE隕∽サカ・スE・ス縺ォ縺ッ蜷ォ繧√↑縺・・ス・スE 縺溘□縺励∝ー・・ス・ス host 繧「繝励Μ縺ァ蜀榊茜逕ィ縺励◆縺・・ス・ス蜷医↓蛯吶∴縲・ 蜷榊燕繝サ雋ャ蜍呻ソスE譛ャ遶縺ョ螳夂セゥ縺九i螟ァ縺阪¥螟悶l縺ェ縺・・ス・ス縺・・ス・ス縺吶k縲・
4 荳画ャ。蜈・・ス・ス逕サ縺ィ繧ォ繝。繝ゥ・スE・スEiewer・スE・スE
viewer 縺ョ謠冗判繧キ繧ケ繝・・ス・ス縺ッ modeler 縺ィ蜷後§ three.js 繧堤畑縺・・ス・ス縺後・ 髢イ隕ァ蟆ら畑繧「繝励Μ縺ィ縺励※ 騾擾ソスE諤ァ繝サ蠢螳滓ァ繝サ髱樒キィ髮・・ス・ス 繧呈怙蜆ェ蜈医☆繧九・
譛ャ遶縺ァ縺ッ縲〉enderer 螻、縺ィ CameraEngine 繧剃クュ蠢・・ス・ス縲・ 荳画ャ。蜈・・ス・ス逕サ繝サvisibleSet繝サmicroFX繝サ繧ォ繝。繝ゥ謖吝虚縺ョ隕冗ッ・・ス・ス螳夂セゥ縺吶k縲・
窶サ 蜈・蜉帙Ξ繧、繝、・スE・スEointerInput / KeyboardInput・スE・ス・スE 3 遶縲√♀繧茨ソスE runtime_spec 繧呈ュ」縺ィ縺吶k縲・
譛ャ遶縺ァ縺ッ縲鯉ソスE蜉帶ク医∩縺ョ迥カ諷九′ renderer 縺ォ縺ゥ縺・・ス・ス譏縺輔l繧九°縲阪r謇ア縺・・ス・スE
4.1 謠冗判繝ャ繧、繝、讒矩
viewer 縺ョ謠冗判繝ャ繧、繝、讒矩縺ッ谺。縺ョ騾壹j縺ィ縺吶k・スE・スE
- Core 螻、・スE・スEuntime/core・スE・スE
uiState/CameraEngine/frameControllerselectionController/modeControllervisibilityController/microController- 3DSS 讒矩・スE・スEmmutable・スE・ス縺ィ蜷・・ス・ス index 繧剃ソ晄戟
- Renderer 螻、・スE・スEuntime/renderer・スE・スE
createRendererContext(canvas)縺・three.js 縺セ繧上j繧剃ク謇九↓諡・・ス・スE- three.js 縺ョ Scene / Camera / Renderer / light / Object3D 鄒、繧抵ソスE驛ィ縺ォ菫晄戟
- microFX・スE・スExes / bounds / glow / marker / highlight・スE・ス繧貞性繧
- Hub 螻、・スE・スEuntime/viewerHub・スE・スE
core縺ィrenderer繧偵∪縺ィ繧√・ 豈弱ヵ繝ャ繝シ繝uiState縺ョ繧ケ繝翫ャ繝励す繝ァ繝・・ス・ス繧・renderer 縺ォ豬√☆hub.start()/hub.stop()縺ォ繧医k render loop 繧貞腰荳邂・・ス・ス縺ァ邂。逅・
4.1.1 謇譛画ィゥ縺ィ遖∵ュ「莠矩・
- 3DSS document・スE・ス讒矩繝・・スE繧ソ・スE・スE
- Core 螻、縺・deep-freeze 貂医∩縺ョ繧ェ繝悶ず繧ァ繧ッ繝医→縺励※菫晄戟
- Renderer 螻、縺ッ 蜿ゑソスE縺ョ縺ソ 險ア蜿ッ縲∵嶌縺肴鋤縺育ヲ∵ュ「
- uiState / visibleSet / microState / cameraState
- Core 螻、縺悟髪荳縺ョ豁」隕乗園譛芽・
- Renderer 螻、縺ッ hub 邨檎罰縺ァ 隱ュ縺ソ蜿悶j蟆ら畑 縺ィ縺励※蜿励¢蜿悶j縲∝渚譏縺ョ縺ソ陦後≧
- three.js Object3D 鄒、
- Renderer 螻、縺梧園譛・
- Core / UI / hub 縺ッ Object3D 繧堤峩謗・隗ヲ繧峨↑縺・・ス・スEUID 遲峨〒蜿ゑソスE縺吶k縺ョ縺ソ・スE・スE
4.1.2 frame 竊・visibleSet 竊・renderer 縺ョ豬√l・スE・ス豁」隕上Ν繝シ繝茨シ・
-
Core 縺ョ frameController 縺・
uiState.frame.current繧呈峩譁ー縺吶k縲・ -
Core 縺ッ 蠢・・ス・ス
core.recomputeVisibleSet()繧貞他縺カ縲・- 縺薙l縺・visibleSet 蜀崎ィ育ョ暦ソスE 蜚ッ荳縺ョ蜈・蜿」 縺ィ縺吶k縲・
- 蜀・・ス・ス縺ァ frames / appearance.visible / filters・スE・スEoints/lines/aux・スE・ス繧貞粋・スE縺励・
uiState.visibleSet: Set<uuid>繧呈峩譁ー縺吶k縲・
-
hub 縺ョ 1 繝輔Ξ繝シ繝 tick 縺ァ縲・
renderer.applyFrame(uiState.visibleSet)・スE・ス縺セ縺滂ソスE蜷檎ュ陰PI・スE・ス縺悟他縺ー繧後・- 蜷・Object3D 縺ョ
obj.visible縺・UUID 繝呻ソスE繧ケ縺ァ譖エ譁ー縺輔l繧九・
Renderer 縺ッ visibleSet 莉・螟厄ソスE譚。莉カ縺ァ base object 縺ョ陦ィ遉コ・スE・ス髱櫁。ィ遉コ繧貞享謇九↓豎コ繧√※縺ッ縺ェ繧峨↑縺・・ス・スE ・スE・スEverlay / microFX 逕ィ縺ョ霑ス蜉 Object3D 縺ッ縺難ソスE蛻カ邏・・スE蟇セ雎。螟厄シ・
4.2 謠冗判蟇セ雎。隕∫エ・スE・スEoints / lines / aux・スE・スE
4.2.1 Points
points 縺ッ縲檎ゥコ髢謎ク奇ソスE莉」陦ィ轤ケ縲阪→縺励※謠冗判縺吶k縲・
- 蜿ゑソスE蜈・・ス・スE
points[*].positionpoints[*].appearance・スE・スEolor / opacity / marker 縺ェ縺ゥ・スE・スE
- 譛菴手ヲ∽サカ・スE・スE
- 蜷・point 縺ォ縺、縺・1 縺、縺ョ Object3D・スE・ス騾壼クク縺ッ蟆上&縺ェ逅・or billboard・スE・ス繧堤函・スE縺吶k縲・
- color / opacity 縺ッ appearance.* 縺ョ蛟、繧偵◎縺ョ縺セ縺セ蜿肴丐縺吶k縲・
- 霑ス蜉陦ィ迴セ・スE・スEptional・スE・ス・・
- microFX 縺ォ繧医k glow / marker 縺ョ荳贋ケ励○
- selection 縺ォ繧医k繝上う繝ゥ繧、繝茨シ郁牡・スE・ス螟ェ縺包シ冗匱蜈会シ・
points 縺ォ髢「縺励※ viewer 縺ッ **菴咲スョ縺ョ陬憺俣繧・・ス・ス繧√r陦後o縺ェ縺・*縲・ position 繝吶け繝医Ν縺ッ 3DSS JSON 縺ョ蛟、繧偵◎縺ョ縺セ縺セ world 蠎ァ讓吶→縺励※逕ィ縺・・ス・ス縲・
4.2.2 Lines
lines 縺ッ縲継oints 蜷悟」ォ縺ョ謗・邯夲シ茨ソスE繧ッ繝医Ν・スE・ス縲阪→縺励※謠冗判縺吶k縲・
- 蜿ゑソスE蜈・・ス・スE
lines[*].end_a.ref/end_b.ref縺九i point UUID 繧定ァ」豎コlines[*].appearance.shape/arrow/effect/color/opacity縺ェ縺ゥ
- 譛菴手ヲ∽サカ・スE・スE
- ref 縺ッ strict validation 縺ォ繧医j謨エ蜷医′菫晁ィシ縺輔l繧九・
- Renderer 縺ッ
end_a.ref/end_b.ref繧貞ソ・・ス・ス隗」豎コ縺ァ縺阪k蜑肴署縺ァ謠冗判縺吶k縲・ - 繧ゅ@隗」豎コ縺ァ縺阪↑縺・・ス・ス蜷医√◎繧鯉ソスE縲瑚ェュ霎シ諡貞凄縺輔l繧九∋縺搾ソスE蜉帙阪∪縺滂ソスE縲悟ョ溯」・・ス・ス繧ー縲阪→縺励※謇ア縺・・ス・スE
- 縲瑚ァ」豎コ縺ァ縺阪◆蛻・・ス・ス縺第緒逕サ縺吶k・スE・スEartial rendering・スE・ス縲搾ソスE陦後o縺ェ縺・・ス・スE
- 邂ュ鬆ュ・スE・スErrow・スE・ス・・
arrow.shape/arrow.placement縺ョ蛟、繧偵◎縺ョ縺セ縺セ蜿肴丐縺吶k縲・- 莉墓ァ倥→縺励※縺ッ 3DSS 縺ョ螳夂セゥ繧呈ュ」縺ィ縺励」iewer 蛛エ縺ァ蜍晄焔縺ォ陬懈ュ」繝サ諡。蠑オ縺励↑縺・・ス・スE
- effect:
effect: none | flow | glow | pulse縺ッ *謠冗判髯仙ョ夲ソスE隕冶ヲ壼柑譫・ 縺ィ縺励※謇ア縺・・ス・スEnone縺ッ霑ス蜉縺ョ隕冶ヲ壼柑譫懊↑縺励r諢丞袖縺吶k縲・
lineWidth 縺ォ縺、縺・・ス・ス・スE・スE
- WebGL 螳溯」・・ス・ス繧医j 1px 莉・荳九d蝗コ螳壼ケ・・ス・ス縺ェ繧狗腸蠅・・ス・ス蟄伜惠縺吶k縲・
- viewer 縺ッ蜀・・ス・ス縺ォ
line_width_mode: auto | fixed | adaptive縺ョ讎ょソオ繧呈戟縺」縺ヲ繧医>縺後・- v1 螳溯」・・ス・ス縺ッ *auto 蝗コ螳・ 縺ィ縺励・
- 莉悶Δ繝シ繝会ソスE縲悟ー・・ス・ス諡。蠑オ蛟呵」懊阪→縺励※譛ャ莉墓ァ倥↓谿九☆縺ォ逡吶a繧九・
4.2.3 Aux
aux 縺ッ points / lines 莉・螟厄ソスE陬懷勧逧・・ス・ス逕サ隕∫エ縺ァ縺ゅk縲・
莉」陦ィ逧・・ス・ス module 縺ィ v1 縺ォ縺翫¢繧区桶縺・・ス・ス・・
| module 蜷・ | 繧ケ繧ュ繝シ繝・ | Viewer v1 縺ョ謇ア縺・ | 蛯呵・ |
|---|---|---|---|
grid | 縺ゅj | 謠冗判蠢・・ス・ス・井ソ晁ィシ・スE・スE | ground 繧ー繝ェ繝・・ス・ス縲ょ渕譛ャ繝代Λ繝。繝シ繧ソ縺ョ縺ソ蟇セ蠢懊〒蜿ッ縲・ |
axis | 縺ゅj | 謠冗判莉サ諢擾ソスE辟。隕門庄 | 讒矩螻、縺ョ霆ク縲・UD 縺ョ gizmo axis 縺ィ縺ッ蛻・迚ゥ縲・ |
plate | 縺ゅj | 謠冗判莉サ諢擾ソスE辟。隕門庄 | 蠎奇ソスE繝ャ繝シ繝茨シ剰レ譎ッ譚ソ縲W1 縺ァ縺ッ髱槫ソ・・ス・ス縲・ |
shell | 縺ゅj | 謠冗判莉サ諢擾ソスE辟。隕門庄 | 螟也坩陦ィ迴セ縲W1 縺ァ縺ッ髱槫ソ・・ス・ス縲・ |
hud | 縺ゅj | 謠冗判莉サ諢擾ソスE辟。隕門庄 | 讒矩蛛エ HUD縲7iewer UI 縺ァ莉」譖ソ縺吶k諠ウ螳壹・ |
v1 縺ァ縺ッ grid 莉・螟厄ソスE aux module 縺ッ縲悟ュ伜惠縺励※繧ら┌隕門庄縲阪→縺励・ 蟆・・ス・ス蟇セ蠢懈凾縺ォ縺ョ縺ソ譛ャ陦ィ繧呈峩譁ー縺吶k縲・
4.3 frame・スE・ス譎る俣螻、・スE・ス縺ィ陦ィ遉コ蛻カ蠕。
4.3.1 陦ィ遉コ繝ォ繝シ繝ォ
uiState.frame.current = n 縺ョ縺ィ縺阪∬。ィ遉コ繝ォ繝シ繝ォ縺ッ谺。縺ョ騾壹j・スE・スE
- uiState.frame.current == n
竊・frames縺ォ n 繧貞性繧隕∫エ縺ョ縺ソ陦ィ遉コ - uiState.frame.current 縺・null
竊・frames繧堤┌隕悶@縺ヲ蜈ィ隕∫エ繧定。ィ遉コ・スE・スErame 繝輔ぅ繝ォ繧ソ OFF・スE・スE - frames 縺梧悴螳夂セゥ縺セ縺滂ソスE遨コ
竊・蟶ク譎り。ィ遉コ・スE・スEiState.frame.current 縺ォ萓晏ュ倥@縺ェ縺・・ス・スE - frame 蛻・・ス・ス縺ッ UI 迥カ諷具シ・iState.frame・スE・ス・スE譖エ譁ー縺ョ縺ソ縺ァ陦後>縲・ 讒矩繝・・スE繧ソ・スE・スEDSS JSON・スE・ス・スE螟画峩縺励↑縺・・ス・スE
4.3.2 Core / Renderer 縺ョ雋ャ蜍呻ソスE髮「
- Core・スE・スE
frameController.set / step / range縺ォ繧医juiState.frame繧呈峩譁ー縺吶k縲・visibilityController.recompute()縺ァuiState.visibleSet繧抵ソスE險育ョ励☆繧九・
- Renderer・スE・スE
renderer.applyFrame(uiState.visibleSet)縺ァobj.visible繧呈峩譁ー縺吶k縲・- frame ID 繧・frames 驟搾ソスE繧堤峩謗・隱ュ繧縺薙→縺ッ遖∵ュ「縲・
frames 縺ョ謗ィ貂ャ繝サ陬懷ョ鯉ソスE陬懈ュ」縺ッ陦後o縺ェ縺・・ス・スE 3DSS 縺ォ蜈・縺」縺ヲ縺・・ス・ス frames 諠・・ス・ス縺ョ縺ソ繧呈ュ」縺ィ縺吶k縲・
4.4 microFX 繝ャ繧、繝、縺ィ selection / mode
microFX 縺ッ縲瑚ヲ冶ヲ夊」懷勧繝ャ繧、繝、縲阪〒縺ゅj縲∵ァ矩繝・・スE繧ソ縺ォ縺ッ荳蛻・・ス・ス髻ソ縺励↑縺・・ス・スE
renderer 蜀・・スE microFX/* 繝「繧ク繝・繝シ繝ォ縺ィ縺励※螳溯」・・ス・ス繧後k縲・
4.4.1 蜈・蜃コ蜉帙→ invariants
- 蜈・蜉幢シ・
uiState.microState・スE・スEicroFXPayload・スE・スEuiState.selection- scene metrics・スE・ス荳ュ蠢・・スE蜊雁セ・・ス・ス縺ゥ・スE・スE
- 蜃コ蜉幢シ・
- 譌「蟄・Object3D 縺ョ color / opacity / scale 縺ェ縺ゥ縺ョ荳頑嶌縺・
- 霑ス蜉縺ョ overlay Object3D・スE・スExes / bounds / marker / glow / highlight・スE・ス鄒、
- 荳榊、画擅莉カ・スE・スE
- 3DSS document 縺ッ豎コ縺励※螟画峩縺励↑縺・・ス・スE
- baseStyle・スE・ス・スE縺ョ濶イ繝サ荳埼擾ソスE蠎ヲ・スE・ス・スE蠢・・ス・ス菫晄戟縺励[icroFX OFF 縺ァ螳鯉ソスE蠕ゥ蜈・・ス・ス縺阪k縲・
- 蠎ァ讓咏ウサ縺ッ 3DSS 縺ィ蜷後§縲蛍nitless 縺ェ world 蠎ァ讓咏ウサ縲阪→縺励}x 縺ェ縺ゥ縺ョ逕サ邏蜊倅ス阪r謖√■霎シ縺セ縺ェ縺・・ス・スE
4.4.2 microFX 繝「繧ク繝・繝シ繝ォ縺ョ蠖ケ蜑イ
莉」陦ィ逧・・ス・ス繝「繧ク繝・繝シ繝ォ縺ョ雋ャ蜍呻シ・
axes・スE・スE- focus 隕∫エ縺セ繧上j縺ョ繝ュ繝シ繧ォ繝ォ霆ク繧堤ー。譏楢。ィ遉コ縺吶k縲・
- scene 蜊雁セ・・ス・ス繧ォ繝。繝ゥ霍晞屬縺九i繧ケ繧ア繝シ繝ォ繧呈アコ繧√∝クク縺ォ隱ュ縺ソ繧・・ス・ス縺・・ス・ス縺阪&縺ォ菫昴▽縲・
bounds・スE・スE- focus 繧ッ繝ゥ繧ケ繧ソ縺ョ AABB・スE・ス霆ク蟷ウ陦悟「・・ス・ス繝懊ャ繧ッ繧ケ・スE・ス繧呈緒縺上・
- shrinkFactor 縺ォ繧医j蟆代@蜀・・スE縺ォ邵ョ繧√※謠上¥縺薙→縺ァ隕冶ェ肴ァ繧剃ク翫£繧九・
marker・スE・スE- focus 菴咲スョ縺ォ蟆上&縺ェ繝橸ソスE繧ォ繝シ繧抵ソスE鄂ョ縺吶k・スE・ス轤ケ or 遏「蜊ー・スE・ス縲・
glow・スE・スE- focus 隕∫エ縺ォ蟇セ縺励※ halo 逧・・ス・ス glow 繧定ソス蜉縺吶k縲・
highlight・スE・スEmicroState.relatedUuids縺ォ蜷ォ縺セ繧後k隕∫エ鄒、繧偵後↑縺槭k縲阪が繝シ繝撰ソスE繝ャ繧、繧呈緒逕サ縺励・- 讒矩逧・・ス・ス菫ゑシ郁ソ大m・スE・ス邨瑚キッ縺ェ縺ゥ・スE・ス繧貞シキ隱ソ縺吶k縲・
microState 縺ョ隧ウ邏ー縺ェ蠖「縺ッ 7.11 遽縺翫h縺ウ runtime_spec 縺ョ MicroFXPayload 繧呈ュ」縺ィ縺吶k縲・
譛ャ遶縺ァ縺ッ縲罫enderer 縺御ス輔r縺励※繧医>縺具シ上@縺ヲ縺ッ縺ェ繧峨↑縺・・ス・ス縲阪□縺代r螳夂セゥ縺吶k縲・
4.4.3 譁懊a邱壹す繝」繝峨え・スE・ス蟆・・ス・ス諡。蠑オ・スE・スE
譁懊a邱夲シ・on-axis-aligned line・スE・ス縺ォ蟇セ縺吶k繧キ繝」繝峨え陦ィ迴セ・スE・スEhadow Convention・スE・ス・スE縲・ microFX 縺ョ蟆・・ス・ス諡。蠑オ譯医→縺励※莉墓ァ倅ク翫↓菫晄戟縺吶k・スE・スE
- 蟇セ雎。・スE・スE
- 繝吶け繝医Ν v = (dx, dy, dz) 縺ォ縺翫>縺ヲ隍・・ス・ス霆ク縺ォ髱槭ぞ繝ュ謌撰ソスE繧呈戟縺、邱夲ソスE縲・
- 譁ケ驥晢シ・
- 蜷・・ス・ス謌撰ソスE縺斐→縺ォ縲悟スア邱壹阪r關ス縺ィ縺励∵婿蜷第─縺ィ螂・陦後″繧定」懷勧縺吶k縲・
- 螳溯」・・ス・ス辟。・スE・スE
- v1 縺ョ蠢・・ス・ス隕∽サカ縺ァ縺ッ縺ェ縺・・ス・スE
- 螳溯」・・ス・ス繧句エ蜷茨ソスE 3DSS 繧剃ク蛻・・ス・ス譖エ縺帙★縲[icroFX 縺縺代〒螳檎オ舌&縺帙k縲・
隧ウ邏ー縺ェ豼・・ス・ス繧・・ス・ス蜷題ヲ冗ッ・・スE譌ァ 4.7 遽縺ョ譯医r蜿り・・ス・ス縺励※繧医>縺後・ 譛ャ莉墓ァ倥〒縺ッ縲御ササ諢丞ョ溯」・・ス・ス縺ィ縺励※謇ア縺・・ス・スE
4.5 繧ォ繝。繝ゥ莉墓ァ假シ磯夢隕ァ逕ィ CameraEngine・スE・スE
繧ォ繝。繝ゥ縺ッ CameraEngine 縺ォ繧医▲縺ヲ荳蜈・・ス・ス逅・・ス・ス繧後k縲・
cameraState 縺ッ Core 螻、縺梧戟縺。縲〉enderer 縺ッ豈弱ヵ繝ャ繝シ繝縺昴l繧貞女縺大叙縺」縺ヲ蜿肴丐縺吶k縲・
4.5.1 遨コ髢灘コァ讓咏ウサ縺ィ繧ォ繝。繝ゥ迥カ諷・
遨コ髢灘コァ讓咏ウサ・スE・スE
- 蜿ウ謇狗ウサ繧貞燕謠舌→縺励・
Z+繧堤オカ蟇セ荳頑婿蜷代→縺吶k・スE・スErid / axis 繧ゅ%繧後↓蠕薙≧・スE・ス縲・
cameraState 縺ョ蜈ャ髢句ス「・スE・スEub.core.camera.getState / 襍キ蜍輔Ο繧ー・スE・ス・スE谺。繧呈ュ」縺ィ縺吶k・スE・スE
cameraState = {
position: [number, number, number], // world
target: [number, number, number], // world
fov: number, // deg
// optional: 謫堺ス懃ウサ縺ョ蜀・・ス・ス陦ィ迴セ・スE・ス螳溯」・・ス・ス蠢・・ス・ス縺ェ繧我スオ險倥@縺ヲ繧医>・スE・スE
theta?: number,
phi?: number,
distance?: number,
}
- 襍キ蜍輔Ο繧ー CAMERA {…} 縺ッ蟆代↑縺上→繧・position/target/fov 繧貞性繧 JSON 繧抵ソスE蜉帙☆繧九・
- Renderer 縺ッ position/target/fov 繧貞女縺大叙繧翫√◎縺ョ縺セ縺セ camera 縺ォ蜿肴丐縺吶k縲・
- theta/phi/distance 縺ッ CameraEngine 縺ョ蜀・・ス・ス驛ス蜷医〒菫晄戟縺励※繧医>縺後・ソスE髢句ス「縺ィ遏帷崟縺輔○縺ェ縺・
4.5.2 蛻晄悄繧ォ繝。繝ゥ
bootstrapViewer 縺ァ縺ッ縲〉enderer 縺ョ scene metrics 縺九i蛻晄悄繧ォ繝。繝ゥ繧呈アコ繧√k・スE・スE
renderer.syncDocument()蠕後↓ scene 縺ョ bounding sphere・スE・スEenter, radius・スE・ス繧貞叙蠕励☆繧九・target = center縺ィ縺吶k縲・distance 竕・radius テ・2.4遞句コヲ髮「縺励∵ァ矩蜈ィ菴薙′逕サ髱「縺ォ蜿弱∪繧玖キ晞屬繧堤「コ菫昴☆繧九・theta / phi縺ッ繧上★縺九↓菫ッ迸ー・スE・ス繧・aE・ス・ス繧∽ク奇シ峨→縺ェ繧九h縺・・ス・ス險ュ螳壹☆繧九・
縺難ソスE蛻晄悄迥カ諷具ソスE uiState.cameraState 縺ォ縺ョ縺ソ菫晄戟縺励・
3DSS document 縺ク譖ク縺肴綾縺励※縺ッ縺ェ繧峨↑縺・・ス・スE
4.5.3 CameraEngine API
CameraEngine 縺ッ蟆代↑縺上→繧よャ。繧呈署萓帙☆繧具シ郁ゥウ邏ー縺ッ runtime_spec・スE・ス・・
rotate(dTheta, dPhi)theta += dTheta,phi += dPhi縺ィ縺励※ orbit 繧定。後≧縲・phi縺ッ讌オ轤ケ莉倩ソ代〒繧ッ繝ゥ繝ウ繝励@縲√き繝。繝ゥ縺ョ陬剰ソ斐j・スE・スEimbal lock・スE・ス繧帝∩縺代k縲・
pan(dx, dy)- 逕サ髱「蠎ァ讓咏ウサ縺ォ豐ソ縺」縺ヲ
target繧貞ケウ陦檎ァサ蜍輔☆繧九・ - distance / FOV 縺ォ蠢懊§縺ヲ pan 縺ョ螳溯キ晞屬繧偵せ繧ア繝シ繝ェ繝ウ繧ー縺吶k縲・
- 逕サ髱「蠎ァ讓咏ウサ縺ォ豐ソ縺」縺ヲ
zoom(delta)distance += delta縺ィ縺励※蜑榊セ檎ァサ蜍輔☆繧九・MIN_DISTANCE/MAX_DISTANCE縺ァ繧ッ繝ゥ繝ウ繝励☆繧九・- 繧ュ繝シ繝懶ソスE繝会シ擾ソスE繧、繝シ繝ォ縺ョ隨ヲ蜿キ隕冗エ・・スE縲瑚イ縺ァ蜑埼イ・スE・ス繧コ繝シ繝繧、繝ウ・スE・ス縲阪→縺吶k縲・
reset()- 蛻晄悄繧ォ繝。繝ゥ迥カ諷九↓謌サ縺呻シ・ootstrap 譎ゅ↓險倬鹸縺励※縺翫¥・スE・ス縲・
snapToAxis(axis: 'x' | 'y' | 'z')- 謖・・ス・ス霆ク譁ケ蜷代°繧画ァ矩繧剃ソッ迸ー縺吶k隗貞コヲ・スE・スEheta, phi・スE・ス縺ク繧ケ繝翫ャ繝励☆繧九・
- target / distance 縺ッ邯ュ謖√☆繧九・
setFOV(value)/setState(partial)/getState()
Renderer 蛛エ縺ァ縺ッ縲∵ッ弱ヵ繝ャ繝シ繝・スE・スE
camState = cameraEngine.getState()renderer.updateCamera(camState)renderer.render()
縺ィ縺・・ス・ス豬√l縺ァ蜿肴丐縺吶k縲・
4.5.4 蜈・蜉帙Ξ繧、繝、縺ィ縺ョ髢「菫・
- Mouse / Wheel / Keyboard / Gizmo 縺ェ縺ゥ縺ョ迚ゥ逅・・スE蜉幢ソスE縲・
- PointerInput / KeyboardInput / gizmo.js 縺悟女縺大叙繧翫・
hub.core.camera.rotate / pan / zoom / reset / snapToAxis縺縺代r蜻シ縺ウ蜃コ縺吶・
- CameraEngine 閾ェ菴薙r UI 繧・renderer 縺九i逶エ謗・蜿ゥ縺上%縺ィ縺ッ遖∵ュ「縺吶k縲・
蜈・蜉幢ソスE繝・・ス・ス繝ウ繧ー縺ョ隧ウ邏ー縺ッ 3.5 遽縺翫h縺ウ runtime_spec 縺ョ KeyboardInput / PointerInput 繧貞盾辣ァ縺吶k縲・
4.6 繧ォ繝。繝ゥ繝「繝シ繝会シ・acro / micro + meso optional・スE・ス縺ィ謠冗判
mode・スE・スEmacro” / “micro” / “meso”・スE・ス・スE縲後←縺ョ繧ケ繧ア繝シ繝ォ縺ァ讒矩繧定ヲ九k縺九阪r陦ィ縺吶・ uiState.mode 繧貞髪荳縺ョ豁」隕冗憾諷九→縺励[odeController 縺檎ョ。逅・・ス・ス繧九・
縺溘□縺・meso 縺ッ optional 縺ィ縺励」1 螳溯」・・ス・ス縺ッ *macro 逶ク蠖難シ・icroFX 辟。縺暦シ・ 縺ィ縺励※謇ア縺」縺ヲ繧医> ・スE・ス・拯eso 繧貞ョ溯」・・ス・ス縺ェ縺・/ 蜿礼炊縺励※繧りヲ九◆逶ョ縺・macro 縺ィ蜷御ク縲√←縺。繧峨〒繧ゆサ墓ァ倬&蜿阪〒縺ッ縺ェ縺・・ス・ス縲・
4.6.1 繝「繝シ繝牙ョ夂セゥ
| 繝「繝シ繝・ | 逕ィ騾・ | 隱ャ譏・ |
|---|---|---|
| macro | 蜈ィ菴謎ソッ迸ー | 繧キ繝シ繝ウ蜈ィ菴薙r菫ッ迸ー縺吶k蝓コ譛ャ繝「繝シ繝峨・ |
| meso | 霑大m繧ッ繝ゥ繧ケ繧ソ | optional縲W1 縺ァ縺ッ macro 逶ク蠖薙〒繧ょ庄・スE・スEicroFX 辟。縺暦シ峨ょー・・ス・ス縲・・ス・ス謚櫁ソ大m繧ッ繝ゥ繧ケ繧ソ隕ウ蟇溘↓諡。蠑オ縺励※繧医>縲・ |
| micro | 1 隕∫エ蜴溽せ | 1 隕∫エ繧貞次轤ケ縺ィ縺ソ縺ェ縺呵ソ第磁隕ウ蟇溘Δ繝シ繝峨・ |
- v1 縺ョ蠢・・ス・ス螳溯」・・スE macro / micro縲・
- meso 縺ッ譛ェ蟇セ蠢懊〒繧ゅh縺・・ス・ス譛ェ蟇セ蠢懈凾縲ゞI 縺ッ meso 繧抵ソスE縺輔↑縺・・ス・ス縺セ縺滂ソスE辟。蜉ケ蛹厄シ峨%縺ィ縲・
4.6.2 繝「繝シ繝峨→ microFX 縺ョ髢「菫ゑシ・1・スE・スE
-
macro
- microFX 縺ッ辟。蜉ケ・スE・スEuiState.microState = null`・スE・ス縲・
- 蜈ィ繧ェ繝悶ず繧ァ繧ッ繝医r baseStyle 縺ョ縺セ縺セ陦ィ遉コ縺吶k縲・
-
meso・スE・スEptional・スE・スE
- v1 縺ァ縺ッ macro 縺ィ蜷御ク謖吝虚縺ァ繧医>・スE・スEicroFX 辟。縺励[icroState 縺ッ null・スE・ス縲・
- 蟆・・ス・ス諡。蠑オ縺ァ microState 繧定ィ育ョ励@縺ヲ霑大m蠑キ隱ソ繝サ驕譁ケ繝輔ぉ繝シ繝臥ュ峨r螳溯」・・ス・ス縺ヲ繧医>縲・
-
micro
- focus 隕∫エ繧剃クュ蠢・・ス・ス縺励※ axes / bounds / glow / highlight 遲会ソスE microFX 繧帝←逕ィ縺吶k縲・
- 髱・focus 隕∫エ縺ッ繝輔ぉ繝シ繝峨@縲∝ア謇讒矩繧定ェュ繧√k縺薙→繧貞━蜈医☆繧九・
4.6.3 繝「繝シ繝会ソスE遘サ縺ィ selection・スE・スEeso optional・スE・スE
modeController 縺ッ谺。縺ョ繝ォ繝シ繝ォ繧呈コ縺溘☆・スE・スE
-
micro 縺ォ蜈・繧九→縺搾シ・
- selection 縺ォ uuid 縺後↑縺代l縺ー蜈・繧後↑縺・・ス・スE
- canEnter(uuid) 縺・false 縺ョ蝣エ蜷茨ソスE驕キ遘サ縺励↑縺・・ス・スE
-
meso 縺ォ蜈・繧九→縺搾シ・ptional・スE・ス・・
getSupported().meso === false縺ョ蝣エ蜷茨ソスE驕キ遘サ隕∵アゅr reject 縺吶k・スE・ス迥カ諷具ソスE螟峨∴縺ェ縺・・ス・ス縲・getSupported().meso === true縺ョ蝣エ蜷医〒繧ゅ」1 縺ァ縺ッ macro 逶ク蠖薙〒繧医>・スE・スEicroFX 辟。縺暦シ峨・
-
Esc 繧ュ繝シ・スE・スE
- 縺ゥ縺ョ繝「繝シ繝峨°繧峨〒繧・macro 縺ク謌サ繧具シ・election 縺ッ邯ュ謖√@縺ヲ繧医>・スE・ス縲・
-
frame 蜀咲函髢句ァ区凾・スE・ス謗ィ螂ィ・スE・ス・・
- mode 繧・macro 縺ォ謌サ縺励[icroFX 繧・OFF 縺ォ縺吶k縲・
繝「繝シ繝会ソスE遘サ縺ッ蠢・・ス・ス core.mode.set(mode, uuid?) 繧堤オ檎罰縺励・
renderer 蛛エ縺ァ迢ャ閾ェ縺ォ mode 繧貞愛螳壹@縺ヲ縺ッ縺・・ス・ス縺ェ縺・・ス・スE
4.7 謠冗判繝代ヵ繧ゥ繝シ繝槭Φ繧ケ隕∽サカ
viewer 縺ッ髢イ隕ァ蟆ら畑縺ァ縺ゅj縲∵ャ。繧堤岼讓吶→縺吶k・スE・スE
- frame 蛻・・ス・ス・スE・スE00ms 莉・蜀・
- 2000縲・000 隕∫エ縺ァ譏守「コ縺ェ驕・・ス・ス縺ェ縺・
- 繧ォ繝。繝ゥ謫堺ス懶シ・0fps 莉・荳奇シ亥ョ溯。檎腸蠅・・ス・ス蟄假シ・
- aux 蛻・・ス・ス・スE・ス繝ヲ繝シ繧カ謫堺ス懊°繧・1 繝輔Ξ繝シ繝莉・蜀・・ス・ス蜿肴丐
- selection / microFX・スE・スE 繝輔Ξ繝シ繝莉・蜀・・ス・ス隕冶ヲ夂噪螟牙喧縺瑚ヲ九∴繧九%縺ィ
繝代ヵ繧ゥ繝シ繝槭Φ繧ケ蜷台ク奇ソスE縺溘a縺ォ・スE・スE
- instancing / LOD / caching / frustum culling 縺ェ縺ゥ縺ョ譛驕ゥ蛹悶r陦後▲縺ヲ繧医>縲・
- 縺溘□縺励%繧後i縺ッ *viewer 蜀・・ス・ス縺ァ螳檎オ・ 縺輔○縲・DSS 繧・uiState 縺ョ諢丞袖繧貞、峨∴縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
萓九∴縺ー・スE・スE
- 驕譎ッ縺ァ縺ッ points 繧・billboard 縺ク關ス縺ィ縺・
- 髟キ螟ァ縺ェ polyline 繧定キ晞屬縺ォ蠢懊§縺ヲ邁。逡・蛹悶☆繧・
縺ィ縺・・ス・ス縺滓怙驕ゥ蛹厄ソスE險ア螳ケ縺輔l繧九′縲・ 蜈・・スE讒矩繝・・スE繧ソ縺後後%縺・・ス・ス縺」縺ヲ縺・・ス・ス縲阪→隱、隗」縺輔l繧九h縺・・ス・ス謠冗判縺ッ驕ソ縺代k縲・
4.8 謠冗判遖∵ュ「莠矩・・ス・スEiewer・スE・スE
viewer 縺ッ谺。縺ョ陦檎ぜ繧定。後▲縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
- 菴咲スョ縺ョ荳ク繧・ソスE陬懷ョ・
- 萓具シ壼コァ讓吶r蜍晄焔縺ォ謨エ謨ー縺ク荳ク繧√k縲∵シ蟄千せ縺ク繧ケ繝翫ャ繝励☆繧九√↑縺ゥ縲・
- 繧ク繧ェ繝。繝医Μ縺ョ謗ィ貂ャ繝サ陬懈ュ」
- 萓具シ壼コァ讓吶′霑代>縺九i縺ィ縺・・ス・ス縺ヲ閾ェ蜍輔〒謗・邯夂キ壹r霑ス蜉縺吶k縲・
- ref 謨エ蜷茨ソスE菫ョ蠕ゥ
- 萓具シ壼ュ伜惠縺励↑縺・UUID 縺ォ蟇セ縺励※縲後◎繧後i縺励>縲・point 繧貞享謇九↓陬懷ョ後☆繧九・
- 讒矩繝・・スE繧ソ縺ォ蟄伜惠縺励↑縺・・ス・ス邏縺ョ霑ス蜉
- 萓具シ夂キ夲ソスE繧定」懷ョ後☆繧九◆繧・ソスE縲御サョ諠ウ繝趣ソスE繝峨阪r 3DSS 荳翫↓逕溘d縺吶・
- 謠冗判迥カ諷九r JSON 縺ク譖ク縺肴綾縺・
- camera / frame / filters / selection 縺ェ縺ゥ縺ョ UI 迥カ諷九r 3DSS 縺ォ菫晏ュ倥@縺ェ縺・・ス・スE
- 繧ォ繝。繝ゥ迥カ諷具ソスE菫晏ュ假シ域ーク邯壼喧・スE・スE
- session 蜀・・ス・ス菫晄戟縺吶k縺ョ縺ッ繧医>縺後∵ァ矩繝・・スE繧ソ繧・・ス・ス驛ィ繧ケ繝医Ξ繝シ繧ク縺ォ險倬鹸縺励↑縺・・ス・スE
- viewer 迢ャ閾ェ繝・・スE繧ソ縺ョ 3DSS 縺ク縺ョ莉倅ク・
- 萓具シ嘛iewerConvenience 縺ェ縺ゥ縺ョ繝輔ぅ繝シ繝ォ繝峨r 3DSS 縺ォ霑ス險倥☆繧九・
- modeler 縺ョ邱ィ髮・UI 縺ョ豺キ蜈・
- viewer 縺九i讒矩繧堤キィ髮・・ス・ス縺阪k繧医≧縺ェ UI 繧堤エ帙l霎シ縺セ縺帙↑縺・・ス・スE
- 豕ィ驥茨ソスE繝ャ繝晢ソスE繝育ュ峨r謠冗判縺ク莉具ソスE縺輔○繧・
- 繝・・ス・ス繧ケ繝医Ξ繝晢ソスE繝育函謌舌d繧ウ繝。繝ウ繝茨ソスE UI 螻、縺ァ陦後>縲∵緒逕サ隕冗ッ・・ス・ス蟠ゥ縺輔↑縺・・ス・スE
- 譖イ邱夲ソスE蠎ァ讓呻ソスE縲鯉ソスE蜍穂ソョ豁」縲・
- 萓具シ夂峩邱壹〒螳夂セゥ縺輔l縺ヲ縺・・ス・ス繧ゑソスE繧・spline 縺ァ繧ケ繝繝シ繧ク繝ウ繧ー縺吶k縲√↑縺ゥ縲・
縺薙l繧会ソスE遖∵ュ「莠矩・・ス・ス驕募渚縺吶k螳溯」・・ス・ス隕九▽縺九▲縺溷エ蜷医・ 莉墓ァ倅ク奇ソスE縲計iewer 繝舌げ縲阪→縺励※謇ア縺・・ス・ス菫ョ豁」蟇セ雎。縺ィ縺吶k縲・
譛ャ遶縺ァ縺ッ縲∵緒逕サ隕冗ッ・・ス・ス繧ォ繝。繝ゥ謖吝虚繧貞ョ夂セゥ縺吶k縲・
5 UI 繧、繝吶Φ繝医→迥カ諷狗ョ。逅・・ス・スEiewer・スE・スE
viewer 縺ョ UI 繧、繝吶Φ繝茨ソスE縲・
**讒矩繝・・スE繧ソ・スE・スEDSS・スE・ス繧剃ク蛻・・ス・ス譖エ縺帙★**縲・
蜀・・ス・ス縺ョ uiState 繧呈峩譁ー縺吶k縺薙→縺ァ螳檎オ舌☆繧九・
譛ャ遶縺ァ縺ッ縲ゞI 繧、繝吶Φ繝・竊・core 竊・renderer 縺セ縺ァ縺ョ迥カ諷具ソスE遘サ縺ィ縲・ 縲後←縺ョ邨瑚キッ縺縺代′豁」隕上Ν繝シ繝医°縲阪r謨エ逅・・ス・ス繧九・
5.1 uiState 縺ョ蠖ケ蜑イ縺ィ謇譛画ィゥ
uiState 縺ョ逶ョ逧・・スE谺。縺ョ 2 轤ケ・スE・スE
- 髢イ隕ァ菴馴ィ薙↓蠢・・ス・ス縺ェ荳譎ら憾諷具シ・election / frame / filters / mode / runtime / microFX・スE・ス繧剃ソ晄戟縺吶k
- 讒矩繝・・スE繧ソ・スE・スEDSS・スE・ス縺ク縺ョ螟画峩繧帝亟縺舌◆繧√∵ァ矩螻、縺ィ螳鯉ソスE蛻・・ス・ス縺吶k
謇譛画ィゥ・スE・スE
data・スE・スEDSS 讒矩・スE・ス・喞ore 縺御ソ晄戟繝サdeep-freeze 貂医∩繝サread-onlyuiState・スE・スcore 縺悟髪荳縺ョ譖ク縺崎セシ縺ソ讓ゥ繧呈戟縺、visibleSet/microState/cameraState・スE・スuiState 縺ョ荳驛ィ縺ィ縺励※ core 縺檎ョ。逅・- renderer / ui / hub 縺ッ uiState 繧・**隱ュ繧縺縺・*・スE・スEore 縺ョ API 邨檎罰・スE・スE
uiState 縺ョ隧ウ邏ー讒矩縺ッ 2.3 遽縺翫h縺ウ runtime_spec 縺ョ uiState 螳夂セゥ繧呈ュ」縺ィ縺吶k縲・
5.2 繧、繝吶Φ繝医た繝シ繧ケ縺ィ豁」隕上Ν繝シ繝・
UI 繧、繝吶Φ繝茨ソスE荳サ縺ェ繧ス繝シ繧ケ・スE・スE
- PointerInput・スE・ス・スE繧ヲ繧ケ / 繧ソ繝・・ス・ス・スE・スE
- KeyboardInput・スE・ス繧ュ繝シ繝懶ソスE繝会シ・
- dev 繝擾ソスE繝阪せ・スE・スErame 繧ケ繝ゥ繧、繝 / 蜀咲函繝懊ち繝ウ / filter 繝懊ち繝ウ / gizmo 繝懊ち繝ウ・スE・スE
- 蟆・・ス・ス縺ョ繝帙せ繝医い繝励Μ縺九i縺ョ逶エ謗・ API 蜻シ縺ウ蜃コ縺暦シ・hub.core.*`・スE・スE
豁」隕上Ν繝シ繝茨シ亥髪荳縺ョ譖ク縺肴鋤縺育オ瑚キッ・スE・ス・・
DOM Event
竊・
PointerInput / KeyboardInput / viewerDevHarness
竊難シ・ub.core.* 縺ョ縺ソ・スE・スE
Core controllers / CameraEngine・スE・ス迥カ諷区峩譁ー・スE・スE
竊・
core.recomputeVisibleSet() 竊・豢セ逕溽憾諷具ソスE蜚ッ荳縺ョ蜀崎ィ育ョ暦ソスE蜿」
- visibleSet 蜀崎ィ育ョ暦シ・rames / appearance.visible / filters 蜷茨ソスE・スE・スE
- selection 縺ョ null 謨エ蜷育カュ謖・・ス・ス蠢・・ス・ス縺ェ繧・null 蛹厄シ・
- mode 縺ィ遏帷崟縺励↑縺・・ス・ス縺・・ス・ス蜷茨シ井セ具シ嗄icro 縺ェ縺ョ縺ォ selection=null 繧堤ヲ∵ュ「・スE・スE
- microState 縺ョ譖エ譁ー/隗」髯、・スE・スEode 縺ォ蠕薙≧・スE・スE
竊・
hub・スE・スEender loop・スE・スE
竊・
renderer.applyFrame / applyMicroFX / applySelection / updateCamera
竊・
three.js Scene 縺ォ蜿肴丐
遖∵ュ「莠矩・・ス・スE
- UI 螻、縺・uiState 繧堤峩謗・譖ク縺肴鋤縺医※縺ッ縺ェ繧峨↑縺・
- UI 螻、縺・CameraEngine 繧・three.js 縺ョ camera / scene 縺ォ逶エ謗・隗ヲ繧後※縺ッ縺ェ繧峨↑縺・
- renderer 螻、縺・uiState 繧・3DSS 繧呈嶌縺肴鋤縺医※縺ッ縺ェ繧峨↑縺・
- visibleSet / microState 繧・controller 蛛エ縺ァ繝舌Λ繝舌Λ縺ォ蜀崎ィ育ョ励@縺ヲ縺ッ縺ェ繧峨↑縺・ ・スE・ス・スE險育ョ暦ソスE蠢・・ス・ス core.recomputeVisibleSet() 縺ォ髮・・ス・スE・ス・ス繧具シ・
5.3 Frame 邉サ繧、繝吶Φ繝・
5.3.1 繧、繝吶Φ繝医た繝シ繧ケ
- dev viewer 縺ョ frame 繧ケ繝ゥ繧、繝 / 繝懊ち繝ウ
- KeyboardInput・スE・スEageUp / PageDown・スE・スE
- 蟆・・ス・ス・スE・ス・スE繧ケ繝医い繝励Μ縺九i縺ョ
hub.core.frame.*蜻シ縺ウ蜃コ縺・
5.3.2 豁」隕上Ν繝シ繝・
萓具シ喃rame 繧ケ繝ゥ繧、繝謫堺ス懶シ・ev viewer・スE・スE
#frame-slider縺ョinput繧、繝吶Φ繝育匱轣ォ- viewerDevHarness 蜀・・スE
initFrameControls縺・frameAPI.set(v)繧貞他縺カframeAPI縺ッviewerHub.core.frame縺ョ繝ゥ繝・・ス・ス
core/frameController.set(v)縺悟他縺ー繧後kuiState.frame.current繧呈峩譁ー縺励∝ソ・・ス・ス縺ェ繧峨け繝ゥ繝ウ繝・frameController縺ッuiState.frame.current繧呈峩譁ー縺励∝ソ・・ス・ス縺ェ繧峨け繝ゥ繝ウ繝励☆繧・- 蠢・・ス・ス
core.recomputeVisibleSet()繧貞他縺ウ縲・uiState.visibleSet繧呈峩譁ー- selection / mode / microState 縺ョ謨エ蜷医r蟠ゥ縺輔↑縺・
- hub 縺ョ谺。繝輔Ξ繝シ繝 tick 縺ァ
renderer.applyFrame(uiState.visibleSet)renderer.render()
KeyboardInput・スE・スEageUp / PageDown・スE・ス繧ょ酔讒倥↓・スE・スE
frame.step(+1)/frame.step(-1)繧堤オ檎罰縺励※
frameController.step竊・uiState.frame.current竊・visibleSet竊・renderer
縺ィ縺・・ス・ス繝ォ繝シ繝茨ソスE縺ソ繧剃スソ縺・・ス・スE
5.3.3 遖∵ュ「莠矩・・ス・スErame・スE・スE
- renderer 縺・
frames繧堤峩謗・隱ュ繧薙〒陦ィ遉コ蜿ッ蜷ヲ繧呈アコ繧√k - UI 螻、縺・
uiState.frame.current縺ォ逶エ謗・譖ク縺崎セシ繧 - frame 遽・・ス・ス螟悶↓閾ェ逕ア縺ォ鬟幢ソスE縺励√◎縺ョ蠕後〒蜍晄焔縺ォ繧ッ繝ゥ繝ウ繝励☆繧・ ・スE・ス繧ッ繝ゥ繝ウ繝暦ソスE frameController 蛛エ縺ョ雋ャ蜍吶→縺吶k・スE・スE
5.4 Filter / Layer 邉サ繧、繝吶Φ繝・
5.4.1 繧、繝吶Φ繝医た繝シ繧ケ
- dev viewer 縺ョ filter 繝懊ち繝ウ・スE・スEoints / lines / aux・スE・スE
- 蟆・・ス・ス・スE・ス・スE繧ケ繝医い繝励Μ縺九i縺ョ
hub.core.filters.*
5.4.2 豁」隕上Ν繝シ繝・
- 繝ヲ繝シ繧カ縺・filter 繝懊ち繝ウ・スE・ス萓具シ啻#filter-lines`・スE・ス繧偵け繝ェ繝・・ス・ス
- viewerDevHarness 縺ョ
initFilterControls縺・filtersAPI.setTypeEnabled("lines", enabled)繧貞他縺カ filtersAPI縺ッhub.core.filters縺ョ繝ゥ繝・・ス・スvisibilityController.setTypeFilter("lines", enabled)縺悟他縺ー繧後kuiState.filters.types.lines繧呈峩譁ー縺励◆繧峨・蠢・・ス・ス*core.recomputeVisibleSet()繧貞他縺カ
・スE・スEilters / frames / appearance.visible 繧貞粋謌舌@縺ヲ visibleSet 繧呈峩譁ー縺励∵紛蜷医r菫昴▽・スE・スE- hub 縺ョ谺。繝輔Ξ繝シ繝 tick 縺ァ
renderer.applyFrame(visibleSet)縺悟渚譏 syncFilterUI()縺・filtersAPI.get()繧定ェュ繧薙〒
繝懊ち繝ウ縺ョ繧ッ繝ゥ繧ケ・スE・スEilter-on / filter-off・スE・ス縺ィ icon・スE・ス早E/ 刪・スE・ス繧呈峩譁ー
5.4.3 遖∵ュ「莠矩・・ス・スEilter・スE・スE
- renderer 縺・
appearance.visible繧・frames繧定ヲ九※迢ャ閾ェ縺ォ filter 縺吶k- filter 蜷茨ソスE・スE・スErames / appearance.visible / filters.types・スE・ス・スE
visibilityController 縺ォ荳蜈・・ス・ス 縺吶k
- filter 蜷茨ソスE・スE・スErames / appearance.visible / filters.types・スE・ス・スE
- UI 螻、縺・
uiState.visibleSet繧堤峩謗・譖ク縺肴鋤縺医k
5.5 Selection / Picker 邉サ繧、繝吶Φ繝・
5.5.1 繧、繝吶Φ繝医た繝シ繧ケ
- PointerInput 縺ォ繧医k canvas click・スE・スEay picking・スE・スE
- 蟆・・ス・ス・スE・スUI 縺九i逶エ謗・
hub.core.selection.select(uuid)繧貞他縺カ繧ア繝シ繧ケ
v1 螳溯」・・ス・ス縺ッ PointerInput 縺・hub.pickObjectAt 繧剃スソ縺」縺ヲ驕ク謚槭r陦後≧縲・
5.5.2 豁」隕上Ν繝シ繝・
- 繝ヲ繝シ繧カ縺・canvas 荳翫r繧ッ繝ェ繝・・ス・ス
- PointerInput 縺・
pointerup/click繧偵ヵ繝・・ス・ス縺励・- 逕サ髱「蠎ァ讓・竊・NDC 蠎ァ讓吶∈螟画鋤
hub.pickObjectAt(ndcX, ndcY)繧貞他縺カ
- viewerHub 縺・
renderer.pickObjectAt縺ォ蟋碑ュイ縺励・userData.uuid繧呈戟縺、譛蜑埼擇繝偵ャ繝医r霑斐☆・スE・ス縺ェ縺代l縺ー null・スE・スE
- PointerInput 縺・
uuid繧貞女縺大叙繧翫・hub.core.selection.select(uuid)繧貞他縺カ
selectionController.select(uuid)縺・structIndex縺九ikind繧定ァ」豎コuiState.selection = {kind, uuid}繧呈峩譁ー
- 蠢・・ス・ス
core.recomputeVisibleSet()繧貞他縺ウ縲・- selection 縺・visibleSet 縺ィ遏帷崟縺励↑縺・・ス・ス縺ィ繧剃ソ晁ィシ
- mode / microState 繧剃サ墓ァ倬壹j縺ォ譖エ譁ー・スE・ス蠢・・ス・ス縺ェ繧・micro 繧定ァ」髯、・スE・スE
- hub 縺ョ谺。繝輔Ξ繝シ繝 tick 縺ァ
renderer.applySelection(uiState.selection)renderer.applyMicroFX(uiState.microState)renderer.render()
5.5.3 遖∵ュ「莠矩・・ス・スEelection・スE・スE
- UI 螻、縺・
uiState.selection繧堤峩謗・譖ク縺・ - renderer 縺後梧怙蠕後↓ hit 縺励◆繧ェ繝悶ず繧ァ繧ッ繝医阪r蜍晄焔縺ォ selection 縺ィ縺励※謇ア縺・
- modeController 繧定ソょ屓縺励※ microState 繧堤峩謗・譖ク縺肴鋤縺医k
5.6 Mode / MicroFX 邉サ繧、繝吶Φ繝茨シ・eso optional・スE・スE
5.6.1 繧、繝吶Φ繝医た繝シ繧ケ
- KeyboardInput・スE・スEsc・スE・スE
- dev viewer 縺ョ focus 繝医げ繝ォ繝懊ち繝ウ・スE・ス繧ッ繝ェ繝・・ス・ス・スE・スE
- ・スE・スEptional・スE・スMESO UI・スE・ス繧ッ繝ェ繝・・ス・ス縲AgetSupported().meso === true` 縺ョ縺ィ縺搾ソスE縺ソ陦ィ遉コ・スE・スE
- 蟆・・ス・ス・スE・ス・スE繧ケ繝医い繝励Μ縺九i縺ョ
hub.core.mode.*蜻シ縺ウ蜃コ縺・
5.6.2 豁」隕上Ν繝シ繝・
-
micro 縺ク・スE・スE
- UI 縺・
selection.get()縺ァ迴セ蝨ィ selection 繧貞叙蠕・ sel.uuid縺後≠繧鯉ソスEmode.set("micro", sel.uuid)繧貞他縺カmodeController.set("micro", uuid)縺鯉ソスE遘サ蜿ッ蜷ヲ繧貞愛螳壹@uiState.mode繧呈峩譁ー- 蠢・・ス・ス
core.recomputeVisibleSet()繧貞他縺ウ縲[icroState 繧貞性繧豢セ逕溽憾諷九r譖エ譁ー縺吶k - 谺。繝輔Ξ繝シ繝縺ァ
renderer.applyMicroFX(microState)縺悟渚譏縺輔l繧・
- UI 縺・
-
macro 謌サ繧奇シ・sc・スE・ス・・
mode.set("macro")竊・uiState.mode="macro"竊・core.recomputeVisibleSet()
・スE・スEicroState 繧・null 縺ォ縺励※ microFX OFF・スE・スE
-
meso・スE・スEptional・スE・ス・・
getSupported().meso === false縺ョ迺ー蠅・・ス・ス縺ッset("meso", ...)縺ッ false 繧定ソ斐@菴輔b縺励↑縺・・ス・スE- v1 螳溯」・・ス・ス縺ッ meso 縺ッ **macro 逶ク蠖難シ・icroFX 辟。縺暦シ・*縺ァ繧ゆサ墓ァ倬&蜿阪〒縺ッ縺ェ縺・・ス・スE
5.6.3 遖∵ュ「莠矩・・ス・スEode / MicroFX・スE・スE
- renderer 縺・
uiState.mode繧堤峡閾ェ隗」驥医@縺ヲ microFX 繝ュ繧ク繝・・ス・ス繧呈戟縺、縺薙→縺ッ遖∵ュ「
・スE・ス蟇セ雎。豎コ螳夲ソスE core 蛛エ・スE・スrecomputeVisibleSet()縺ォ髮・・ス・スE・ス・スE - UI 螻、縺・
uiState.microState繧堤峩謗・譖ク縺肴鋤縺医k縺ョ縺ッ遖∵ュ「 - modeController 繧堤オ檎罰縺帙★ microController 繧堤峩謗・蜿ゥ縺擾ソスE縺ッ遖∵ュ「
5.7 Camera 邉サ繧、繝吶Φ繝・
5.7.1 繧、繝吶Φ繝医た繝シ繧ケ
- PointerInput・スE・ス繝峨Λ繝・・ス・ス / 繝帙う繝シ繝ォ・スE・スE
- KeyboardInput・スE・ス遏「蜊ー繧ュ繝シ / Home / +/-・スE・スE
- gizmo 繝懊ち繝ウ・スE・スEOME / axis・スE・スE
- dev viewer 縺ョ霑ス蜉繧キ繝ァ繝シ繝医き繝・・ス・ス・スE・ス萓具シ唏ome 繧ュ繝シ 竊・reset・スE・スE
5.7.2 豁」隕上Ν繝シ繝・
PointerInput・スE・スErbit / zoom / pan・スE・ス・・
- 蟾ヲ繝峨Λ繝・・ス・ス・スE・スE
- 繝峨Λ繝・・ス・ス驥上°繧・
dTheta/dPhi繧堤ョ暦ソスE縺励~camera.rotate(dTheta, dPhi)`
- 繝峨Λ繝・・ス・ス驥上°繧・
- 蜿ウ or 荳ュ繝峨Λ繝・・ス・ス・スE・スE
- 逕サ髱「蠎ァ讓吝キョ蛻・・ス・ス繧・
dx/dy繧堤ョ暦ソスE縺励~camera.pan(dx, dy)`
- 逕サ髱「蠎ァ讓吝キョ蛻・・ス・ス繧・
- 繝帙う繝シ繝ォ・スE・スE
deltaY縺九i邵ョ蟆コ繧呈アコ繧√※camera.zoom(delta)
KeyboardInput・スE・スE
ArrowLeft/Right/Up/Down・スE・スEcamera.rotate(ツアstep, 0)/camera.rotate(0, ツアstep)
Home・スE・スEcamera.reset()
+/-/NumpadAdd/NumpadSubtract・スE・スEcamera.zoom(ツアZOOM_STEP)
gizmo・スE・スE
- HOME 繝懊ち繝ウ・スE・スE
camera.reset()
- X/Y/Z 繝懊ち繝ウ・スE・スE
camera.snapToAxis('x'|'y'|'z')
縺・・ス・ス繧後b譛邨ら噪縺ォ縺ッ CameraEngine 縺ョ繝。繧ス繝・・ス・ス縺ォ髮・・ス・スE・ス・ス繧後・
uiState.cameraState 繧呈峩譁ー縺吶k縲・
5.7.3 遖∵ュ「莠矩・・ス・スEamera・スE・スE
- UI 螻、縺・
uiState.cameraState繧堤峩謗・譖ク縺肴鋤縺医k - renderer 縺・
camera.position繧貞享謇九↓蜍輔°縺励,ameraEngine 縺ィ莠碁㍾邂。逅・・ス・ス繧・ - modeController 繧・microController 縺檎峩謗・ camera 繧呈桃菴懊☆繧・ ・スE・ス蠢・・ス・ス縺ェ繧・CameraEngine API 繧帝壹☆・スE・スE
5.8 runtime 繝輔Λ繧ー・スE・スEsFramePlaying / isCameraAuto・スE・スE
uiState.runtime 縺ッ縲・ソスE逕溽憾諷具ソスE閾ェ蜍輔き繝。繝ゥ迥カ諷九↑縺ゥ縺ョ
繝ゥ繝ウ繧ソ繧、繝繝ャ繝吶Ν縺ョ繝輔Λ繧ー 繧剃ソ晄戟縺吶k縲・
uiState.runtime = {
isFramePlaying: boolean,
isCameraAuto: boolean,
}
v1 縺ァ縺ッ・スE・スE
- dev viewer 縺ョ蜀咲函繝懊ち繝ウ・スE・スElay/Stop・スE・ス・スE
繝擾ソスE繝阪せ蜀・・ス・ス縺ョsetInterval縺ァ螳檎オ舌@縺ヲ縺翫j縲・isFramePlaying縺ッ縺セ縺 runtime API 縺九i縺ッ菴ソ逕ィ縺励※縺・・ス・ス縺・・ス・スE - 蟆・・ス・ス縲’rame 蜀咲函繝ュ繧ク繝・・ス・ス繧・core/frameController 蛛エ縺ク遘サ縺吝エ蜷茨ソスE縲・
hub.core.runtime.startFramePlayback()/.stopFramePlayback()縺ェ縺ゥ繧定ソス蜉縺励・uiState.runtime.isFramePlaying繧・core 縺悟髪荳縺ョ豁」隕上Ν繝シ繝医→縺励※譖エ譁ー縺吶k縲・
遖∵ュ「莠矩・・ス・スE
- UI 螻、縺・runtime 繝輔Λ繧ー繧堤峩謗・譖ク縺肴鋤縺医・ core 蛛エ縺ョ繝ュ繧ク繝・・ス・ス縺ィ遏帷崟繧定オキ縺薙☆縺薙→
- renderer 縺・runtime 繝輔Λ繧ー繧定ヲ九※迢ャ閾ェ縺ョ迥カ諷具ソスE繧キ繝ウ繧呈戟縺、縺薙→
5.9 dev 繝擾ソスE繝阪せ・スE・スEiewerDevHarness.js・スE・ス・スE雋ャ蜍・
viewer_dev 逕ィ繝擾ソスE繝阪せ縺ッ縲・ UI 縺ィ hub 縺ョ繝悶Μ繝・・ス・ス縺ァ縺ゅj縲〉untime 縺晢ソスE繧ゑソスE縺ァ縺ッ縺ェ縺・・ス・スE
雋ャ蜍呻シ・
- 襍キ蜍包シ・
window.load竊・boot()繧・1 蝗槭□縺大ョ溯。・bootstrapViewerFromUrl(canvasId, modelUrl, options)繧貞他縺ウ蜃コ縺・
- devBootLog 縺ョ驟咲キ夲シ・
options.devBootLog = true/options.logger = devLogger- Model 繝ュ繧ー繝代ロ繝ォ縺ク
BOOT / MODEL / CAMERA / LAYERS / FRAME繧定。ィ遉コ
- UI 謗・邯夲シ・
- frame 繧ケ繝ゥ繧、繝 / 繝懊ち繝ウ 竊・
hub.core.frame.* - filter 繝懊ち繝ウ 竊・
hub.core.filters.* - mode HUD / focus 繝医げ繝ォ 竊・
hub.core.mode.*/hub.core.selection.get() - gizmo 竊・
hub.core.camera.reset / snapToAxis - Keyboard shortcuts・スE・スEpace 竊・Play・スE・ス縺ェ縺ゥ縲・ dev 蟆ら畑繧キ繝ァ繝シ繝医き繝・・ス・ス縺ョ螳溯」・
- frame 繧ケ繝ゥ繧、繝 / 繝懊ち繝ウ 竊・
- HUD / 繝。繧ソ諠・・ス・ス陦ィ遉コ・スE・スE
- File 繝代ロ繝ォ・スE・スEource / frame range / current frame・スE・スE
- Model 繝代ロ繝ォ・スE・ス繝ュ繧ー・スE・スE
- HUD 繝茨ソスE繧ケ繝茨シ・iewerToast・スE・スE
蛻カ邏・・ス・スE
- runtime 螻、・スE・スEore / renderer・スE・ス・スE蜀・・ス・ス讒矩縺ォ縺ッ隗ヲ繧後↑縺・
- 隗ヲ縺」縺ヲ繧医>縺ョ縺ッ
viewerHub縺ョ蜈ャ髢・API・スE・スEhub.core.*/hub.pickObjectAt/hub.start/hub.stop`・スE・ス・スE縺ソ
- 隗ヲ縺」縺ヲ繧医>縺ョ縺ッ
- KeyboardInput / PointerInput 縺ョ繝ュ繧ク繝・・ス・ス繧剃ク頑嶌縺阪@縺ェ縺・
- 萓句、厄ソスE縲郡pace 竊・Play縲阪↑縺ゥ dev 蝗コ譛峨す繝ァ繝シ繝医き繝・・ス・ス縺ョ縺ソ
莉・荳翫↓繧医j縲ゞI 繧、繝吶Φ繝茨ソスE縺吶∋縺ヲ
縲計iewerDevHarness / PointerInput / KeyboardInput 竊・hub.core.* 竊・core 竊・uiState 竊・renderer縲・
縺ィ縺・・ス・ス荳譛ャ蛹悶&繧後◆邨瑚キッ繧帝壹k縺薙→縺御ソ晁ィシ縺輔l繧九・
5.10 豢セ逕溽憾諷具ソスE蜀崎ィ育ョ励→謨エ蜷域ァ・スE・ス蠢・・ス・ス・・
viewer 縺ッ豢セ逕溽憾諷具シ・isibleSet / microState・スE・ス繧定、・・ス・ス邂・・ス・ス縺ァ險育ョ励@縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
core.recomputeVisibleSet()縺・**蜚ッ荳縺ョ蜀崎ィ育ョ暦ソスE蜿」**縺ァ縺ゅj縲・ 縺吶∋縺ヲ縺ョ UI 繧、繝吶Φ繝亥セ後↓蠢・・ス・ス縺ォ蠢懊§縺ヲ縺薙l繧貞他縺カ縲・
core.recomputeVisibleSet() 縺ッ蟆代↑縺上→繧よャ。繧剃ソ晁ィシ縺吶k・スE・スE
- visibleSet 縺ッ蟶ク縺ォ
frames+appearance.visible+filters.types縺ョ蜷茨ソスE邨先棡縺ァ縺ゅk - selection 縺ッ蟶ク縺ォ null-safe 縺ァ縺ゅk
・スE・スEisibleSet 縺ィ遏帷崟縺吶k selection 縺ッ null 蛹悶☆繧九√↑縺ゥ・スE・スE - mode 縺ッ selection 縺ィ遏帷崟縺励↑縺・ ・スE・ス萓具シ嗄icro 縺ェ縺ョ縺ォ selection=null 縺ョ迥カ諷九r菴懊i縺ェ縺・・ス・スE
- microState 縺ッ mode 縺ォ蠕薙▲縺ヲ譖エ譁ー/隗」髯、縺輔l繧・ ・スE・スEacro 縺ァ縺ッ蠢・・ス・ス null縲[icro 縺ァ縺ッ蠢・・ス・ス蜀崎ィ育ョ暦シ・
縺薙l縺ォ繧医j縲√檎憾諷具ソスE莠碁㍾邂。逅・・ス・ス縲鯉ソスE險育ョ玲シ上l縲阪稽ode 縺ィ selection 縺ョ遏帷崟縲阪r莉墓ァ倅ク顔ヲ∵ュ「縺吶k縲・
6 繝ュ繧ー繝サ險コ譁ュ繝サ螟夜Κ騾」謳コ縺ィ遖∵ュ「讖滂ソスE・スE・スEiewer・スE・スE
viewer 縺ッ讒矩繝・・スE繧ソ繧貞、画峩縺励↑縺・・ス・ス隕ァ蟆ら畑繧「繝励Μ縺ァ縺ゅk縺ィ蜷梧凾縺ォ縲・ 髢狗匱繝サ讀懆ィシ縺ョ縺溘a縺ョ 險コ譁ュ繝ュ繧ー 繧抵ソスE蜉帙〒縺阪k dev viewer・スE・スEiewer_dev・スE・ス繧呈戟縺、縲・
譛ャ遶縺ァ縺ッ縲・
- 繝ュ繧ー・スE・ス迚ケ縺ォ devBootLog・スE・ス・スE莉墓ァ・
- 繧ィ繝ゥ繝シ蝣ア蜻翫→繝ヲ繝シ繧カ蜷代¢繝。繝・・ス・ス繝シ繧ク
- runtime API 繧剃サ九@縺溷、夜Κ騾」謳コ
- 繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス・スE・ス繧ィ繧ッ繧ケ繝晢ソスE繝域ゥ滂ソスE縺ョ謇ア縺・
- microFX 縺ョ驕狗畑繝ォ繝シ繝ォ・スE・ス隧ウ邏ー迚茨シ・
繧貞ョ夂セゥ縺吶k縲・
6.1 繝ュ繧ー縺ョ蝓コ譛ャ譁ケ驥・
6.1.1 繝ュ繧ー繝ャ繧、繝、
viewer 縺ョ繝ュ繧ー縺ッ螟ァ縺阪¥ 3 繝ャ繧、繝、縺ォ蛻・・ス・ス繧後k・スE・スE
- dev viewer UI 繝ュ繧ー
- viewer_devHarness 蜀・・ス・ス謇ア縺・・ス・スModel 繝代ロ繝ォ縲咲ュ峨∈縺ョ蜃コ蜉・
- 莠コ髢薙′髢狗匱譎ゅ↓遒コ隱阪☆繧九◆繧・ソスE繧ゑソスE
- 繝悶Λ繧ヲ繧カ繧ウ繝ウ繧ス繝シ繝ォ繝ュ繧ー
console.log/console.warn/console.error縺ォ繧医k蜃コ蜉・- 髢狗匱譎ゑソスE繝・・ス・ス繝・・ス・ス縲√♀繧茨ソスE譛ャ逡ェ縺ァ繧ょソ・・ス・ス譛蟆城剞縺ョ繧ィ繝ゥ繝シ騾夂衍縺ォ蛻ゥ逕ィ
- *繝帙せ繝医い繝励Μ蛛エ繝ュ繧ー・スE・ス莉サ諢擾シ・
- Astro / 螟夜Κ JS 縺ェ縺ゥ縺・viewer 縺ョ繧、繝吶Φ繝医r諡セ縺」縺ヲ縲・ 繧オ繝シ繝舌Ο繧ョ繝ウ繧ー繧・・ス・ス閾ェ UI 縺ォ蜃コ縺吝エ蜷・
- viewer 莉墓ァ倥→縺励※縺ッ縲後う繝吶Φ繝磯夂衍縺ョ蠖「縲阪∪縺ァ繧剃ソ晁ィシ縺励・ 螳滄圀縺ョ繝ュ繧ー繧ケ繝医Ξ繝シ繧ク縺ッ繝帙せ繝茨ソスE雋ャ蜍吶→縺吶k
6.1.2 繝ュ繧ー縺ョ逶ョ逧・
繝ュ繧ー縺ョ荳サ逶ョ逧・・スE谺。縺ョ騾壹j縺ィ縺吶k・スE・スE
- 3DSS 繝ュ繝シ繝会ソスE讀懆ィシ繝サ蛻晄悄蛹厄ソスE謌仙粥・スE・ス螟ア謨励r蜿ッ隕門喧縺吶k
- frame / filter / selection / mode / camera 縺ョ謖吝虚繧定ィコ譁ュ縺吶k
- microFX 繧・structIndex 縺ェ縺ゥ縲・ソスE驛ィ蜃ヲ逅・・スE荳肴紛蜷医r讀懃衍縺吶k
騾・・ス・ス縲・
- 繧ィ繝ウ繝峨Θ繝シ繧カ蜷代¢縺ョ蟶ク譎ゅΟ繧ー繝薙Η繝シ繧「繧呈署萓帙☆繧・
- 3DSS 縺ョ蜀・・ス・ス繧偵後Ο繧ー縺ィ縺励※繧ィ繧ッ繧ケ繝晢ソスE繝医阪☆繧・
縺ィ縺・・ス・ス縺溽畑騾費ソスE viewer 譛ャ菴難ソスE雋ャ蜍吝、悶→縺吶k縲・
6.2 devBootLog・スE・ス襍キ蜍輔Ο繧ー・スE・ス莉墓ァ・
6.2.1 蠖ケ蜑イ
devBootLog 縺ッ縲‥ev viewer 襍キ蜍墓凾縺ォ *譛菴・1 蝗槭□縺・ 蜃コ蜉帙&繧後k
讓呎コ門ス「蠑擾ソスE襍キ蜍輔Ο繧ー鄒、縺ァ縺ゅk縲・
逶ョ逧・・ス・スE
- 襍キ蜍慕オ瑚キッ縺御サ墓ァ倥←縺翫j縺ォ縺ェ縺」縺ヲ縺・・ス・ス縺九r遒コ隱阪☆繧・
- model URL / 蛻晄悄 camera / layers / frame 迥カ諷九r荳逶ョ縺ァ謚頑升縺吶k
- 繝・・ス・ス繝・・ス・ス譎ゅ↓縲瑚オキ蜍輔∪縺ァ縺ッ豁」蟶ク縺九阪r邏譌ゥ縺擾ソスE繧奇ソスE縺代k
6.2.2 蜃コ蜉帛ス「蠑・
襍キ蜍募ョ御コ・・ス・ス縲∵ャ。縺ョ 5 繝ャ繧ウ繝シ繝峨r縺難ソスE鬆・・ス・ス蜃コ蜉帙☆繧具シ・
BOOT <devLabel>
MODEL <modelUrl or (unknown)>
CAMERA {"position":[x,y,z],"target":[x,y,z],"fov":number}
LAYERS points=on|off lines=on|off aux=on|off
FRAME frame_id=<number>
- BOOT
- 繝ゥ繝吶Ν譁・・ス・ス・スE・スE・ス騾壼クク縺ッ
"viewer_dev"・スE・ス繧貞・縺吶・
- 繝ゥ繝吶Ν譁・・ス・ス・スE・スE・ス騾壼クク縺ッ
- MODEL
- JSON 繝ュ繝シ繝会ソスE縺ョ URL・スE・スEmodelUrl
・スE・ス繧貞・縺吶・ 譛ェ險ュ螳夲ソスE蝣エ蜷茨ソスE”MODEL (unknown)”` 縺ィ縺吶k縲・
- JSON 繝ュ繝シ繝会ソスE縺ョ URL・スE・スEmodelUrl
- CAMERA
cameraEngine.getState()縺ェ縺ゥ縺九i cameraState 繧貞叙蠕励@縲・- position:
[x,y,z]・スE・ス蟄伜惠縺励↑縺・・ス・ス蜷茨ソスE[0,0,0]・スE・スE - target:
[x,y,z]・スE・ス蟄伜惠縺励↑縺・・ス・ス蜷茨ソスE[0,0,0]・スE・スE - fov: number・スE・ス蟄伜惠縺励↑縺・・ス・ス蜷茨ソスE
50・スE・スE
- position:
- 繧・JSON 譁・・ス・ス・スE縺ィ縺励※蝓九a霎シ繧縲・
- LAYERS
uiState.filters.types.{points,lines,aux}繧貞━蜈医@縲・
- FRAME
uiState.frame.current縺セ縺滂ソスEframeController.get()縺ョ蛟、繧抵ソスE縺吶・
6.2.3 蜃コ蜉幢ソスE縺ィ繧ェ繝励す繝ァ繝ウ
bootstrapViewer / bootstrapViewerFromUrl 縺ョ options 縺ィ縺励※・スE・スE
devBootLog: boolean- true 縺ョ蝣エ蜷茨ソスE縺ソ devBootLog 繧抵ソスE蜉帙☆繧九・
devLabel?: string- BOOT 陦後↓蝓九a霎シ繧繝ゥ繝吶Ν・スE・ス逵∫払譎・
"viewer_dev"・スE・ス縲・
- BOOT 陦後↓蝓九a霎シ繧繝ゥ繝吶Ν・スE・ス逵∫払譎・
modelUrl?: string- MODEL 陦後↓蜃コ縺・model URL縲・
logger?: (line: string) => void- 繝ュ繧ー蜃コ蜉幃未謨ー縲ら怐逡・譎ゑソスE
console.log繧堤畑縺・・ス・ス縲・
- 繝ュ繧ー蜃コ蜉幃未謨ー縲ら怐逡・譎ゑソスE
viewer_dev 繝擾ソスE繝阪せ縺ァ縺ッ騾壼クク・スE・スE
devBootLog: truedevLabel: "viewer_dev"modelUrl: jsonUrllogger: devLogger・スE・スEevLogger 縺ッ Model 繝代ロ繝ォ縺ク霑ス險假シ・
縺ィ縺励※蜻シ縺ウ蜃コ縺吶・
6.2.4 dev / 譛ャ逡ェ縺ァ縺ョ謇ア縺・・ス・スE-10 蟇セ蠢懶シ・
- dev viewer・スE・スEiewer_dev.html・スE・ス・・
- 荳願ィ・5 陦後r *蠢・・ス・スE 縺ィ縺吶k縲・
- 蜃コ蜉幢ソスE縺ッ UI・スE・スEodel 繝代ロ繝ォ・スE・ス・・繧ウ繝ウ繧ス繝シ繝ォ繧呈Φ螳壹・
- 譛ャ逡ェ viewer・スE・スE
- 蜷後§繝輔か繝シ繝槭ャ繝茨ソスE繝ュ繧ー繧・莉サ諢上〒 蜃コ蜉帙@縺ヲ繧医>縲・
- 蠢・・ス・ス縺ァ縺ッ縺ェ縺・・ス・ス縲∬ィコ譁ュ荳頑怏逕ィ縺ェ縺溘a蟆・・ス・ス逧・・ス・ス蜀榊茜逕ィ繧呈Φ螳壹☆繧九・
縺、縺セ繧・devBootLog 縺ッ縲慧ev viewer 縺ァ蠢・・ス・ス縲∵悽逡ェ縺ァ莉サ諢上搾ソスE險コ譁ュ繝ュ繧ー縺ィ縺吶k縲・ 繝輔か繝シ繝槭ャ繝茨ソスE蟆・・ス・ス繧ょョ会ソスE縺ォ螟画峩縺励↑縺・・ス・スE
6.3 霑ス蜉繝ュ繧ー繧ォ繝・・ス・ス繝ェ・スE・ス髢狗匱逕ィ・スE・スE
螳溯」・・ス・ス縲∵ャ。縺ョ繧医≧縺ェ繧ォ繝・・ス・ス繝ェ繧・DEBUG 繝輔Λ繧ー莉倥″縺ァ謖√▲縺ヲ繧医>・スE・スE
- HUB (
DEBUG_HUB)- hub 縺ョ繝輔Ξ繝シ繝縺斐→縺ョ迥カ諷九せ繝翫ャ繝励す繝ァ繝・・ス・ス
- 萓具シ啻[hub] frame n { cam, visibleSet, selection }`
- POINTER (
DEBUG_POINTER)- PointerInput 縺ョ pointerdown / move / up / click 繧、繝吶Φ繝・
- KEYBOARD (
DEBUG_KEYBOARD)- KeyboardInput 縺ョ keydown 繧、繝吶Φ繝・
- MICROFX (
DEBUG_MICROFX)- microFX 驕ゥ逕ィ蜑榊セ鯉ソスE state 螟牙喧・スE・スEocusUuid / relatedUuids / localBounds 遲会シ・
縺薙l繧会ソスE 繝・・ス・ス繧ゥ繝ォ繝・OFF 縺ィ縺励・ 髢狗匱譎ゅ↓縺ョ縺ソ true 縺ォ縺励※菴ソ縺・・ス・スE
遖∵ュ「莠矩・・ス・スE
- DEBUG 繝輔Λ繧ー OFF 譎ゅ↓繧ょ、ァ驥擾ソスE繝ュ繧ー繧抵ソスE縺礼カ壹¢繧九%縺ィ
- 蛟倶ココ諠・・ス・ス縺ェ縺ゥ 3DSS 螟夜Κ縺ョ繝・・スE繧ソ繧貞享謇九↓繝ュ繧ー縺ク譖ク縺崎セシ繧縺薙→
6.4 繧ィ繝ゥ繝シ蜃ヲ逅・・ス・ス繝ヲ繝シ繧カ繝。繝・・ス・ス繝シ繧ク
6.4.1 3DSS 繝ュ繝シ繝会シ乗、懆ィシ繧ィ繝ゥ繝シ
bootstrapViewerFromUrl 縺ッ谺。繧定。後≧・スE・スE
loadJSON(url)縺ァ fetch- JSON parse
ensureValidatorInitialized()・スE・スEJV 縺ォ繝ュ繝シ繧ォ繝ォ繧ケ繧ュ繝シ繝槭r隱ュ縺ソ霎シ繧・スE・スEvalidate3DSS(doc)縺ァ strict validation- NG 縺ョ蝣エ蜷茨ソスE謨エ蠖「縺励◆ Error 繧・throw・スE・スEub 縺ッ逕滂ソスE縺励↑縺・・ス・スE
繧ィ繝ゥ繝シ遞ョ蛻・・スE・スEev 陦ィ遉コ逕ィ・スE・ス・・
NETWORK_ERROR窶ヲ fetch 螟ア謨暦シ・04 / CORS / offline 遲会シ・JSON_ERROR窶ヲ JSON parse 螟ア謨・VALIDATION_ERROR窶ヲ strict validation NG
dev viewer 縺ァ縺ッ・スE・スE
- File 繝代ロ繝ォ縺ォ
ERROR: <遞ョ蛻・>縺ィ繝。繝・・ス・ス繝シ繧ク(no struct loaded)繧抵ソスE遉コ
- Model 繝代ロ繝ォ縺ォ
- 隧ウ邏ー・スE・スEalidation 縺ョ
instancePath/message縺ェ縺ゥ・スE・ス繧・<pre>縺ァ陦ィ遉コ
- 隧ウ邏ー・スE・スEalidation 縺ョ
譛ャ逡ェ viewer 縺ァ縺ッ・スE・スE
- 繝ヲ繝シ繧カ縺ォ縺ッ邁。譏薙Γ繝・・ス・ス繝シ繧ク縺ョ縺ソ・スE・ス萓具シ啻”繝・・スE繧ソ隱ュ霎シ繧ィ繝ゥ繝シ”`・スE・スE
- 隧ウ邏ー縺ッ繧ウ繝ウ繧ス繝シ繝ォ・スE・ス・スE繧ケ繝茨ソスE繝ュ繧ョ繝ウ繧ー縺ァ謇ア縺・
- 縺・・ス・ス繧鯉ソスE繧ィ繝ゥ繝シ縺ァ繧・*hub 繧堤函謌舌○縺・ render loop 繧帝幕蟋九@縺ェ縺・
6.4.2 繝ゥ繝ウ繧ソ繧、繝繧ィ繝ゥ繝シ
繝ゥ繝ウ繧ソ繧、繝繧ィ繝ゥ繝シ・スE・ス萓具シ嗄icroFX 蜀・・ス・ス null 蜿ゑソスE縺ェ縺ゥ・スE・ス・スE・スE・スE
- 蜿ッ閭ス縺ェ髯舌j try/catch 縺ァ謠。繧翫▽縺、縲・
console.warn/console.error縺ォ險倬鹸
- viewer 蜈ィ菴難ソスE繧ッ繝ゥ繝・・ス・ス繝・繧帝∩縺代k譁ケ蜷代〒繝上Φ繝峨Μ繝ウ繧ー縺吶k
縺溘□縺励√き繝。繝ゥ繧・frame 謫堺ス懊′螳鯉ソスE縺ォ荳搾ソスE縺ォ縺ェ繧九h縺・・ス・ス閾エ蜻ス逧・・ス・ス繝ゥ繝シ縺ッ縲・ 繝ヲ繝シ繧カ UI 縺ォ繧らー。譏薙↑繧ィ繝ゥ繝シ陦ィ遉コ・スE・ス繝医・繧ケ繝育ュ会シ峨r蜃コ縺励※繧医>縲・
6.5 runtime API 縺ィ螟夜Κ騾」謳コ・スE・スEublic surface・スE・スE
viewer 縺ョ螟夜Κ蜈ャ髢矩擇・スE・スEublic surface・スE・ス・スE谺。縺ョ 2 縺、縺ァ讒具ソスE縺輔l繧具シ・
-
*runtime entry・スE・ス蠢・・ス・ス・スE豁」隕擾シ・
bootstrapViewer(canvasOrId, threeDSS, options?) 竊・hubbootstrapViewerFromUrl(canvasOrId, url, options?) 竊・Promise<hub>- 霑斐k
hub縺ョhub.core.*縺悟、夜Κ謫堺ス懶ソスE蜚ッ荳縺ョ蜈・蜿」縺ァ縺ゅk
-
*viewerCore・スE・ス莉サ諢擾ソスE繝帙せ繝亥髄縺題埋縺・・ス・ス繝・・ス・ス・スE・スE
- 譛ャ逡ェ繝帙せ繝茨シ・stro 遲会シ峨〒菴ソ縺・・ス・ス縺吶¥縺吶k縺溘a縺ョ *阮・・ス・ス繝輔ぃ繧オ繝シ繝・ 縺ィ縺励※謠蝉セ帙@縺ヲ繧医>
- viewerCore 縺ッ蜀・・ス・ス縺ァ蠢・・ス・ス
bootstrapViewer*繧貞他縺ウ縲”ub 繧剃ソ晄戟縺励※蟋碑ュイ縺吶k縺縺代↓縺吶k - viewerCore 繧剃スソ縺・・ス・ス縺ゥ縺・・ス・ス縺ッ繝帙せ繝茨ソスE蜷茨シ亥ソ・・ス・ス縺ァ縺ッ縺ェ縺・・ス・スE
繝ャ繧、繝、繝ェ繝ウ繧ー隕冗ッ・・ス・スE
- Host 縺ッ *bootstrapViewer 繧ゅ@縺擾ソスE viewerCore 縺ョ縺ゥ縺。繧峨°**繧抵ソスE蜿」縺ォ縺吶k
- Host 縺ッ
runtime/core/*/runtime/renderer/*繧堤峩 import 縺励※縺ッ縺ェ繧峨↑縺・ - Host 縺ッ three.js / Object3D 縺ォ逶エ謗・隗ヲ繧後※縺ッ縺ェ繧峨↑縺・・ス・ス隗ヲ縺」縺ヲ縺医∴縺ョ縺ッ hub 縺ョ API 縺縺托シ・
險ア蜿ッ縺輔l繧区桃菴懶シ・ub.core.* 邨檎罰・スE・ス・・
- frame / filter / mode / selection / camera / runtime 繝輔Λ繧ー縺ョ get / set / step
- pick・スE・スEhub.pickObjectAt`・スE・ス縺ォ繧医k UUID 蜿門セ・
- ・スE・ス蟆・・ス・ス・スE・ス繧、繝吶Φ繝郁ウシ隱ュ・スE・ス
onFrameChanged,onSelectionChanged遲・
遖∵ュ「縺輔l繧区桃菴懶シ・
- 3DSS document 縺ョ譖ク縺肴鋤縺・
- exporter / 菫晏ュ・/ 3DSS 縺ク縺ョ譖ク縺肴綾縺・
- viewer 蜀・・ス・ス縺ョ three.js / Object3D 縺ク縺ョ逶エ謗・繧「繧ッ繧サ繧ケ
6.5.1 API 繝ャ繧、繝、繝ェ繝ウ繧ー
- viewerCore・スE・ス螟夜Κ蜈ャ髢具シ・
createViewerCore(canvasOrId, options)縺ェ縺ゥ繧帝壹§縲・- 蜀・・ス・ス縺ァ
bootstrapViewerFromUrl/bootstrapViewer繧貞他縺ウ縲・ hub縺ク縺ョ螳会ソスE縺ェ繝輔ぃ繧オ繝シ繝峨r謠蝉セ帙☆繧九・
- hub・スE・ス・スE驛ィ・スE・スE
hub.core.*/hub.pickObjectAt/hub.start/hub.stop繧呈戟縺、縲・
- core / renderer・スE・ス螳鯉ソスE蜀・・ス・ス・スE・スE
- 螟夜Κ縺九i逶エ謗・隗ヲ繧峨↑縺・・ス・スE
繝帙せ繝医い繝励Μ縺ッ 蠢・・ス・ス viewerCore 邨檎罰 縺ァ viewer 繧呈桃菴懊☆繧九・ hub / core / renderer 繧堤峩 import 縺励※縺ッ縺ェ繧峨↑縺・・ス・スE
6.5.2 險ア蜿ッ縺輔l繧区桃菴・
runtime API 繧帝壹§縺ヲ險ア蜿ッ縺輔l繧区桃菴懶ソスE・スE・スE
- frame / filter / mode / selection / camera / runtime 繝輔Λ繧ー縺ォ髢「縺吶k
- 隱ュ縺ソ蜿悶j・スE・スEet 邉サ・スE・スE
- 譖ク縺崎セシ縺ソ・スE・スEet / step / next / prev 邉サ・スE・スE
- pick・スE・スEpickObjectAt`・スE・ス縺ォ繧医k UUID 蜿門セ・
- 繧、繝吶Φ繝郁ウシ隱ュ・スE・ス蟆・・ス・ス諡。蠑オ・スE・ス・・
- 萓具シ啻onFrameChanged
,onSelectionChanged`
- 萓具シ啻onFrameChanged
遖∵ュ「縺輔l繧区桃菴懶ソスE・スE・スE
- 3DSS document 縺ョ譖ク縺肴鋤縺・
- 3DSS 縺ョ縲御ソ晏ュ倥阪d縲後お繧ッ繧ケ繝晢ソスE繝医阪→縺励※縺ョ蛻ゥ逕ィ
- viewer 蜀・・ス・ス縺ョ three.js / Object3D 縺ク縺ョ逶エ謗・繧「繧ッ繧サ繧ケ
6.6 繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス繝サ繧ィ繧ッ繧ケ繝晢ソスE繝域ゥ滂ソスE・スE・スE-11・スE・スE
6.6.1 繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス
viewer 譛ャ菴難シ・untime / viewerCore / hub・スE・ス・スE縲・ **繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス逕滂ソスE API 繧呈署萓帙@縺ヲ縺ッ縺ェ繧峨↑縺・*縲・
toDataURL/toBlob縺ェ縺ゥ縺ァ canvas 縺九i逕サ蜒上r蜿悶k陦檎ぜ縺ッ縲・- 繝帙せ繝医い繝励Μ・スE・スETML / Astro・スE・ス・スE雋ャ蜍吶→縺吶k縲・
- viewer 縺檎峡閾ェ縺ョ縲後せ繧ッ繧キ繝ァ繝懊ち繝ウ縲阪r謖√■縲・ 蜀・・ス・ス縺ァ逕サ蜒冗函謌撰ソスE繝繧ヲ繝ウ繝ュ繝シ繝峨r陦後≧縺薙→縺ッ遖∵ュ「縲・
逅・・ス・ス・スE・スE
- viewer 縺ッ縲梧ァ矩縺ョ髢イ隕ァ繝サ菴馴ィ薙阪↓迚ケ蛹悶@縲・ 逕サ蜒冗函謌舌ヤ繝シ繝ォ蛹悶r驕ソ縺代k縲・
- 蟆ら畑 API 繧定ィュ險医☆繧九→縲√Δ繝・・ス・ス縺斐→縺ォ莉墓ァ倥′閹ィ繧会ソスE縺溘a縲・
6.6.2 讒矩繧ィ繧ッ繧ケ繝晢ソスE繝・
viewer 譛ャ菴難ソスE谺。縺ョ繧ィ繧ッ繧ケ繝晢ソスE繝域ゥ滂ソスE繧呈戟縺」縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
- glTF / OBJ / FBX 遲・3D 繝「繝・・ス・ス蠖「蠑上∈縺ョ繧ィ繧ッ繧ケ繝晢ソスE繝・
- CSV / TSV 遲峨ユ繧ュ繧ケ繝亥ス「蠑上∈縺ョ繧ィ繧ッ繧ケ繝晢ソスE繝・
- SVG / PDF / 逕サ蜒擾ソスE繧ッ繝医Ν蠖「蠑上∈縺ョ繧ィ繧ッ繧ケ繝晢ソスE繝・
- 縲檎樟蝨ィ縺ョ filter / selection / frame 迥カ諷九阪r蜷ォ繧薙□ 3DSS 縺ク縺ョ譖ク縺肴綾縺・
3DSS 縺九i莉門ス「蠑上∈縺ョ螟画鋤縺ッ *modeler 繧・・ス・ス逕ィ繝・・スE繝ォ縺ョ雋ャ蜍・ 縺ィ縺励・ viewer 縺ッ read-only 縺ョ縺セ縺セ菫昴▽縲・
6.6.3 萓句、厄シ夲ソスE繧ケ繝茨ソスE繝ヲ繝シ繝・・ス・ス繝ェ繝・・ス・ス
繝帙せ繝医い繝励Μ縺檎峡閾ェ縺ォ・スE・スE
- canvas 繧偵く繝」繝励メ繝」縺励※逕サ蜒上ム繧ヲ繝ウ繝ュ繝シ繝会ソスE繧ソ繝ウ繧定ィュ鄂ョ
- API 縺九i 3DSS 繧貞叙蠕励@縺ヲ蛻・繝・・スE繝ォ縺ク貂。縺・
縺ィ縺・・ス・ス縺溷ョ溯」・・ス・ス縺吶k縺薙→縺ッ險ア蜿ッ縺輔l繧九・ 縺溘□縺励◎繧鯉ソスE viewer 莉墓ァ假ソスE荳驛ィ縺ァ縺ッ縺ェ縺上・ 繝帙せ繝亥崋譛会ソスE繝ヲ繝シ繝・・ス・ス繝ェ繝・・ス・ス縺ィ縺励※菴咲スョ縺・縺代k縲・
6.7 髢狗匱譎ゑソスE繝・・ス・ス繝茨ソスE繝・・ス・ス繝・・ス・ス謖・・スE・スE・ス髱櫁ヲ冗ッ・・ス・スE
譛ャ遽縺ッ謗ィ螂ィ莠矩・・ス・ス縺ゅj縲∝ソ・・ス・ス縺ァ縺ッ縺ェ縺・・ス・スE
6.7.1 譛菴朱剞遒コ隱阪☆縺ケ縺阪Ν繝シ繝・
髢狗匱譎ゅ↓譛菴朱剞遒コ隱阪☆繧九∋縺埼・・ス・ス・スE・スE
- 襍キ蜍輔Ν繝シ繝・
- viewer_dev.html 竊・viewerDevHarness 竊・bootstrapViewerFromUrl 竊・hub.start
- 蜈・蜉・
- 繝槭え繧ケ繝峨Λ繝・・ス・ス・スE・スorbit / pan / zoom
- PageUp / PageDown・スE・スframe ツア1・スE・スElider / label 霑ス髫擾シ・
- Esc・スE・スmode 蛻・・ス・ス・スE・スEUD pill / toast・スE・スE
- Home・スE・スcamera reset・スE・スEizmo HOME 縺ィ荳閾エ・スE・スE
- devBootLog
- Model 繝代ロ繝ォ縺ォ BOOT / MODEL / CAMERA / LAYERS / FRAME 縺ョ 5 陦後′荳ヲ縺カ縺薙→
- filter
- points / lines / aux 縺ョ ON/OFF 縺悟庄隕悶↓蜿肴丐縺輔l繧九%縺ィ
- selection / microFX
- 繧ッ繝ェ繝・・ス・ス縺ァ selection / focus UUID 縺梧峩譁ー縺輔l縲・
- microFX・スE・スExes / bounds / marker / glow / highlight・スE・ス縺梧Φ螳壹←縺翫j蜃コ繧九%縺ィ
6.7.2 DEBUG 繝輔Λ繧ー縺ョ驕狗畑
- DEBUG_* 縺ッ git commit 蜑阪↓ false 縺ォ謌サ縺吶°縲・ 迺ー蠅・・ス・ス謨ー繧・・ス・ス繝ォ繝峨ヵ繝ゥ繧ー縺ァ蛻・・ス・ス譖ソ縺医k縲・
- 荳譎ら噪縺ェ
console.log/debugger縺ェ縺ゥ縺ッ
繝ュ繝シ繧ォ繝ォ讀懆ィシ蠕後↓蜑企勁縺励.EBUG 繝輔Λ繧ー莉倥″繝ュ繧ャ繝シ縺ク遘サ縺吶・
6.8 microFX 驕狗畑繝ォ繝シ繝ォ・スE・ス隧ウ邏ー・スE・スE
譛ャ遽縺ッ縲・.4 遽縺ァ霑ー縺ケ縺・microFX 縺ョ陬懆カウ縺ィ縺励※縲・ runtime_spec / 7.11 遽縺ョ MicroFXPayload 繧定ク上∪縺医◆驕狗畑繝ォ繝シ繝ォ繧堤、コ縺吶・
6.8.1 microState・スE・スEicroFXPayload・スE・ス・スE蜑肴署
microState 縺ッ豢セ逕溽憾諷九〒縺ゅj縲・*core 縺檎函謌撰ソスE譖エ譁ー繝サ隗」髯、繧剃ク蜈・・ス・ス逅・*縺吶k縲・
- microState 縺ッ
uiState.microState縺ォ縺ョ縺ソ菫晄戟縺吶k - 逕滂ソスE繝サ隗」髯、縺ョ豁」隕上Ν繝シ繝茨ソスE
core.recomputeVisibleSet()縺ィ縺吶k ・スE・スEode / selection / visibleSet 謨エ蜷医→蜷梧凾縺ォ譖エ譁ー縺吶k・スE・スE
renderer 縺ッ microState 繧定ェュ繧縺縺代〒縲∵嶌縺肴鋤縺医※縺ッ縺ェ繧峨↑縺・・ス・スE
6.8.3 focus / selection / mode 縺ィ縺ョ髢「菫ゑシ・eso optional・スE・スE
-
microFX 縺ッ蟶ク縺ォ mode 縺ォ蠕灘ア槭☆繧具シ・
- mode = macro 竊・
microState = null・スE・スEicroFX OFF・スE・スE - mode = micro 竊・
microState != null・スE・ス蠢・・ス・ス縺ェ payload 繧定ィ育ョ暦シ・ - mode = meso 竊・optional
- v1 縺ァ縺ッ
meso繧・**macro 逶ク蠖難シ・icroFX 辟。縺暦シ・*縺ィ縺励※繧ゆサ墓ァ倬&蜿阪〒縺ッ縺ェ縺・ - meso 繧貞ョ溯」・・ス・ス繧句エ蜷茨ソスE縺ソ
microState != null繧定ィア蜿ッ縺吶k
- v1 縺ァ縺ッ
- mode = macro 竊・
-
focusUuid 縺ッ蜴溷援
selection.uuid縺ィ荳閾エ縺吶k
6.8.4 microFX 縺ョ ON/OFF
ON/OFF 縺ッ core 縺ョ雋ャ蜍吶〒縺ゅj縲〉enderer 縺ッ microState === null 縺九←縺・・ス・ス縺縺代〒蛻、譁ュ縺吶k縲・
microState === null- microFX overlay 繧偵☆縺ケ縺ヲ隗」髯、縺励|aseStyle 縺ォ螳鯉ソスE蠕ゥ蜈・・ス・ス繧・
microState !== null- focusUuid / relatedUuids / localBounds 遲峨↓蠕薙▲縺ヲ overlay 繧帝←逕ィ縺吶k
豕ィ諢擾シ・
- microFX 縺ョ隗」髯、・スE・ス蠕ゥ蜈・・スE **蟶ク縺ォ螳鯉ソスE蜿ッ騾・*縺ァ縺ゅk縺薙→・スE・スEaseStyle 縺ョ菫晄戟縺悟ソ・・ス・ス・・
- 隗」髯、縺悟ソ・・ス・ス縺ェ繧ソ繧、繝溘Φ繧ー・スE・ス萓具シ嗄acro 謌サ繧・/ selection 縺ョ null 蛹厄シ会ソスE
core.recomputeVisibleSet()縺御ソ晁ィシ縺吶k
6.8.5 renderer 蜀・・ス・ス縺ァ縺ョ遖∵ュ「莠矩・
renderer / microFX 螳溯」・・ス・ス陦後▲縺ヲ縺ッ縺ェ繧峨↑縺・・ス・ス縺ィ・スE・スE
- microState 繧呈嶌縺肴鋤縺医k
- struct・スE・スEDSS・スE・ス繧貞盾・スE縺帙★縺ォ迢ャ閾ェ縺ョ縲梧э蜻ウ縲阪r豎コ繧√k
- 萓具シ啅UID 譛ォ蟆セ縺ョ險伜捷繧・・ス・ス蜑阪↓蠢懊§縺ヲ迚ケ蛻・謇ア縺・・ス・ス繧・
- uiState.mode / selection 繧堤峩謗・譖ク縺肴鋤縺医k
- 讒矩繝・・スE繧ソ縺ォ萓晏ュ倥☆繧九h縺・・ス・ス縲梧£荵・・ス・ス縺ェ陬懈ュ」縲阪r蜀・・ス・ス縺ォ繧ュ繝」繝・・ス・ス繝・縺吶k
microFX 縺ッ縺ゅ¥縺セ縺ァ縲檎エ皮イ九↑隕冶ヲ壼柑譫懊Ξ繧、繝、縲阪〒縺ゅj縲・ 讒矩繝・・スE繧ソ繧・・ス・ス諷具ソスE遘サ繝ュ繧ク繝・・ス・ス縺ォ縺ッ莉具ソスE縺励↑縺・・ス・スE
7 諡。蠑オ繝サ莠呈鋤諤ァ・スE・スEiewer・スE・スschema 縺ョ螟牙喧縺ク縺ョ霑ス蠕難シ・
7.1 viewer 縺ョ諡。蠑オ譁ケ驥晢シ亥渕譛ャ蜴溷援・スE・スE
viewer 縺ッ 3DSS 縺ォ蟇セ縺励※縲√▽縺ュ縺ォ谺。縺ョ蜴溷援繧貞ョ医k縲・
-
*讒矩繝・・スE繧ソ縺ッ邨カ蟇セ縺ォ螟画峩縺励↑縺・・ス・スEtrict read-only・スE・スE
.3dss.json縺ッ AJV 縺ォ繧医k strict validation 繧帝夐℃縺励◆蠕後・core.data/core.document3dss縺ィ縺励※ deep-freeze 縺輔l繧九・- runtime / renderer / UI 縺ョ縺・・ス・ス縺ェ繧句ア、繧ゅ√%縺ョ讒矩繧・mutate 縺励※縺ッ縺ェ繧峨↑縺・・ス・スE
-
*繧ケ繧ュ繝シ繝樊コ匁侠繧呈怙蜆ェ蜈医@縲∝ッ帛ョケ繝「繝シ繝峨r謖√◆縺ェ縺・
- 謗。逕ィ荳ュ縺ョ
3DSS.schema.json縺ォ蜷茨ソスE縺励↑縺・・ス・ス繧。繧、繝ォ縺ッ隱ュ縺ソ霎シ縺ソ繧ィ繝ゥ繝シ縺ィ縺吶k縲・ additionalProperties:false蜑肴署縺ァ驕狗畑縺励∵悴遏・繝励Ο繝代ユ繧」縺ョ鮟呵ェ搾ソスE陦後o縺ェ縺・・ス・スE
- 謗。逕ィ荳ュ縺ョ
-
*窶懃炊隗」縺ッ縺励↑縺上※繧ゅh縺・・ス・ス縲∝」翫@縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
- viewer 縺瑚。ィ遉コ繧・UI 縺ォ菴ソ繧上↑縺・・ス・スE・ス・ス縺ァ縺ゅ▲縺ヲ繧ゅ∵ァ矩縺ィ縺励※縺ッ縺晢ソスE縺セ縺セ菫晄戟縺吶k縲・
- 荳崎ヲ√→隕九↑縺励◆鬆・・ス・ス縺ョ蜑企勁繝サ豁」隕丞喧繝サ陬懷ョ後↑縺ゥ縺ッ荳蛻・・ス・ス繧上↑縺・・ス・スE ・スE・ス陬懆カウ・スE・ス縺薙%縺ァ縺・・ス・ス縲御ソ晄戟縲阪→縺ッ縲・*繧ケ繧ュ繝シ繝槭〒險ア蜿ッ縺輔l縺ヲ縺・・ス・ス繝輔ぅ繝シ繝ォ繝・*繧・ viewer 縺悟茜逕ィ縺励↑縺上※繧らエ譽・・スE豁」隕丞喧縺励↑縺・・ス・ス縺ィ縺・・ス・ス諢丞袖縺ァ縺ゅk縲・ 繧ケ繧ュ繝シ繝槫、夜・・ス・ス縺ッ strict validation 縺ォ繧医j隱ュ霎シ諡貞凄縺吶k縲・
-
*諡。蠑オ縺ョ菴吝慍縺ッ UI・スE・ス謠冗判陬懷勧縺ョ縺ソ縺ォ髯仙ョ壹☆繧・
- microFX繝サHUD繝サgizmo 縺ェ縺ゥ縲∫エ皮イ九↓謠冗判繝ャ繧、繝、縺ォ髢峨§縺滓ゥ滂ソスE縺ョ縺ソ霑ス蜉蜿ッ閭ス縲・
- 讒矩繝・・スE繧ソ縺ォ蠖ア髻ソ縺吶k諡。蠑オ・スE・ス菫晏ュ假ソスE邱ィ髮・・スE繝槭う繧ー繝ャ繝シ繧キ繝ァ繝ウ遲会シ会ソスE蜈ィ縺ヲ遖∵ュ「縲・
7.2 繧ケ繧ュ繝シ繝橸ソスE蟆・・ス・ス諡。蠑オ縺ク縺ョ蟇セ蠢・
3DSS 繧ケ繧ュ繝シ繝橸ソスE SemVer・スE・スEMAJOR.MINOR.PATCH`・スE・ス縺ォ蠕薙▲縺ヲ譖エ譁ー縺輔l繧九・ viewer 縺ッ **隱ュ縺ソ蜿悶j蟆ら畑繧ッ繝ゥ繧、繧「繝ウ繝・*縺ィ縺励※縲√%繧後↓縺薙≧霑ス蠕薙☆繧九・
7.2.1 SemVer 縺ィ validator
- 繧ケ繧ュ繝シ繝槭ヵ繧。繧、繝ォ縺ッ蟶ク縺ォ蜊倅ク縺ョ
3DSS.schema.json繧・canonical 縺ィ縺吶k縲・ - viewer 縺ッ襍キ蜍墓凾縺ォ縺難ソスE schema 繧・AJV 縺ク隱ュ縺ソ霎シ縺ソ縲《trict 繝「繝シ繝峨〒 validator 繧呈ァ具ソスE縺吶k縲・
removeAdditional = falseuseDefaults = falsecoerceTypes = falseallErrors = truestrict邉サ繧ェ繝励す繝ァ繝ウ縺ッ隴ヲ蜻翫〒縺ッ縺ェ縺上お繝ゥ繝シ縺ィ縺励※謇ア縺・・ス・スE
- 蜈・蜉・
.3dss.json縺ョdocument_meta.version・スE・スEDSS 繝峨く繝・繝。繝ウ繝茨ソスE繝撰ソスE繧ク繝ァ繝ウ・スE・スE- schema 蛛エ
$id/$defs遲・ 繧貞盾辣ァ縺励・*major 繝撰ソスE繧ク繝ァ繝ウ縺・schema 縺ィ荳閾エ縺励※縺・・ス・ス縺薙→**繧堤「コ隱阪☆繧九・
7.2.2 minor / patch 縺ァ縺ョ霑ス蜉繝サ螟画峩
MAJOR 縺御ク閾エ縺励~MINOR/PATCH` 縺ョ蟾ョ蛻・・ス・ス schema 蛛エ縺ァ蜷ク蜿主庄閭ス縺ェ蝣エ蜷茨シ・
- viewer 縺梧眠縺励> schema 縺ォ霑ス蠕捺ク医∩縺ョ蝣エ蜷・
- 譁ー隕擾ソスE繝ュ繝代ユ繧」繝サenum 蛟、繝サ$defs 縺ェ縺ゥ縺ッ縲∵ァ矩縺ィ縺励※縺晢ソスE縺セ縺セ deep-freeze 縺励※菫晄戟縺吶k縲・
- viewer 縺後∪縺諢丞袖繧堤炊隗」縺励※縺・・ス・ス縺・・ス・スE・ス・ス縺ッ
- UI 縺ォ蜃コ縺輔↑縺・・ス・ス繧ゅ@縺上・縲罫aw JSON縲阪→縺励※陬懷勧陦ィ遉コ縺吶k縺ォ逡吶a繧九・
- 蛟、縺ョ螟画鋤繧・・ス・ス螳鯉ソスE陦後o縺ェ縺・・ス・スE
- viewer 縺悟商縺・schema 縺ョ縺セ縺セ縺ョ蝣エ蜷・
additionalProperties:false縺ォ繧医j譛ェ遏・繝励Ο繝代ユ繧」縺ッ validation NG 縺ィ縺ェ繧九・- 縺難ソスE蝣エ蜷医」iewer 縺ッ繝輔ぃ繧、繝ォ蜈ィ菴難ソスE隱ュ縺ソ霎シ縺ソ繧呈拠蜷ヲ縺励・ modeler 繧・schema 譖エ譁ー蛛エ縺ョ蟇セ蠢懊r蠕・・ス・ス縲・
窶サ縲悟商縺・viewer 縺梧眠縺励> schema 繧堤キゥ縺丞女縺托ソスE繧後k縲肴嫌蜍包ソスE謗。逕ィ縺励↑縺・・ス・スE
7.2.3 major 繝撰ソスE繧ク繝ァ繝ウ縺ョ髱樔コ呈鋤螟画峩
- major 荳堺ク閾エ = 隱ュ霎シ荳榊庄 縺ィ縺吶k縲・
- 萓具シ嘖chema
2.x縺ォ蟇セ縺励※1.x縺ョ繝輔ぃ繧、繝ォ縲√b縺励¥縺ッ縺晢ソスE騾・・ス・スE
- 萓具シ嘖chema
- viewer 縺瑚。後▲縺ヲ繧医>縺ョ縺ッ縲」alidation 繧ィ繝ゥ繝シ縺ィ縺励※蝣ア蜻翫☆繧九→縺薙m縺セ縺ァ縲・
- **繝槭う繧ー繝ャ繝シ繧キ繝ァ繝ウ繝サ閾ェ蜍募、画鋤繝サ謗ィ貂ャ陬懷ョ・*縺ッ荳蛻・・ス・ス豁「縲・
- 驕主悉 竊・迴セ陦後∵悴譚・ 竊・迴セ陦・縺・・ス・ス繧鯉ソスE譁ケ蜷代b蜷梧ァ倥・
- 縲悟ッ帛ョケ繝「繝シ繝峨阪鯉ソスE蜍輔い繝・・スE繧ー繝ャ繝シ繝峨阪↑縺ゥ縺ッ
modeler 繧・・ス・ス逕ィ螟画鋤繝・・スE繝ォ縺ョ雋ャ莉サ遽・・ス・ス縺ィ縺吶k縲・
7.3 aux.extension 縺ョ謇ア縺・
aux.extension 縺ッ縲∵ァ矩繝・・スE繧ソ蛛エ縺ョ諡。蠑オ逕ィ繝輔ャ繧ッ縺ァ縺ゅj縲」iewer 縺ッ谺。縺ョ繧医≧縺ォ謇ア縺・・ス・スE
7.3.1 extension 縺ョ蟄伜惠縺ッ險ア螳ケ縺吶k
- internal state・スE・スEore.data・スE・ス縺ォ縺ッ 縺晢ソスE縺セ縺セ菫晄戟 縺吶k・スE・スEeep-freeze 蟇セ雎。・スE・ス縲・
- viewer 縺檎炊隗」縺ァ縺阪k譛蟆丞腰菴搾シ井セ具シ壻ス咲スョ繝サ繝吶け繝医Ν繝サ濶イ縺ェ縺ゥ・スE・ス・スE縺ソ謠冗判縺ォ蛻ゥ逕ィ縺励※繧医>縲・
- extension 蜀・・スE諢丞袖隲悶↓縺、縺・・ス・ス
- 閾ェ蜍戊」懷ョ鯉ソスE謗ィ隲也函謌撰ソスE遖∵ュ「縲・
- 縲瑚カウ繧翫↑縺・・ス・ス蝣ア繧・AI 縺ァ蝓九a繧九阪↑縺ゥ繧らヲ∵ュ「縲・
7.3.2 extension 蟆ら畑 UI 縺ッ莉サ諢擾シ磯夢隕ァ髯仙ョ夲シ・
- 險ア縺輔l繧具ソスE縺ッ莉・荳具ソスE繧医≧縺ェ 髢イ隕ァ陬懷勧 UI 縺ォ髯舌i繧後k・スE・スE
- extension 縺ョ逕・JSON 繧定。ィ遉コ縺吶k繧、繝ウ繧ケ繝壹け繧ソ
- extension 縺ョ荳驛ィ繝輔ぅ繝シ繝ォ繝峨r繝ゥ繝吶Ν繧・tooltip 縺ォ陦ィ遉コ
- extension 繧堤キィ髮・・スE菫晏ュ倥☆繧・UI・スE・ス霑ス蜉 / 蜑企勁 / 譖エ譁ー・スE・ス・スE viewer 縺九i縺ッ謠蝉セ帙@縺ェ縺・・ス・スE 縺薙l繧会ソスE modeler 縺セ縺滂ソスE蛻・繝・・スE繝ォ縺ョ雋ャ蜍吶→縺吶k縲・
7.4 蜑肴婿莠呈鋤諤ァ・スE・ス譛ェ譚・繝撰ソスE繧ク繝ァ繝ウ・スE・スE
譛ェ譚・縺ョ schema 縺ォ蜷医o縺帙※菴懊i繧後◆ .3dss.json 縺ォ縺、縺・・ス・ス・スE・スE
- 迴セ蝨ィ謗。逕ィ荳ュ縺ョ
3DSS.schema.json縺ォ縺ェ縺・・ス・スE・ス・ス 竊・additionalProperties:false縺ォ繧医j NG縲・ $defs縺ェ縺ゥ縺ォ譛ェ遏・縺ョ螳夂セゥ縺悟性縺セ繧後※縺・・ス・ス繧ょ酔讒倥↓ NG縲・- 縲梧悴譚・繝撰ソスE繧ク繝ァ繝ウ繧堤キゥ縺剰ェュ縺ソ霎シ繧縲阪%縺ィ縺ッ縺励↑縺・・ス・スE
縺薙%縺ァ縺・・ス・ス viewer 縺ィ縺ッ縲∵悽逡ェ蛻ゥ逕ィ繧呈Φ螳壹@縺・runtime/*・スE・スEore / hub / renderer・スE・ス縺ァ縺ゅj縲・
髢狗匱閠・・ス・ス縺托ソスE螳滄ィ薙Ο繝シ繝繧・・ス・ス繝舌ャ繧ャ・スE・スEev-only 繝・・スE繝ォ・スE・ス・スE縺難ソスE髯舌j縺ァ縺ッ縺ェ縺・・ス・スE
縺昴l繧・dev 逕ィ繝・・スE繝ォ縺ッ viewer 莉墓ァ假ソスE蟇セ雎。螟悶→縺吶k縲・
7.5 蠕梧婿莠呈鋤諤ァ・スE・ス驕主悉繝撰ソスE繧ク繝ァ繝ウ・スE・スE
蜿、縺・3DSS 繝輔ぃ繧、繝ォ縺ォ縺、縺・・ス・ス・スE・スE
- 蠢・・ス・ス鬆・・ス・ス荳崎カウ 竊・
required縺ァ NG・スE・スEiewer 縺瑚」懷ョ後@縺ヲ縺ッ縺ェ繧峨↑縺・・ス・ス縲・ - 蝙倶ク堺ク閾エ 竊・NG・スE・ス謨ー蛟、繧呈枚蟄暦ソスE縺ィ縺励※邱ゥ蜥後☆繧九↑縺ゥ縺ッ NG・スE・ス縲・
- 蜿、縺・・ス・ス騾 竊・NG・スE・ス莠呈鋤繝ャ繧、繝、縺ッ謖√◆縺ェ縺・・ス・ス縲・
- viewer 縺檎峡閾ェ縺ォ譌ァ繝撰ソスE繧ク繝ァ繝ウ繧貞、画鋤繝サ陬應ソョ縺吶k縺薙→縺ッ遖∵ュ「縲・
驕主悉繝撰ソスE繧ク繝ァ繝ウ縺九i迴セ陦後ヰ繝シ繧ク繝ァ繝ウ縺ク縺ョ遘サ陦鯉ソスE縲・ modeler / 蟆ら畑螟画鋤繧ケ繧ッ繝ェ繝励ヨ / 莠コ髢難ソスE菴懈・ュ遽・・ス・ス縺ァ縺ゅj縲」iewer 縺ョ蠖ケ蜑イ螟悶→縺吶k縲・
7.6 viewer 蛛エ縺ョ險ア螳ケ縺輔l繧区僑蠑オ
viewer 縺梧僑蠑オ縺励※繧医>縺ョ縺ッ UI 繝ャ繧、繝、縺ィ謠冗判陬懷勧繝ャ繧、繝、縺ョ縺ソ縲・
險ア螳ケ縺輔l繧区僑蠑オ萓・
- 繝・・スE繝橸ソスE譖ソ・スE・ス繝ゥ繧、繝・/ 繝繝シ繧ッ縺ェ縺ゥ・スE・スE
- HUD 隕∫エ
- 霆ク繝サ繧ー繝ェ繝・・ス・ス蠑キ隱ソ
- 蜃。萓具ソスE繧ケ繧ア繝シ繝ォ繝撰ソスE
- 繝「繝シ繝会ソスE繝輔Ξ繝シ繝繝サ繝輔ぅ繝ォ繧ソ迥カ諷具ソスE陦ィ遉コ
- 繧ォ繝。繝ゥ謫堺ス懶ソスE謾ケ蝟・
- ease 莉倥″ orbit / pan / zoom
- 隕也せ繝励Μ繧サ繝・・ス・ス・スE・スEront / side / top / iso 遲会シ・
- microFX 邉サ縺ョ隕冶ヲ夊」懷勧
- focus 蜻ィ霎コ縺ョ glow / bounds / axes 陦ィ遉コ縺ェ縺ゥ
- 陦ィ遉コ譛驕ゥ蛹・
- instancing / caching / LOD 縺ェ縺ゥ縲∵ァ矩荳榊、会ソスE遽・・ス・ス縺ァ縺ョ譛驕ゥ蛹・
縺・・ス・ス繧後b *3DSS 縺ョ讒矩・スE・スEoints / lines / aux / document_meta・スE・ス繧呈嶌縺肴鋤縺医↑縺・
縺ィ縺・・ス・ス譚。莉カ繧呈コ縺溘☆髯舌j縲・ソスE逕ア縺ォ諡。蠑オ縺励※繧医>縲・
7.7 遖∵ュ「縺輔l繧区僑蠑オ
viewer 縺ォ蟇セ縺励※縲∵ャ。縺ョ繧医≧縺ェ諡。蠑オ繧定ソス蜉縺励※縺ッ縺ェ繧峨↑縺・・ス・スE
- 讒矩繝・・スE繧ソ縺ョ邱ィ髮・・ス・ス・スE
- 鬆・・ス・ス縺ョ霑ス蜉繝サ譖エ譁ー繝サ蜑企勁
- Undo / Redo
- annotation / comment / note 縺ェ縺ゥ邱ィ髮・・ス・ス蠢オ
- 讒矩繝・・スE繧ソ縺ョ菫ョ蠕ゥ繝サ陬懷ョ鯉ソスE繝槭う繧ー繝ャ繝シ繧キ繝ァ繝ウ
- 谺謳榊、縺ョ謗ィ貂ャ蝓九a
- 譛ェ譚・繧ケ繧ュ繝シ繝樣・・ス・ス縺ョ謗ィ貂ャ逕滂ソスE
- 縲計iewer 迢ャ閾ェ蠖「蠑上阪∈縺ョ菫晏ュ・
- AI 陬懷ョ鯉ソスE螟画鋤
- 諢丞袖隲悶↓蝓コ縺・縺擾ソスE蜍募、画鋤繝サ隕∫エ・・スE蜀搾ソスE鄂ョ
- extension 縺ョ蜀・・ス・ス繧・AI 縺ァ閾ェ蜍戊」懷ョ・
- viewerSettings 縺ョ豌ク邯壼喧
- viewerSettings 繧・JSON 縺ィ縺励※菫晏ュ倥@縲・ソスE隱ュ縺ソ霎シ縺ソ縺吶k縺薙→・スE・ス隧ウ邏ー縺ッ 5.x 蜿ゑソスE・スE・ス縲・
- v1 縺ァ縺ッ UI 迥カ諷具ソスE繧サ繝・・ス・ス繝ァ繝ウ蜀・・スE荳譎ら憾諷九↓髯仙ョ壹☆繧九・
- 繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス / export 讖滂ソスE縺ョ蜀・・ス・ス
- glTF / SVG / CSV 縺ェ縺ゥ縺ク縺ョ讒矩 export 繧・viewer runtime 縺ォ逶エ謗・謖√◆縺帙k縺薙→縲・
- Canvas 縺ョ繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス蜿門セ・API 繧・viewer 縺ョ豁」蠑乗ゥ滂ソスE縺ィ縺励※謠蝉セ帙☆繧九%縺ィ縲・ ・スE・ス蠢・・ス・ス縺ェ繧・host 蛛エ縺後ヶ繝ゥ繧ヲ繧カ讓呎コ匁ゥ滂ソスE繧・・ス・ス驛ィ繝・・スE繝ォ縺ァ蜿門セ励☆繧九ゑシ・
縺薙l繧会ソスE遖∵ュ「莠矩・・ス・ス縺励※譏守、コ縺励」iewer 縺ッ 邏秘夢隕ァ繧「繝励Μ 縺ァ縺ゅk縺薙→繧剃ソ晁ィシ縺吶k縲・
7.8 莉墓ァ伜、画峩譎ゑソスE viewer 蛛エ縺ョ蟇セ蠢・
3DSS 繧ケ繧ュ繝シ繝槭d viewer 莉墓ァ倥′譖エ譁ー縺輔l縺溷エ蜷医」iewer 縺瑚。後≧縺ケ縺榊ッセ蠢懶ソスE莉・荳九↓髯仙ョ壹&繧後k縲・
-
Validator 縺ョ譖エ譁ー
- 謗。逕ィ縺吶k
3DSS.schema.json繧貞キョ縺玲崛縺医、JV 蛻晄悄蛹悶r譖エ譁ー縺吶k縲・ - validation 繧ィ繝ゥ繝シ縺ョ繝ュ繧ー繝サ繝。繝・・ス・ス繝シ繧ク蠖「蠑上r蠢・・ス・ス縺ォ蠢懊§縺ヲ隱ソ謨エ縺吶k縲・
- 謗。逕ィ縺吶k
-
謠冗判繝ュ繧ク繝・・ス・ス縺ョ譛蟆城剞縺ョ譖エ譁ー
- appearance / aux.module 縺ェ縺ゥ縲《chema 諡。蠑オ縺ォ蠢懊§縺ヲ renderer 縺ョ隗」驥医r諡。蠑オ縺吶k縲・
- 譌「蟄假ソスE讒矩隗」驥医r螢翫&縺ェ縺・・ス・スE・ス・ス縺ァ縺ョ縺ソ螟画峩縺吶k縲・
-
UI 縺ョ隱ソ謨エ
- 譁ー縺励> module / signification / tags 縺ェ縺ゥ繧偵ヵ繧」繝ォ繧ソ繝サ蜃。萓九↓霑ス蜉縺吶k縲・
- 荳崎ヲ√↓縺ェ縺」縺・UI 隕∫エ繧貞炎髯、縺吶k縲・
-
讒矩繝・・スE繧ソ縺ク縺ョ譖ク縺肴綾縺暦ソスE遖∵ュ「
- 莉墓ァ伜、画峩繧堤炊逕ア縺ォ viewer 蛛エ縺鯉ソスE蜍募、画鋤繧定。後>縲・ 譁ー縺励> .3dss.json 繧呈嶌縺搾ソスE縺吶%縺ィ縺ッ陦後o縺ェ縺・・ス・スE
7.9 諡。蠑オ繝サ莠呈鋤諤ァ縺ォ髢「縺吶k遖∵ュ「莠矩・・ス・ス邨ア蜷茨シ・
譛ャ遶縺ョ蜀・・ス・ス繧偵∪縺ィ繧√k縺ィ縲」iewer 縺ッ谺。繧偵@縺ヲ縺ッ縺ェ繧峨↑縺・・ス・スE
- 謗。逕ィ荳ュ縺ョ
3DSS.schema.json縺ォ螳夂セゥ縺輔l縺ヲ縺・・ス・ス縺・・ス・スE・ス・ス・スE・ス繧ケ繧ュ繝シ繝槫、夜・・ス・ス・スE・ス・スE隱ュ霎シ繝サ菫晄戟繝サ隗」驥医・ - major 荳堺ク閾エ縺ョ 3DSS 繝輔ぃ繧、繝ォ繧偵悟ッ帛ョケ繝「繝シ繝峨阪〒隱ュ縺ソ霎シ繧縺薙→縲・
- 讒矩繝・・スE繧ソ縺ョ菫ョ蠕ゥ繝サ閾ェ蜍戊」懷ョ鯉ソスE繝槭う繧ー繝ャ繝シ繧キ繝ァ繝ウ縲・
- AI 縺ォ繧医k讒矩謗ィ貂ャ繝サ霑ス蜉鬆・・ス・ス縺ョ逕滂ソスE縲・
- 邱ィ髮・UI・スE・スEdd / update / remove / undo / redo・スE・ス・スE蟆趣ソスE縲・
- viewerSettings 繧呈ーク邯壼喧縺励∵ャ。蝗櫁オキ蜍墓凾縺ォ閾ェ蜍募セゥ蜈・・ス・ス繧九%縺ィ縲・
- extension 縺ョ諢丞袖隗」驥茨ソスE讒矩逕滂ソスE繝サ陬懷ョ鯉シ域ァ矩螟画峩縺ォ逶ク蠖薙☆繧九b縺ョ・スE・ス縲・
- 繧ケ繧ッ繝ェ繝シ繝ウ繧キ繝ァ繝・・ス・ス / export 繧・viewer runtime 縺ョ雋ャ蜍吶→縺励※蜀・・ス・ス縺吶k縺薙→縲・
縺薙l繧峨r遖√§繧九%縺ィ縺ァ縲」iewer 縺ッ *縲茎trict 縺九▽髱樒エ螢翫↑髢イ隕ァ蟆ら畑繧ッ繝ゥ繧、繧「繝ウ繝医・ 縺ィ縺励※ 髟キ譛溽噪縺ェ莠呈鋤諤ァ繧堤カュ謖√☆繧九・
7.10 Frame UI 謫堺ス懶ソスE繝ェ繧キ繝シ・スE・ス繝輔Ξ繝シ繝謫堺ス懆ヲ冗ッ・・ス・スE
7.10.1 蝓コ譛ャ譁ケ驥・
- frame 縺ッ荳谺。蜈・・スE謨エ謨ー ID 縺ァ邂。逅・・ス・ス繧具シ・frameId: number`・スE・ス縲・
frame.range = {min, max}繧呈コ縺溘☆min 竕、 frameId 竕、 max縺ョ髮「謨」蛟、縺ョ縺ソ繧呈桶縺・・ス・スE- viewer 繧ウ繧「・スE・スEcore.frameController`・スE・ス・スE *髮「謨」繧ケ繝・・ス・ス繝・ 縺ィ縺励※ frame 繧堤ョ。逅・・ス・ス縲・ 騾」邯壼、繧・・ス・ス髢薙・謇ア繧上↑縺・・ス・スE
- frame 蛻・・ス・ス縺ョ雋ャ蜍呻ソスE
- 蜈・蜉帶桃菴・竊・
activeFrameId譖エ譁ー - 縺昴l縺ォ莨エ縺・
visibleSet蜀崎ィ育ョ・ 縺ォ髯仙ョ壹@縲・D 繧ソ繧、繝繝ゥ繧、繝ウ UI 縺ョ陦ィ迴セ繧・・ス・スE・ス・ス縺ッ UI 螻、縺ォ蟋費ソスE繧九・
- 蜈・蜉帶桃菴・竊・
7.10.2 謫堺ス應ス鍋ウサ・スE・スツア1 繧ケ繝・・ス・ス繝嶺クュ蠢・・ス・スE
v1 縺ョ蝓コ譛ャ謫堺ス懶ソスE縲・ツア1 繧ケ繝・・ス・ス繝暦ソスE繝夲ソスE繧ク騾√j* 繧剃クュ蠢・・ス・ス險ュ險医☆繧九・
- UI 繝懊ち繝ウ
- Step Back:
prev - Step Forward:
next - Rew/Home:
frame.set(range.min) - FF:
frame.set(range.max) - Play: 荳螳夐俣髫斐〒
next・スE・ス譛ォ蟆セ蛻ー驕疲凾縺ッrange.min縺ォ繝ォ繝シ繝暦シ・
- Step Back:
- 繧ケ繝ゥ繧、繝
range.min縲彖range.max` 縺ョ謨エ謨ー蛟、縺ョ縺ソ繧貞叙繧九・input/change繧、繝吶Φ繝医〒frame.set(value)繧貞他縺カ縲・
- 繧ュ繝シ繝懶ソスE繝会シ域ィ呎コ悶ワ繝ウ繝峨Μ繝ウ繧ー・スE・スE
PageUp:nextPageDown:prev- 縺薙l繧会ソスE
KeyboardInput竊・hub.core.frame.next/hub.core.frame.prev/邨檎罰縺ァ蜃ヲ逅・・ス・ス縲・ UI 繝擾ソスE繝阪せ蛛エ縺九i逶エ謗・ frameController 繧定ァヲ繧峨↑縺・・ス・スE
Space 竊・Play/Pause 繝医げ繝ォ縺ェ縺ゥ縲ゞI 蟆ら畑繧キ繝ァ繝シ繝医き繝・・ス・ス縺ッ
viewerDevHarness 蛛エ縺ァ縺ョ縺ソ螳溯」・・ス・ス縺ヲ繧医>・スE・ス譛ャ逡ェ viewer 縺ァ縺ッ莉サ諢擾シ峨・
7.10.3 mode / microFX 縺ィ縺ョ髢「菫・
-
蜊倡匱縺ョ frame 遘サ蜍包シ按ア1 step / slider・スE・ス・スE macro / meso / micro 縺・・ス・ス繧鯉ソスE mode 縺九i繧ょョ溯。後@縺ヲ繧医>縲・
- 縺溘□縺励’rame 螟画峩蠕鯉ソスE豢セ逕溽憾諷区峩譁ー縺ッ 蠢・・ス・ス
core.recomputeVisibleSet()縺ォ髮・・ス・スE・ス・ス繧九・ ・スE・スEisibleSet / selection謨エ蜷・/ microState 縺ョ譖エ譁ー/隗」髯、繧貞性繧・スE・スE
- 縺溘□縺励’rame 螟画峩蠕鯉ソスE豢セ逕溽憾諷区峩譁ー縺ッ 蠢・・ス・ス
-
*frame 蜀咲函・スE・スElay・スE・ス荳ュ縺ョ蛻カ邏・
- 蜀咲函髢句ァ区凾縺ォ
uiState.mode繧・"macro"縺ォ謌サ縺吶・ uiState.runtime.isFramePlaying = true縺ィ縺励[icroFX 繧堤┌蜉ケ蛹悶☆繧九・- 蜀咲函荳ュ縺ッ
core.recomputeVisibleSet()縺・uiState.microState = null繧剃ソ晁ィシ縺吶k縲・ - 蜀咲函蛛懈ュ「譎ゅ↓
isFramePlaying = false縺ィ縺励∝ソ・・ス・ス縺ェ繧・core.recomputeVisibleSet()縺ァ microState 繧抵ソスE隧穂セ。縺吶k縲・
- 蜀咲函髢句ァ区凾縺ォ
豕ィ險假シ・
- v1 縺ァ縺ッ
meso縺ッ optional 縺ィ縺励∝ョ溯」・・ス・ス辟。縺・・ス・ス蜷茨ソスE macro 逶ク蠖難シ・icroFX辟。縺暦シ峨→縺励※謇ア縺」縺ヲ繧医>縲・
7.10.4 camera / filter 縺ィ縺ョ髢「菫・
- frame 謫堺ス懶ソスE繧ォ繝。繝ゥ state 繧堤峩謗・螟画峩縺励↑縺・・ス・ス・スE蜍輔き繝。繝ゥ縺ッ蟆・・ス・ス諡。蠑オ・スE・ス縲・
- filter・スE・スEoints/lines/aux・スE・ス螟画峩譎ゅ→蜷梧ァ倥↓縲’rame 螟画峩蠕鯉ソスE
visibleSet繧抵ソスE險育ョ・- microFX / selection 繝上う繝ゥ繧、繝医r蠢・・ス・ス縺ォ蠢懊§縺ヲ蜀埼←逕ィ
縺吶k縺ョ縺ソ縺ィ縺励∵ァ矩繝・・スE繧ソ縺ォ縺ッ莉具ソスE縺励↑縺・・ス・スE
7.10.5 髻ウ螢ー繝昴Μ繧キ繝シ
viewer / modeler 縺ィ繧ゅ↓ **UI 蜉ケ譫憺浹縺ッ謗。逕ィ縺励↑縺・*縲・
- 繧ウ繝ウ繝・・ス・ス繝・・スE・スE・ス蜍慕判繝サ3D 繧「繝九Γ繝シ繧キ繝ァ繝ウ遲会シ峨′迢ャ閾ェ縺ォ魑エ繧峨☆髻ウ縺ッ萓句、悶・
- viewer UI 縺ョ謫堺ス懶シ・rame 遘サ蜍包ソスE蜀咲函繝懊ち繝ウ繝サgizmo 遲会シ会ソスE螳鯉ソスE繧オ繧、繝ャ繝ウ繝医→縺吶k縲・
- 險ュ螳夂判髱「縺ォ繧ゅ郡ound縲阪郡FX縲阪↑縺ゥ縺ョ鬆・・ス・ス縺ッ霑ス蜉縺励↑縺・・ス・スE
7.11 microFX 窶・繝溘け繝ュ隕冶ヲ夊」懷勧繧「繝ォ繧エ繝ェ繧コ繝・スE・スEiewer 蟆ら畑・スE・スE
7.11.0 讎りヲ√→繝「繧ク繝・繝シ繝ォ讒矩
microFX 縺ッ縲梧ァ矩繝・・スE繧ソ繧剃ク蛻・・ス・ス譖エ縺帙★縲[icro / meso 繝「繝シ繝画凾縺ョ螻謇讒矩繧・ 隱ュ縺ソ蜿悶j繧・・ス・ス縺上☆繧九◆繧・ソスE隕冶ヲ夊」懷勧縲搾ソスE邱冗ァー縺ィ縺吶k縲・
蜀・・ス・ス逧・・ス・ス縺ッ谺。縺ョ 3 繝ャ繧、繝、縺ォ蛻・・ス・ス繧後k縲・
- *microState・スE・スEore.microController・スE・スE
- selection / cameraState / structIndex 縺ェ縺ゥ縺九i縲・ 繝輔か繝シ繧ォ繧ケ UUID繝サ蜴溽せ蠎ァ讓呻ソスE螻謇繝舌え繝ウ繝・・ス・ス繝ウ繧ー縺ェ縺ゥ繧定ィ育ョ励☆繧九・
- three.js 縺ョ Object3D 縺ォ縺ッ萓晏ュ倥@縺ェ縺・・ス・ス繝峨Γ繧、繝ウ螻、縲・
- microFX-core
visibleSet繧貞燕謠舌↓縲√ヵ繧ゥ繝シ繧ォ繧ケ蜴溽せ縺九i縺ョ霍晞屬繝サ謗・邯夐未菫ゅ↑縺ゥ繧定ゥ穂セ。縺励・ 縲後←縺ョ uuid 繧偵←縺ョ遞句コヲ蠑キ隱ソ / 貂幄。ー縺吶k縺九阪r豎コ螳壹☆繧九・- opacity繝サcolor 縺ェ縺ゥ縺ク縺ョ蠖ア髻ソ蠎ヲ・スE・ス菫よ焚・スE・ス繧堤ョ暦ソスE縺吶k縲・
- *microFX-overlays・スE・スEenderer 蛛エ・スE・スE
- microState 縺ィ microFX-core 縺ョ邨先棡繧貞女縺大叙繧翫・
three.js 繧キ繝シ繝ウ蜀・・ス・ス glow / bounds / axes / highlight 縺ェ縺ゥ縺ョ
陬懷勧繧ェ繝悶ず繧ァ繧ッ繝医r霑ス蜉繝サ譖エ譁ー繝サ蜑企勁縺吶k縲・
- microState 縺ィ microFX-core 縺ョ邨先棡繧貞女縺大叙繧翫・
three.js 繧キ繝シ繝ウ蜀・・ス・ス glow / bounds / axes / highlight 縺ェ縺ゥ縺ョ
7.11.1 microState 縺ョ蠖「蠑・
microState 縺ッ MicroFXPayload 縺ィ蜻シ縺カ蜀・・ス・ス繧ェ繝悶ず繧ァ繧ッ繝医〒縲∵ヲゑソスE谺。縺ョ蠖「繧偵→繧九・
type MicroFXPayload = {
focusUuid: string; // 繝輔か繝シ繧ォ繧ケ蟇セ雎。縺ョ UUID
kind: "points" | "lines" | "aux" | null;
focusPosition: [number, number, number];// 繝橸ソスE繧ォ繝シ遲会ソスE蝓コ貅紋ス咲スョ・スE・スEorld 蠎ァ讓呻シ・
relatedUuids: string[]; // 1hop 謗・邯壹↑縺ゥ縲・・ス・ス騾」 UUID 鄒、
localBounds: {
center: [number, number, number];
size: [number, number, number];
} | null;
};
core.microController縺ッ selection / structIndex / cameraState 繧偵b縺ィ縺ォ
豈弱ヵ繝ャ繝シ繝縺ァ縺ッ縺ェ縺上∝ソ・・ス・ス縺ェ縺ィ縺阪□縺・MicroFXPayload | null繧呈峩譁ー縺吶k縲・uiState.microState縺ォ縺難ソスE payload 縺御ソ晄戟縺輔l縲」iewerHub 竊・renderer 縺ォ莨晞#縺輔l繧九・
7.11.2 驕ゥ逕ィ譚。莉カ・スE・スEode繝サ繝ゥ繝ウ繧ソ繧、繝迥カ諷具シ・
microFX 縺ッ谺。縺ョ譚。莉カ繧偵☆縺ケ縺ヲ貅縺溘☆縺ィ縺搾ソスE縺ソ譛牙柑縺ィ縺ェ繧九・
uiState.mode === "micro"- mode 縺ョ螳夂セゥ繝サ驕キ遘サ譚。莉カ縺ッ隨ャ 4.6 遽・スE・ス繧ォ繝。繝ゥ繝「繝シ繝会シ峨r蜿ゑソスE縲・
uiState.viewerSettings.fx.micro.enabled === trueuiState.runtime.isFramePlaying === falseuiState.runtime.isCameraAuto === false・スE・ス蟆・・ス・ス縺ョ閾ェ蜍輔き繝。繝ゥ逕ィ繝輔Λ繧ー・スE・スE
縺・・ス・ス繧後°縺梧コ縺溘&繧後↑縺・・ス・ス蜷医〉enderer 縺ッ
applyMicroFX(null)逶ク蠖難ソスE蜃ヲ逅・・ス・ス陦後>縲・visibleSet蜀・・スE蜈ィ隕∫エ縺ョ謠冗判螻樊ァ繧・baseStyle・スE・ス讒矩縺ォ蝓コ縺・縺上ョ繝輔か繝ォ繝茨シ峨∈謌サ縺吶・
7.11.3 microFX-overlays・スE・スEarker / glow / axes / bounds / highlight・スE・スE
microFX-overlays 縺ッ縲[icroState 繧抵ソスE縺ォ three.js 繧キ繝シ繝ウ蜀・・ス・ス霑ス蜉縺輔l繧・ 陬懷勧繧ェ繝悶ず繧ァ繧ッ繝育セ、縺ョ邱冗ァー縺ィ縺吶k縲・
v1 縺ァ縺ッ谺。縺ョ繝「繧ク繝・繝シ繝ォ繧呈Φ螳壹☆繧九・
- marker
focusPosition繧貞渕貅悶↓縲∝ー上&縺ェ繝橸ソスE繧ォ繝シ・スE・ス繧「繧、繧ウ繝ウ・スE・ス繧定。ィ遉コ縺吶k縲・
- glow
- 繝輔か繝シ繧ォ繧ケ隕∫エ縺ョ蜻ィ霎コ縺ォ逅・・ス・ス / 繝√Η繝シ繝也憾縺ョ繝上Ο繝シ繧帝㍾縺ュ繧九・
- axes
- microFocus 蜻ィ霎コ縺ォ螻謇蠎ァ讓呵サク・スE・スE/Y/Z・スE・ス繧定。ィ遉コ縺吶k縲・
- bounds
localBounds縺ォ蝓コ縺・縺丞ア謇 bounding box 繧定。ィ遉コ縺吶k縲・
- highlight
- 繝輔か繝シ繧ォ繧ケ隕∫エ縺ォ豐ソ縺」縺溘が繝シ繝撰ソスE繝ャ繧、邱壹r謠冗判縺吶k縲・
蜈ア騾壹Ν繝シ繝ォ・スE・スE
- 縺・・ス・ス繧後b struct・スE・スEDSS・スE・ス縺ォ縺ッ荳蛻・・ス・ス繧後★縲》hree.js 縺ョ Object3D 霑ス蜉繝サ蜑企勁縺ィ
material・スE・スEolor / opacity / transparent 遲会シ会ソスE螟画峩縺ョ縺ソ縺ァ螳溯」・・ス・ス繧九・ - macro 繝「繝シ繝峨〒縺ッ microFX-overlays 縺ッ蟶ク縺ォ辟。蜉ケ・スE・スE.11.7 蜿ゑソスE・スE・ス縲・
v1 縺ァ縺ッ *highlight 繧貞ソ・・ス・スE 縺ィ縺励√◎縺ョ莉厄ソスE繝「繧ク繝・繝シ繝ォ縺ッ optional 縺ィ縺吶k縲・
7.11.4 霍晞屬繝輔ぉ繝シ繝峨→謗・邯壼シキ隱ソ
microFX-core 縺ッ縲√ヵ繧ゥ繝シ繧ォ繧ケ蜴溽せ縺ィ縺ョ霍晞屬縺ィ謗・邯夐未菫ゅ↓蝓コ縺・縺・ 蜷・・ス・ス邏縺ョ謠冗判蠑キ蠎ヲ繧呈アコ繧√k縲・
-
*霍晞屬繝輔ぉ繝シ繝・
- 莉サ諢剰ヲ∫エ
u縺ォ蟇セ縺励√◎縺ョ莉」陦ィ菴咲スョp(u)縺ィfocusPosition縺ィ縺ョ霍晞屬d繧定ィ育ョ励☆繧九・ - 霍晞屬
d縺ォ蝓コ縺・縺・・ス・ス 0縲・ 縺ョ繝輔ぉ繝シ繝我ソよ焚fade(d)繧貞ョ夂セゥ縺吶k縲・ - 萓具シ・
d 竕、 R1竊・fade = 1.0・スE・ス螳鯉ソスE荳埼擾ソスE・スE・スEd 竕・ R2竊・fade = minOpacity・スE・ス驕譁ケ縺ッ阮・・ス・ス・スE・スER1 < d < R2竊・邱壼ス「陬憺俣縲√b縺励¥縺ッ ease 莉倥″繧ォ繝シ繝・
- 莉サ諢剰ヲ∫エ
-
*謗・邯壼シキ隱ソ・スE・スE hop 蜻ィ霎コ・スE・スE
- 繝輔か繝シ繧ォ繧ケ縺・point 縺ョ蝣エ蜷茨シ・
- 縺晢ソスE point 繧堤ォッ轤ケ縺ォ謖√▽ line 繧・1hop line 縺ィ縺吶k縲・
- 縺昴l繧会ソスE line 縺ョ繧ゅ≧荳譁ケ縺ョ遶ッ轤ケ point 繧・1hop point 縺ィ縺吶k縲・
- 繝輔か繝シ繧ォ繧ケ縺・line 縺ョ蝣エ蜷茨シ・
- 縺晢ソスE line 縺ョ遶ッ轤ケ point 繧・1hop point 縺ィ縺吶k縲・
- 縺薙l繧峨→縺、縺ェ縺後k line 繧・1hop line 縺ィ縺吶k縲・
- 1hop 隕∫エ縺ッ霍晞屬繝輔ぉ繝シ繝峨↓蜉縺医※縲∝刈轤ケ・スE・ス・スE繧九&蠅励@繝サ螟ェ縺募「励@縺ェ縺ゥ・スE・ス縺ァ蠑キ隱ソ縺励※繧医>縲・
- 繝輔か繝シ繧ォ繧ケ縺・point 縺ョ蝣エ蜷茨シ・
蜈キ菴鍋噪縺ェ菫よ焚繧・・ス・ス繝シ繝厄ソスE renderer/microFX/config.js 縺ォ髮・・ス・スE・ス・ス縲・
謨ー蛟、繝√Η繝シ繝九Φ繧ー縺ッ縺晢ソスE繝輔ぃ繧、繝ォ縺ョ縺ソ繧貞、画峩縺吶l縺ー繧医>險ュ險医→縺吶k縲・
7.11.5 繝代ヵ繧ゥ繝シ繝槭Φ繧ケ縺ィ繧ケ繧ウ繝シ繝・
- microFX 縺ッ 蟶ク縺ォ
visibleSet蜀・・スE隕∫エ縺ョ縺ソ 繧貞ッセ雎。縺ィ縺吶k縲・- 髱櫁。ィ遉コ隕∫エ縺ォ蟇セ縺励※霍晞屬險育ョ励d overlay 繧定。後o縺ェ縺・・ス・スE
- 螟ァ隕乗ィ。繝・・スE繧ソ縺ォ蟇セ縺励※繧らエ邯サ縺励↑縺・・ス・ス縺・・ス・スE
- per-frame 縺ァ縺ョ螟ァ驥・
new繧帝∩縺代k・スE・ス・スE蛻暦ソスE蛻ゥ逕ィ縺ェ縺ゥ・スE・ス縲・ - 繧ェ繝シ繝撰ソスE繝ャ繧、逕ィ Object3D 縺ョ蜀榊茜逕ィ・スE・スEensure*` 繝代ち繝シ繝ウ・スE・ス繧貞渕譛ャ縺ィ縺吶k縲・
- per-frame 縺ァ縺ョ螟ァ驥・
- frame / filter 螟画峩譎ゑソスE縺ソ蜀崎ゥ穂セ。縺励√き繝。繝ゥ縺ョ蠕ョ蟆冗ァサ蜍輔#縺ィ縺ォ
蜈ィ菴薙r蜀崎ィ育ョ励@縺ェ縺・・ス・ス縺・・ス・ス螳溯」・・ス・ス縺ヲ繧医>・スE・ス霑台シシ縺ョ遽・・ス・ス縺ァ・スE・ス縲・
7.11.6 renderer 縺ィ縺ョ繧、繝ウ繧ソ繝輔ぉ繝シ繧ケ
renderer 蛛エ縺ョ microFX 髢「騾」 API 縺ッ谺。縺ョ繧医≧縺ェ譛蟆上う繝ウ繧ソ繝輔ぉ繝シ繧ケ縺ィ縺吶k縲・
applyMicroFX(microState: MicroFXPayload | null): voidnull縺ョ蝣エ蜷茨シ夲ソスE繧ェ繝シ繝撰ソスE繝ャ繧、繧貞炎髯、縺励|aseStyle 縺ォ謌サ縺吶・- payload 縺後≠繧句エ蜷茨シ・
- microFX-overlays 繧・
ensure*/update*/remove*縺ァ譖エ譁ー縲・ - 蟇セ雎。隕∫エ縺ョ material 繧偵ヵ繧ァ繝シ繝我ソよ焚縺ォ蠢懊§縺ヲ螟画峩縲・
- microFX-overlays 繧・
- renderer 縺ッ microState 縺ョ繝輔ぅ繝シ繝ォ繝峨r *隱ュ縺ソ蜿悶k縺縺・ 縺ァ繧医>縲・ struct 縺ォ譖ク縺肴綾縺吶%縺ィ繧・・ス・スmicroState 繧・mutate 縺吶k縺薙→縺ッ遖∵ュ「縲・
7.11.7 mode繝サ莉匁ゥ滂ソスE縺ィ縺ョ逶ク莠剃ス懃畑
-
*macro 繝「繝シ繝・
- microFX 縺ッ蟶ク縺ォ辟。蜉ケ・スE・スEenderer 縺ッ
applyMicroFX(null)縺ョ迥カ諷九r菫昴▽・スE・ス縲・ - 螻謇蠑キ隱ソ縺ッ 7.12 遽縺ョ selection 繝上う繝ゥ繧、繝医↓蟋費ソスE繧九・
- microFX 縺ッ蟶ク縺ォ辟。蜉ケ・スE・スEenderer 縺ッ
-
*meso 繝「繝シ繝会シ・ptional・スE・スE
- v1 縺ァ縺ッ meso 縺ッ **螳溯」・・ス・ス縺ェ縺上※繧医>**縲・
- 螳溯」・・ス・ス縺ェ縺・・ス・ス蜷医[eso 縺ッ macro 縺ィ蜷檎ュ会ソスE隕九∴譁ケ
・スE・スEicroFX 辟。縺・/
microState = null・スE・ス縺ァ蝠城。後↑縺・・ス・スE - meso 繧貞ョ溯」・・ス・ス繧句エ蜷茨ソスE縺ソ縲[eso 蟆ら畑縺ョ microState 繧貞ー趣ソスE縺励※繧医>縲・
-
frame 蜀咲函
- 蜀咲函髢句ァ区凾縺ォ
uiState.mode = "macro"縺ィ縺励[icroState 繧偵け繝ェ繧「縺吶k縲・ - 蜀咲函荳ュ縺ォ microFX 縺鯉ソスE蠎ヲ譛牙柑蛹悶&繧後↑縺・・ス・ス縺ィ繧・
uiState.runtime.isFramePlaying縺ィcore.recomputeVisibleSet()縺ァ菫晁ィシ縺吶k縲・
- 蜀咲函髢句ァ区凾縺ォ
-
filter 蛻・・ス・ス / frame 蛻・・ス・ス
- filter / frame 縺ョ螟画峩蠕鯉ソスE縲∵エセ逕溽憾諷区峩譁ー繧・蠢・・ス・ス
core.recomputeVisibleSet()縺ォ髮・・ス・スE・ス・ス繧九・ - renderer 縺ッ縲梧ク。縺輔l縺・
visibleSet縺ィmicroState縲阪□縺代r蜿肴丐縺励・ 閾ェ蜑阪〒蜀崎ィ育ョ励@縺ェ縺・・ス・スE
- filter / frame 縺ョ螟画峩蠕鯉ソスE縲∵エセ逕溽憾諷区峩譁ー繧・蠢・・ス・ス
7.12 Selection 繝上う繝ゥ繧、繝茨シ・acro 繝「繝シ繝臥畑・スE・スE
7.12.1 逶ョ逧・
selection 繝上う繝ゥ繧、繝茨ソスE縲・*macro 繝「繝シ繝画凾縺ォ縲檎樟蝨ィ驕ク謚樔クュ縺ョ 1 隕∫エ縲阪r譏守、コ縺吶k**縺溘a縺ョ
霆ス驥上↑蠑キ隱ソ陦ィ迴セ縺ィ縺吶k縲・
- macro・スE・ス・スE菴謎ソッ迸ー・スE・ス縲後←繧後r驕ク繧薙□縺九阪r荳ュ蠢・・ス・ス selection 繝上う繝ゥ繧、繝医r菴ソ縺・・ス・スE
- micro・スE・スmicroFX 繧剃クュ蠢・・ス・ス縺励《election 繝上う繝ゥ繧、繝茨ソスE謚大宛縺吶k縲・
縺難ソスE蠖ケ蜑イ蛻・・ス・ス縺ォ繧医j縲∝酔縺・uuid 縺ォ蟇セ縺励※
縲稽acro 縺ァ縺ッ selection highlight縲阪稽icro 縺ァ縺ッ microFX縲阪→縺・・ス・ス
蛻・・ス・ス繧翫d縺吶>謖吝虚縺ォ邨ア荳縺吶k縲・
7.12.2 驕ゥ逕ィ譚。莉カ
selection 繝上う繝ゥ繧、繝茨ソスE縲∵ャ。縺ョ譚。莉カ繧偵☆縺ケ縺ヲ貅縺溘☆縺ィ縺阪↓縺ョ縺ソ謠冗判縺輔l繧九・
uiState.mode === "macro"uiState.selection縺・{kind, uuid}縺ァ縲~uuid` 縺碁撼 nulluuid縺・visibleSet縺ォ蜷ォ縺セ繧後※縺・・ス・ス
縺難ソスE譚。莉カ繧呈コ縺溘&縺ェ縺・・ス・ス蜷医〉enderer 縺ッ selection 繝上う繝ゥ繧、繝育畑繧ェ繝シ繝撰ソスE繝ャ繧、繧定ァ」髯、縺励・ baseStyle・スE・ス讒矩縺ォ蝓コ縺・縺上ョ繝輔か繝ォ繝茨シ会ソスE縺ソ繧定。ィ遉コ縺吶k縲・
7.12.3 蛻カ蠕。繝輔Ο繝シ縺ィ雋ャ蜍呻ソスE諡・
-
core.selectionController- selection 縺ョ蜚ッ荳縺ョ豁」隕上Ν繝シ繝医→縺吶k縲・
select(uuid)/clear()/get()繧呈署萓帙@縲・uiState.selection繧呈峩譁ー縺吶k縲・- selection 縺・
visibleSet縺九i螟悶l縺溷エ蜷茨ソスE謨エ蜷茨シ・ull蛹也ュ会シ峨bcore.recomputeVisibleSet()縺御ソ晁ィシ縺吶k縲・
-
viewerHub- render loop 縺ョ tick 縺ァ
uiState縺ョ繧ケ繝翫ャ繝励す繝ァ繝・・ス・ス繧定ェュ縺ソ蜿悶j縲・ 谺。繧偵%縺ョ鬆・・ス・ス renderer 縺ォ驕ゥ逕ィ縺吶k・スE・スErenderer.applyFrame(uiState.visibleSet)renderer.applySelection(uiState.selection)・スE・スEacro 縺ョ縺ソ譛牙柑譚。莉カ縺ッ renderer 蛛エ縺ァ蛻、螳壹@縺ヲ繧医>・スE・スErenderer.applyMicroFX(uiState.microState)renderer.updateCamera(uiState.cameraState)renderer.render()
- render loop 縺ョ tick 縺ァ
-
renderer
applySelection({kind, uuid} | null)繧貞女縺代※ macro 繝「繝シ繝臥畑縺ョ霆ス縺・・ス・ス隱ソ・スE・ス荳頑嶌縺搾シ峨r陦後≧縲・visibleSet縺ォ蜷ォ縺セ繧後↑縺・uuid 縺ォ縺ッ繝上う繝ゥ繧、繝医r謠冗判縺励↑縺・・ス・スE- 隗」髯、譎ゑソスE baseStyle 縺ォ螳鯉ソスE蠕ゥ蜈・・ス・ス縺阪k縺薙→・スE・ス蜿ッ騾・・ス・ス繧剃ソ晁ィシ縺吶k縲・
7.12.4 microFX / mode 驕キ遘サ縺ィ縺ョ髢「菫・
- macro 竊・micro 縺ク縺ョ驕キ遘サ
modeController.setMode("micro", uuid)縺ォ繧医j micro 繝「繝シ繝峨∈蜈・繧九→縺阪・uiState.selection閾ェ菴難ソスE菫晄戟縺励※繧医>縺後・- 謠冗判荳奇ソスE selection 繝上う繝ゥ繧、繝茨ソスE辟。蜉ケ蛹悶☆繧具シ・clearAllHighlights()`・スE・ス縲・
- 蜷後§
uuid繧偵ヵ繧ゥ繝シ繧ォ繧ケ縺ィ縺励◆ microFX・スE・スE.11・スE・ス縺梧怏蜉ケ縺ォ縺ェ繧九・
- micro 竊・macro 縺ク縺ョ驕キ遘サ
modeController.setMode("macro")縺ァ謌サ縺」縺滓凾轤ケ縺ァ縲・- microFX 縺ッ
applyMicroFX(null)縺ォ繧医j隗」髯、縲・ selectionController蛛エ縺ァ縲∫樟蝨ィ縺ョ selection 繧貞渕縺ォ
setHighlight({kind, uuid})繧抵ソスE驕ゥ逕ィ縺吶k縲・
- microFX 縺ッ
- *frame / filter 螟画峩譎・
- frame / filter 縺ョ螟画峩縺ァ selection 縺ョ蟇セ雎。縺碁撼陦ィ遉コ縺ォ縺ェ縺」縺溷エ蜷医・
- selection 繧堤カュ謖√☆繧九°縺ゥ縺・・ス・ス縺ッ
selectionController縺ョ繝昴Μ繧キ繝シ縺ィ縺吶k縲・ - 縺・・ス・ス繧後↓縺帙h縲~visibleSet` 縺ォ蜷ォ縺セ繧後↑縺・・ス・ス邏縺ク縺ョ highlight 縺ッ謠冗判縺励↑縺・・ス・スE
- selection 繧堤カュ謖√☆繧九°縺ゥ縺・・ス・ス縺ッ
- frame / filter 縺ョ螟画峩縺ァ selection 縺ョ蟇セ雎。縺碁撼陦ィ遉コ縺ォ縺ェ縺」縺溷エ蜷医・
7.12.5 莉墓ァ倅ク奇ソスE菴咲スョ縺・縺・
- selection 繝上う繝ゥ繧、繝茨ソスE *縲稽acro 繝「繝シ繝臥畑縺ョ譛菴朱剞縺ョ螻謇蠑キ隱ソ縲・ 縺ィ菴咲スョ縺・縺代k縲・
- microFX 縺ッ 7.11 縺ョ縺ィ縺翫j縲[icro 繝「繝シ繝峨↓縺翫¢繧玖ゥウ邏ー縺ェ螻謇隱ュ隗」縺ョ縺溘a縺ョ
隕冶ヲ夊」懷勧縺ァ縺ゅj縲∽ク。閠・・スE遶カ蜷医○縺夊」懷ョ後@蜷医≧繧医≧縺ォ險ュ險医☆繧九・ - 縺ゥ縺。繧会ソスE讖滓ァ九b 3DSS 讒矩縺ッ荳蛻・・ス・ス譖エ縺帙★縲∵緒逕サ螻樊ァ縺ィ overlay 縺ォ縺ョ縺ソ菴懃畑縺吶k縲・