three-cad-viewer
    Preparing search index...

    Class Display

    Main entry point for three-cad-viewer. Creates the UI and manages the viewer.

    Display handles:

    • DOM structure (toolbar, tree view, tabs, sliders)
    • User interaction (button clicks, slider changes)
    • State subscriptions (UI updates when viewer state changes)
    • Theme management (light/dark/browser preference)
    import { Display } from 'three-cad-viewer';

    const container = document.getElementById('viewer');
    const display = new Display(container, {
    cadWidth: 800,
    height: 600,
    theme: 'light'
    });

    // Load and render CAD shapes
    display.render(shapesData, states, renderOptions);

    // Access viewer for programmatic control
    display.viewer.setAxes(true);

    // Cleanup when done
    display.dispose();

    DisplayOptions for all configuration options

    Index

    Constructors

    Properties

    Methods

    addCadTree addInfoHtml animationChange autoCollapse captureCanvas checkElement clearCadTree clearMaterialEditorSession closeMatEditor controlAnimation controlAnimationByName dispose disposeMatEditorClones getCanvas glassMode handleClipReset handleCollapseNodes handleMatEditorReset handleMatEditorToggle handleMaterialReset handleStudio4kEnvMaps handleStudioAOIntensity handleStudioBackground handleStudioEnvIntensity handleStudioEnvironment handleStudioEnvRotation handleStudioExposure handleStudioReset handleStudioShadowIntensity handleStudioShadowSoftness handleStudioTextureMapping handleStudioToneMapping handleZebraReset onSelectionChanged pinAsPng refreshPlane replaceWithImage reset resize selectTab setAxes setAxes0 setBlackEdges setButtonBackground setClipIntersection setClipNormalFromPosition setClipPlaneHelpers setExplode setGrid setNormalLabel setObjectColorCaps setOrtho setSizes setSliderLimits setTheme setTool setTransparent setupUI setView setZebraColorScheme setZebraColorSchemeSelect setZebraCount setZebraDirection setZebraMappingMode setZebraMappingModeSelect setZebraOpacity setZScale showBoundingBoxInfo showCenterInfo showDistancePanel showExplode showExplodeTool showHelp showInfo showMeasureTools showPinning showPropertiesPanel showReadyMessage showSelectTool showTools showToolsPanel showZScale showZScaleTool syncClipSlidersFromState syncMaterialSlidersFromState syncStudioSlidersFromState syncZebraSlidersFromState toggleClippingTab toggleHelp toggleInfo toggleToolsPanel updateHelp updateToolbarCollapse updateTooltips updateUI

    Constructors

    Properties

    _events: StoredEvent[]
    _info: Info
    _unsubscribers: (() => void)[]
    ambientlightSlider: Slider | undefined
    animationSlider: HTMLInputElement | null
    buttons: Record<string, Button>
    cadAnim: HTMLElement
    cadBody: HTMLElement
    cadClip: HTMLElement
    cadClipToggles: HTMLElement
    cadHelp: HTMLElement
    cadInfo: HTMLElement
    cadMaterial: HTMLElement
    cadMaterialToggles: HTMLElement
    cadStudio: HTMLElement
    cadStudioToggles: HTMLElement
    cadTool: Toolbar
    cadTools: HTMLElement
    cadTree: HTMLElement
    cadTreeScrollContainer: HTMLElement
    cadTreeToggles: HTMLElement
    cadView: HTMLElement
    cadWidth: number
    cadZebra: HTMLElement
    cadZebraToggles: HTMLElement
    clickButtons: Record<string, ClickButton>
    clipSliders: Slider[] | null
    container: HTMLElement
    directionallightSlider: Slider | undefined
    distanceMeasurementPanel: HTMLElement
    explodeTool: boolean
    filterDropdown: FilterDropdownElements
    glass: boolean
    height: number
    help_shown: boolean
    info_shown: boolean
    lastPlaneState: boolean
    measurementDebug: boolean
    measurementPanels: MeasurementPanelElements
    measureTools: boolean
    mediaQuery: MediaQueryList | undefined
    metalnessSlider: Slider | undefined
    planeLabels: HTMLElement[]
    propertiesMeasurementPanel: HTMLElement
    roughnessSlider: Slider | undefined
    selectTool: boolean
    shapeFilterDropDownMenu: FilterByDropDownMenu
    state: ViewerState
    studioAOIntensitySlider: Slider | undefined
    studioEnvIntensitySlider: Slider | undefined
    studioEnvRotationSlider: Slider | undefined
    studioExposureSlider: Slider | undefined
    studioShadowIntensitySlider: Slider | undefined
    studioShadowSoftnessSlider: Slider | undefined
    tabClip: HTMLElement
    tabMaterial: HTMLElement
    tabStudio: HTMLElement
    tabTree: HTMLElement
    tabZebra: HTMLElement
    theme: ThemeInput
    tickInfoElement: HTMLElement
    tickValueElement: HTMLElement
    tools: boolean
    tools_shown: boolean
    treeWidth: number
    viewer: Viewer
    zebraCountSlider: Slider | undefined
    zebraDirectionSlider: Slider | undefined
    zebraOpacitySlider: Slider | undefined
    zScale: number
    zscaleTool: boolean

    Methods

    • Add the Cad tree and other UI elements like Clipping

      Parameters

      • cadTree: HTMLElement

        the DOM element that contains the cadTree

      Returns void

    • Add HTML content to the info panel.

      Parameters

      • html: string

        The HTML string to add.

      Returns void

    • Handler for the animation slider

      Parameters

      • e: Event

      Returns void

    • Auto collapse tree nodes when cad width < 600

      Returns void

    • Capture the canvas as a data URL.

      Parameters

      • options: CaptureOptions

        Capture options.

      Returns Promise<CaptureResult>

      Promise resolving to task ID and data URL.

    • Check or uncheck a checkbox

      Parameters

      • name: string

        name of the check box, see getElement

      • flag: boolean

        whether to check or uncheck

      Returns void

    • Outer-cycle boundary: discard saved Material Editor deltas so they don't replay on the next Studio entry in a new scene. Unlike viewer preferences (transparent, axes, grid) which persist across render cycles, Material Editor edits are per-scene PBR authoring and must reset on scene rebuild. Mid-cycle (Studio tab leave/enter) and inner-cycle (editor close/reopen) behavior is unaffected — this is only called from viewer.clear().

      Returns void

    • Handler for the animation control buttons

      Parameters

      • e: Event

      Returns void

    • Handle animation control by button name

      Parameters

      • btn: string

      Returns void

    • Dispose of all resources. Call when done with the viewer.

      Disposes:

      • All state subscriptions
      • Event listeners
      • Toolbar and buttons
      • Sliders
      • DOM content

      After dispose(), the Display instance should not be used.

      Returns void

    • Dispose all cloned materials, restoring originals first (call on Studio mode exit)

      Returns void

    • Enable/disable glass mode (UI update only).

      Parameters

      • flag: boolean

      Returns void

    • Reset clip planes to default normals and slider positions

      Parameters

      • _e: Event

      Returns void

    • Collapse nodes handler (event handler) Translates button codes to CollapseState and calls viewer

      Parameters

      • e: Event

      Returns void

    • Reset material values to original values

      Parameters

      • _e: Event

      Returns void

    • Handler for Studio 4K env maps checkbox change. Shows a "Loading…" indicator while the new resolution downloads.

      Parameters

      • e: Event

      Returns void

    • Handler for Studio AO intensity slider change. Slider range 0-30, divided by 10 → state gets 0-3.0. A value of 0 disables AO.

      Parameters

      • value: number

      Returns void

    • Handler for Studio background dropdown change. Validates against the StudioBackground union before setting state.

      Parameters

      • e: Event

      Returns void

    • Handler for Studio env intensity slider change. Slider range 0-200 with percentage=true, so value arrives as 0-2.

      Parameters

      • value: number

      Returns void

    • Handler for Studio environment dropdown change

      Parameters

      • e: Event

      Returns void

    • Parameters

      • value: number

      Returns void

    • Reset Studio tab values to defaults. Delegates to viewer.resetStudio() (same pattern as handleMaterialReset -> resetMaterial()).

      Parameters

      • _e: Event

      Returns void

    • Parameters

      • value: number

      Returns void

    • Parameters

      • value: number

      Returns void

    • Handler for Studio exposure slider change. Slider range 0-200 with percentage=true, so value arrives as 0-2.

      Parameters

      • e: Event

      Returns void

    • Handler for Studio tone mapping dropdown change. Validates against the StudioToneMapping union before setting state.

      Parameters

      • e: Event

      Returns void

    • Reset zebra tool to default settings

      Parameters

      • _e: Event

      Returns void

    • Called by viewer.ts when the selected object changes. Updates or closes the material editor if it's open.

      Parameters

      • newObjectId: string | null

      Returns void

    • Pin screenshot of canvas as PNG

      Parameters

      • _name: string
      • _shift: boolean

      Returns void

    • Refresh clipping plane position

      Parameters

      • uiIndex: number
      • value: string

      Returns void

    • Replace container content with a static image

      Parameters

      • image: HTMLImageElement

      Returns void

    • Handler to reset position, zoom and up of the camera

      Returns void

    • Handler to activate a UI tab (tree / clipping / material / zebra)

      Parameters

      • e: Event

      Returns void

    • Checkbox Handler for setting the axes parameter

      Parameters

      • _name: string
      • flag: boolean

      Returns void

    • Checkbox Handler for setting the axes0 parameter

      Parameters

      • _name: string
      • flag: boolean

      Returns void

    • Checkbox Handler for setting the black edges parameter

      Parameters

      • _name: string
      • flag: boolean

      Returns void

    • Checkbox Handler for setting the clip intersection parameter

      Parameters

      • e: Event

      Returns void

    • Set the normal at index to the current viewing direction

      Parameters

      • e: Event

      Returns void

    • Checkbox Handler for setting the clip planes parameter

      Parameters

      • e: Event

      Returns void

    • Handler for the explode button

      Parameters

      • _name: string
      • flag: boolean

      Returns void

    • Checkbox Handler for setting the grid parameter

      Parameters

      • name: string
      • flag: boolean

      Returns void

    • Handler to set the label of a clipping normal widget

      Parameters

      • index: ClipIndex
      • normal: [number, number, number]

      Returns void

    • Checkbox Handler for toggling the clip caps

      Parameters

      • e: Event

      Returns void

    • Checkbox Handler for setting the ortho parameter

      Parameters

      • _name: string
      • flag: boolean

      Returns void

    • Set the width and height of the different UI elements (tree, canvas and info box).

      Parameters

      • options: SizeOptions

        Size options

      Returns void

    • Set minimum and maximum of the clipping sliders

      Parameters

      • limit: number

      Returns void

    • Set the UI theme.

      Parameters

      • theme: ThemeInput

        "light", "dark", or "browser" for auto-detection

      Returns string

      The resolved theme ("light" or "dark")

    • Checkbox Handler for setting the tools mode. Delegates state mutations to Viewer.activateTool() to maintain unidirectional data flow.

      Parameters

      • name: string
      • flag: boolean

      Returns void

    • Checkbox Handler for setting the transparent parameter

      Parameters

      • _name: string
      • flag: boolean

      Returns void

    • Internal

      Set up the UI and attach the canvas element. Called by Viewer constructor, not intended for direct use.

      Parameters

      • viewer: Viewer

        The viewer instance for this UI.

      • canvasElement: HTMLCanvasElement

        The Three.js renderer canvas to attach.

      Returns void

    • Handler to set camera to a predefined position. Called by Button callback which passes the button name as string.

      Parameters

      • direction: string
      • focus: boolean = false

      Returns void

    • Handler for setting the zebra color scheme

      Parameters

      • e: Event

      Returns void

    • Set zebra color scheme radio button in the UI

      Parameters

      • value: string

      Returns void

    • Set zebra stripe count in the UI

      Parameters

      • val: number

      Returns void

    • Set zebra stripe direction in the UI

      Parameters

      • val: number

      Returns void

    • Handler for setting the zebra mapping mode

      Parameters

      • e: Event

      Returns void

    • Set zebra mapping mode radio button in the UI

      Parameters

      • value: string

      Returns void

    • Set zebra stripe opacity in the UI

      Parameters

      • val: number

      Returns void

    • Checkbox Handler for setting the zscale mode

      Parameters

      • _name: string
      • flag: boolean

      Returns void

    • Display bounding box information for a selected object.

      Parameters

      • path: string

        The object's path in the tree.

      • name: string

        The object's name.

      • bb: Box3

        The bounding box to display.

      Returns void

    • Show or hide the distance measurement panel

      Parameters

      • flag: boolean

      Returns void

    • Show or hide the Explode checkbox

      Parameters

      • flag: boolean

      Returns void

    • Show or hides explode tool

      Parameters

      • flag: boolean

      Returns void

    • Show or hide help dialog

      Parameters

      • flag: boolean

      Returns void

    • Show or hide info dialog

      Parameters

      • flag: boolean

      Returns void

    • Show or hides measurement tools, measurement tools needs a backend to be used.

      Parameters

      • flag: boolean

      Returns void

    • Show/hide pinning button

      Parameters

      • flag: boolean

      Returns void

    • Show or hide the properties measurement panel

      Parameters

      • flag: boolean

      Returns void

    • Display the ready message with viewer version and control mode.

      Parameters

      • version: string

        Viewer version string.

      • control: string

        Control mode name (e.g., "orbit", "trackball").

      Returns void

    • Show or hides select tool

      Parameters

      • flag: boolean

      Returns void

    • Show or hide the CAD tools (UI update only). This method only updates the visual state - it does not modify ViewerState.

      Parameters

      • flag: boolean

      Returns void

    • Show or hide tools panel (tabs + content) in glass mode. Also toggles the orientation marker and animation/explode slider.

      Parameters

      • flag: boolean

      Returns void

    • Show or hide the ZScale slider

      Parameters

      • flag: boolean

      Returns void

    • Show or hides ZScale tool

      Parameters

      • flag: boolean

      Returns void

    • Sync clip slider UI from current state values. Called after setSliderLimits to apply initial values with correct limits.

      Returns void

    • Sync material slider UI from current state values. Called from updateUI after render options are applied to state. State stores values in 0-1 range, sliders display 0-100 (or 0-400 for lights).

      Returns void

    • Sync Studio slider/control UI from current state values.

      Returns void

    • Sync zebra slider UI from current state values. Called from updateUI after viewer options are applied to state.

      Returns void

    • Toggle visibility of the clipping tab

      Parameters

      • flag: boolean

      Returns void

    • Update help dialog with new key mappings

      Parameters

      • before: KeyMappingConfig
      • after: Partial<KeyMappingConfig>

      Returns void

    • Update toolbar collapse state based on available width. Maximizes toolbar if width is sufficient, minimizes otherwise.

      Parameters

      • availableWidth: number

        The available width in pixels.

      Returns void

    • Update tooltips with keyboard shortcut suffixes.

      Returns void

    • Internal

      Initialize UI elements from current state. Called once during initialization. Subsequent updates happen via state subscriptions.

      Returns void