SYMBOL INDEX (316 symbols across 38 files) FILE: src/MeshGenerator.ts class MeshGenerator (line 1) | class MeshGenerator { method constructor (line 5) | constructor(measurements: Measurements) { method getMesh (line 9) | public getMesh(): Mesh { method createQuad (line 13) | protected createQuad(v1: Vector3, v2: Vector3, v3: Vector3, v4: Vector... method createQuadWithNormals (line 23) | protected createQuadWithNormals(v1: Vector3, v2: Vector3, v3: Vector3,... method createCircleWithHole (line 33) | protected createCircleWithHole(block: TinyBlock, innerRadius: number, ... method createCircle (line 64) | protected createCircle(block: TinyBlock, radius: number, offset: numbe... method createCylinder (line 79) | protected createCylinder(block: TinyBlock, offset: number, radius: num... method tinyIndexToWorld (line 95) | public tinyIndexToWorld(p: number): number { method tinyBlockToWorld (line 109) | public tinyBlockToWorld(position: Vector3): Vector3 { FILE: src/PartMeshGenerator.ts class PartMeshGenerator (line 1) | class PartMeshGenerator extends MeshGenerator { method constructor (line 5) | constructor(part: Part, measurements: Measurements) { method updateRounded (line 21) | private updateRounded() { method createDummyBlocks (line 73) | private createDummyBlocks() { method createPerpendicularRoundedAdapterIfPossible (line 104) | private createPerpendicularRoundedAdapterIfPossible(block: SmallBlock)... method createTinyBlocks (line 130) | private createTinyBlocks() { method isTinyBlock (line 175) | private isTinyBlock(position: Vector3): boolean { method pushBlock (line 179) | private pushBlock(smallBlock: SmallBlock, forwardFactor: number) { method processTinyBlocks (line 207) | private processTinyBlocks() { method checkInteriors (line 249) | private checkInteriors() { method getPerpendicularRoundedNeighborOrNull (line 273) | private getPerpendicularRoundedNeighborOrNull(block: TinyBlock): Small... method getPerpendicularRoundedNeighborOrNull2 (line 285) | private getPerpendicularRoundedNeighborOrNull2(block: TinyBlock): Smal... method preventMergingForPerpendicularRoundedBlock (line 294) | private preventMergingForPerpendicularRoundedBlock(block1: TinyBlock, ... method mergeSimilarBlocks (line 307) | private mergeSimilarBlocks() { method isSmallBlock (line 368) | private isSmallBlock(position: Vector3): boolean { method createTinyBlock (line 372) | private createTinyBlock(position: Vector3, source: SmallBlock) { method getNextBlock (line 376) | private getNextBlock(block: TinyBlock, interior: boolean): TinyBlock { method getPreviousBlock (line 381) | private getPreviousBlock(block: TinyBlock): TinyBlock { method hasOpenEnd (line 385) | private hasOpenEnd(block: TinyBlock, interior: boolean): boolean { method hasOpenStart (line 395) | private hasOpenStart(block: TinyBlock): boolean { method hideStartEndFaces (line 403) | private hideStartEndFaces(position: Vector3, block: TinyBlock, forward... method hideFaceIfExists (line 411) | private hideFaceIfExists(position: Vector3, direction: Vector3) { method hideOutsideFaces (line 417) | private hideOutsideFaces(centerBlock: TinyBlock) { method renderPerpendicularRoundedAdapters (line 426) | private renderPerpendicularRoundedAdapters() { method isPerpendicularRoundedAdapter (line 470) | private isPerpendicularRoundedAdapter(block: TinyBlock) { method renderRoundedExteriors (line 478) | private renderRoundedExteriors() { method renderInteriors (line 525) | private renderInteriors() { method renderAttachments (line 539) | private renderAttachments() { method renderLip (line 559) | private renderLip(block: TinyBlock, zOffset: number) { method renderPin (line 582) | private renderPin(block: TinyBlock) { method renderAxle (line 624) | private renderAxle(block: TinyBlock) { method renderBallJoint (line 753) | private renderBallJoint(block: TinyBlock) { method createAxleToCircleAdapter (line 838) | private createAxleToCircleAdapter(center: Vector3, block: SmallBlock, ... method showInteriorCap (line 872) | private showInteriorCap(currentBlock: SmallBlock, neighbor: SmallBlock... method renderPinHoleInterior (line 891) | private renderPinHoleInterior(block: TinyBlock) { method renderAxleHoleInterior (line 928) | private renderAxleHoleInterior(block: TinyBlock) { method isFaceVisible (line 1058) | private isFaceVisible(position: Vector3, direction: Vector3): boolean { method createTinyFace (line 1066) | private createTinyFace(position: Vector3, size: Vector3, direction: Ve... method isRowOfVisibleFaces (line 1092) | private isRowOfVisibleFaces(position: Vector3, rowDirection: Vector3, ... method findConnectedFaces (line 1109) | private findConnectedFaces(position: Vector3, direction: Vector3): [Ve... method hideFaces (line 1142) | private hideFaces(position: Vector3, size: Vector3, direction: Vector3) { method renderTinyBlockFaces (line 1152) | private renderTinyBlockFaces() { FILE: src/editor/Catalog.ts class Catalog (line 1) | class Catalog { method constructor (line 7) | constructor() { method onToggleCatalog (line 13) | private onToggleCatalog(event: MouseEvent) { method createCatalogUI (line 19) | private createCatalogUI() { method createCatalogItems (line 67) | private createCatalogItems() { method onSelectPart (line 131) | private onSelectPart(item: CatalogItem, event: MouseEvent) { FILE: src/editor/CatalogItem.ts class CatalogItem (line 1) | class CatalogItem { method constructor (line 7) | constructor(id: number, name: string, string: string) { FILE: src/editor/Editor.ts type MouseMode (line 1) | enum MouseMode { class Editor (line 8) | class Editor { method constructor (line 36) | constructor() { method onNodeEditorClick (line 104) | private onNodeEditorClick(event: MouseEvent) { method saveSTL (line 109) | private saveSTL() { method saveStudioPart (line 113) | private saveStudioPart() { method initializeEditor (line 117) | private initializeEditor(elementId: string, onchange: (value: string) ... method clear (line 127) | private clear() { method share (line 132) | private share() { method remove (line 141) | private remove() { method setType (line 149) | private setType(typeName: string) { method setOrientation (line 154) | private setOrientation(orientatioName: string) { method setSize (line 160) | private setSize(sizeName: string) { method setRounded (line 166) | private setRounded(roundedName: string) { method setRenderStyle (line 171) | private setRenderStyle(style: RenderStyle) { method updateBlock (line 180) | private updateBlock() { method updateMesh (line 189) | public updateMesh(center = false) { method getRotation (line 213) | private getRotation(): Matrix4 { method updateTransform (line 217) | private updateTransform() { method onMouseDown (line 224) | private onMouseDown(event: MouseEvent) { method onMouseUp (line 240) | private onMouseUp(event: MouseEvent) { method onMouseMove (line 246) | private onMouseMove(event: MouseEvent) { method onScroll (line 268) | private onScroll(event: WheelEvent) { method onKeydown (line 274) | private onKeydown(event: KeyboardEvent) { method displayMeasurements (line 299) | private displayMeasurements() { method applyMeasurements (line 305) | public applyMeasurements() { method resetMeasurements (line 314) | private resetMeasurements() { method getNameTextbox (line 320) | public getNameTextbox(): HTMLInputElement { method getName (line 324) | public getName(): string { method onPartNameChange (line 332) | private onPartNameChange(event: Event) { method setName (line 341) | public setName(name: string) { FILE: src/editor/EditorState.ts class EditorState (line 1) | class EditorState { FILE: src/editor/Handles.ts constant ARROW_RADIUS_INNER (line 1) | const ARROW_RADIUS_INNER = 0.05; constant ARROW_RADIUS_OUTER (line 2) | const ARROW_RADIUS_OUTER = 0.15; constant ARROW_LENGTH (line 3) | const ARROW_LENGTH = 0.35; constant ARROW_TIP (line 4) | const ARROW_TIP = 0.15; constant HANDLE_DISTANCE (line 6) | const HANDLE_DISTANCE = 0.5; constant GRAB_RADIUS (line 8) | const GRAB_RADIUS = 0.1; constant GRAB_START (line 9) | const GRAB_START = 0.4; constant GRAB_END (line 10) | const GRAB_END = 1.1; constant UNSELECTED_ALPHA (line 12) | const UNSELECTED_ALPHA = 0.5; type Axis (line 14) | enum Axis { class Handles (line 21) | class Handles implements Renderer { method createRenderer (line 47) | private createRenderer(mesh: Mesh, color: Vector3): MeshRenderer { method getBlockCenter (line 55) | private getBlockCenter(block: Vector3): Vector3 { method getBlock (line 63) | private getBlock(worldPosition: Vector3): Vector3 { method constructor (line 71) | constructor(camera: Camera) { method render (line 87) | public render(camera: Camera) { method updateTransforms (line 116) | public updateTransforms() { method getVector (line 133) | private static getVector(angle: number, radius: number, z: number): Ve... method getArrowMesh (line 137) | public static getArrowMesh(subdivisions: number): Mesh { method getRay (line 185) | private getRay(axis: Axis): Ray { method getMouseHandle (line 197) | private getMouseHandle(event: MouseEvent): [Axis, number] { method onMouseDown (line 211) | public onMouseDown(event: MouseEvent): boolean { method onMouseMove (line 218) | public onMouseMove(event: MouseEvent) { method onMouseUp (line 238) | public onMouseUp() { method move (line 245) | public move(direction: Vector3) { method getSelectedBlock (line 252) | public getSelectedBlock(): Vector3 { method setMode (line 256) | public setMode(fullSize: boolean, orientation: Orientation, animate: b... method animatePositionAndSize (line 292) | private animatePositionAndSize(targetPosition: Vector3, targetSize: Ve... FILE: src/editor/NamedMeasurement.ts class NamedMeasurement (line 1) | class NamedMeasurement { method constructor (line 8) | constructor(name: string, relative: boolean, displayDouble: boolean) { method readFromDOM (line 20) | public readFromDOM(measurements: Measurements) { method applyToDom (line 34) | public applyToDom(measurements: Measurements) { method reset (line 47) | private reset(event: MouseEvent) { constant NAMED_MEASUREMENTS (line 55) | const NAMED_MEASUREMENTS : NamedMeasurement[] = [ FILE: src/editor/RenderStyle.ts type RenderStyle (line 1) | enum RenderStyle { FILE: src/export/STLExporter.ts class STLExporter (line 1) | class STLExporter { method constructor (line 5) | constructor(size: number) { method writeVector (line 10) | private writeVector(offset: number, vector: Vector3) { method writeTriangle (line 16) | private writeTriangle(offset: number, triangle: Triangle, scalingFacto... method fixOpenEdges (line 24) | private static fixOpenEdges(triangles: Triangle[]): Triangle[] { method createBuffer (line 143) | private static createBuffer(part: Part, measurements: Measurements) { method saveSTLFile (line 165) | public static saveSTLFile(part: Part, measurements: Measurements, name... FILE: src/export/StudioPartExporter.ts class StudioPartExporter (line 1) | class StudioPartExporter { method formatPoint (line 2) | private static formatPoint(vector: Vector3): string { method formatVector (line 6) | private static formatVector(vector: Vector3): string { method formatConnector (line 10) | private static formatConnector(position: Vector3, block: Block, facesF... method createFileContent (line 41) | private static createFileContent(part: Part, measurements: Measurement... method savePartFile (line 132) | public static savePartFile(part: Part, measurements: Measurements, nam... FILE: src/functions.ts function triangularNumber (line 1) | function triangularNumber(n: number): number { function inverseTriangularNumber (line 5) | function inverseTriangularNumber(s: number): number { function tetrahedralNumber (line 9) | function tetrahedralNumber(n: number): number { function inverseTetrahedralNumber (line 13) | function inverseTetrahedralNumber(s: number): number { constant DEG_TO_RAD (line 21) | let DEG_TO_RAD = Math.PI / 180; function min (line 23) | function min(iterable: Iterable, selector: (item: T) => number): n... function sign (line 37) | function sign(a: number): number { function lerp (line 47) | function lerp(a: number, b: number, t: number): number { function clamp (line 51) | function clamp(lower: number, upper: number, value: number) { function countInArray (line 61) | function countInArray(items: T[], selector: (item: T) => boolean): nu... function ease (line 71) | function ease(value: number): number { function mod (line 75) | function mod(a: number, b: number): number { function containsPoint (line 79) | function containsPoint(list: Vector3[], query: Vector3): boolean { FILE: src/geometry/Matrix4.ts type NumberArray16 (line 1) | type NumberArray16 = [number, number, number, number, number, number, nu... class Matrix4 (line 3) | class Matrix4 { method constructor (line 6) | constructor(elements: NumberArray16) { method get (line 10) | get(i: number, j: number): number { method times (line 14) | public times(other: Matrix4): Matrix4 { method transpose (line 30) | public transpose() { method invert (line 39) | public invert(): Matrix4 { method transformPoint (line 85) | public transformPoint(point: Vector3): Vector3 { method transformDirection (line 92) | public transformDirection(point: Vector3): Vector3 { method getProjection (line 99) | public static getProjection(near = 0.1, far = 1000, fov = 25): Matrix4 { method getOrthographicProjection (line 109) | public static getOrthographicProjection(far = 1000, size = 5): Matrix4 { method getIdentity (line 119) | public static getIdentity(): Matrix4 { method getTranslation (line 128) | public static getTranslation(vector: Vector3): Matrix4 { method getRotation (line 137) | public static getRotation(euler: Vector3): Matrix4 { FILE: src/geometry/Mesh.ts class Mesh (line 1) | class Mesh { method constructor (line 7) | constructor(triangles: Triangle[]) { method createVertexBuffer (line 11) | public createVertexBuffer(): WebGLBuffer { method createNormalBuffer (line 32) | public createNormalBuffer(): WebGLBuffer { method createWireframeVertexBuffer (line 58) | public createWireframeVertexBuffer(): WebGLBuffer { method pushVector (line 77) | private pushVector(array: number[], vector: Vector3) { method getVertexCount (line 83) | public getVertexCount(): number { FILE: src/geometry/Quaternion.ts class Quaternion (line 1) | class Quaternion { method constructor (line 7) | constructor(x: number, y: number, z: number, w: number) { method times (line 14) | times(other: Quaternion): Quaternion { method toMatrix (line 21) | toMatrix(): Matrix4 { method euler (line 30) | static euler(angles: Vector3): Quaternion { method angleAxis (line 36) | static angleAxis(angle: number, axis: Vector3): Quaternion { method identity (line 41) | static identity(): Quaternion { FILE: src/geometry/Ray.ts class Ray (line 1) | class Ray { method constructor (line 5) | constructor(point: Vector3, direction: Vector3) { method get (line 10) | get(t: number): Vector3 { method getDistanceToRay (line 14) | getDistanceToRay(other: Ray): number { method getClosestToPoint (line 23) | getClosestToPoint(point: Vector3): number { method getClosestToRay (line 27) | getClosestToRay(other: Ray): number { FILE: src/geometry/Triangle.ts class Triangle (line 1) | class Triangle { method constructor (line 6) | constructor(v1: Vector3, v2: Vector3, v3: Vector3, flipped = false) { method normal (line 18) | public normal(): Vector3 { method getOnEdge1 (line 22) | public getOnEdge1(progress: number): Vector3 { method getOnEdge2 (line 26) | public getOnEdge2(progress: number): Vector3 { method getOnEdge3 (line 30) | public getOnEdge3(progress: number): Vector3 { FILE: src/geometry/TriangleWithNormals.ts class TriangleWithNormals (line 1) | class TriangleWithNormals extends Triangle { method constructor (line 6) | constructor(v1: Vector3, v2: Vector3, v3: Vector3, n1: Vector3, n2: Ve... FILE: src/geometry/Vector3.ts class Vector3 (line 1) | class Vector3 { method constructor (line 6) | constructor(x: number, y: number, z: number) { method times (line 12) | public times(factor: number): Vector3 { method plus (line 16) | public plus(other: Vector3): Vector3 { method minus (line 20) | public minus(other: Vector3): Vector3 { method dot (line 24) | public dot(other: Vector3): number { method cross (line 28) | public cross(other: Vector3): Vector3 { method elementwiseMultiply (line 32) | public elementwiseMultiply(other: Vector3) { method magnitude (line 36) | public magnitude(): number { method normalized (line 40) | public normalized(): Vector3 { method toString (line 44) | public toString(): string { method copy (line 48) | public copy(): Vector3 { method equals (line 52) | public equals(other: Vector3): boolean { method floor (line 56) | public floor(): Vector3 { method toNumber (line 60) | public toNumber(): number { method fromNumber (line 67) | public static fromNumber(value: number): Vector3 { method zero (line 79) | public static zero(): Vector3 { method one (line 83) | public static one(): Vector3 { method lerp (line 87) | public static lerp(a: Vector3, b: Vector3, progress: number): Vector3 { method isCollinear (line 91) | public static isCollinear(a: Vector3, b: Vector3) { method interpolate (line 124) | public static interpolate(a: Vector3, b: Vector3, t: number) { constant RIGHT_FACE_VERTICES (line 129) | const RIGHT_FACE_VERTICES = [ constant LEFT_FACE_VERTICES (line 136) | const LEFT_FACE_VERTICES = [ constant UP_FACE_VERTICES (line 143) | const UP_FACE_VERTICES = [ constant DOWN_FACE_VERTICES (line 150) | const DOWN_FACE_VERTICES = [ constant FORWARD_FACE_VERTICES (line 157) | const FORWARD_FACE_VERTICES = [ constant BACK_FACE_VERTICES (line 164) | const BACK_FACE_VERTICES = [ constant FACE_DIRECTIONS (line 171) | const FACE_DIRECTIONS = [ FILE: src/geometry/VectorDictionary.ts class VectorDictionary (line 1) | class VectorDictionary { method containsKey (line 10) | containsKey(key: Vector3): boolean { method get (line 14) | get(key: Vector3): T { method getOrNull (line 21) | getOrNull(key: Vector3): T { method set (line 28) | set(key: Vector3, value: T) { method remove (line 38) | remove(key: Vector3) { method clear (line 44) | clear() { method keys (line 48) | *keys(): IterableIterator { method values (line 58) | *values(): IterableIterator { method any (line 68) | any(): boolean { FILE: src/measurements.ts class Measurements (line 1) | class Measurements { method enforceConstraints (line 23) | public enforceConstraints() { constant DEFAULT_MEASUREMENTS (line 41) | const DEFAULT_MEASUREMENTS = new Measurements(); FILE: src/model/Block.ts class Block (line 1) | class Block { method constructor (line 11) | constructor(orientation: Orientation, type: BlockType, rounded: boolea... FILE: src/model/Part.ts constant CUBE (line 3) | let CUBE = [ class Part (line 14) | class Part { method createSmallBlocks (line 17) | public createSmallBlocks(): VectorDictionary { method isSmallBlockFree (line 33) | public isSmallBlockFree(position: Vector3): boolean { method clearSingle (line 46) | public clearSingle(position: Vector3) { method clearBlock (line 58) | public clearBlock(position: Vector3, orientation: Orientation) { method isBlockPlaceable (line 66) | public isBlockPlaceable(position: Vector3, orientation: Orientation, d... method placeBlockForced (line 78) | public placeBlockForced(position: Vector3, block: Block) { method toString (line 83) | public toString(): string { method fromString (line 106) | public static fromString(s: string): Part { method getBoundingBox (line 131) | private getBoundingBox(): [Vector3, Vector3] { method getCenter (line 164) | public getCenter(): Vector3 { method getSize (line 176) | public getSize() { FILE: src/model/PerpendicularRoundedAdaper.ts class PerpendicularRoundedAdapter (line 1) | class PerpendicularRoundedAdapter { FILE: src/model/SmallBlock.ts class SmallBlock (line 1) | class SmallBlock extends Block { method constructor (line 15) | constructor(quadrant: Quadrant, positon: Vector3, source: Block) { method createFromLocalCoordinates (line 30) | public static createFromLocalCoordinates(localX: number, localY: numbe... method odd (line 34) | public odd(): boolean { method getQuadrantFromLocal (line 38) | private static getQuadrantFromLocal(x: number, y: number): Quadrant { method getOnCircle (line 54) | public getOnCircle(angle: number, radius = 1): Vector3 { FILE: src/model/TinyBlock.ts class TinyBlock (line 1) | class TinyBlock extends SmallBlock { method constructor (line 14) | constructor(position: Vector3, source: SmallBlock) { method getCylinderOrigin (line 28) | public getCylinderOrigin(meshGenerator: MeshGenerator): Vector3 { method getExteriorDepth (line 34) | public getExteriorDepth(meshGenerator: MeshGenerator): number { method getInteriorDepth (line 38) | public getInteriorDepth(meshGenerator: MeshGenerator): number { method isFaceVisible (line 42) | public isFaceVisible(direction: Vector3): boolean { method hideFace (line 60) | public hideFace(direction: Vector3) { FILE: src/model/enums/BlockType.ts type BlockType (line 1) | enum BlockType { constant BLOCK_TYPE (line 11) | const BLOCK_TYPE = { FILE: src/model/enums/Orientation.ts type Orientation (line 1) | enum Orientation { constant ORIENTATION (line 7) | const ORIENTATION = { constant FORWARD (line 13) | const FORWARD = { constant RIGHT (line 19) | const RIGHT = { constant LEFT (line 31) | const LEFT = { constant DOWN (line 37) | const DOWN = { FILE: src/model/enums/Quadrant.ts type Quadrant (line 1) | enum Quadrant { function localX (line 8) | function localX(quadrant: Quadrant): number { function localY (line 12) | function localY(quadrant: Quadrant): number { function getAngle (line 16) | function getAngle(quadrant: Quadrant): number { FILE: src/rendering/Camera.ts class Camera (line 1) | class Camera { method constructor (line 16) | constructor(canvas: HTMLCanvasElement, supersample = 1) { method createBuffers (line 30) | private createBuffers() { method getProjectionMatrix (line 53) | public getProjectionMatrix(): Matrix4 { method render (line 57) | public render() { method onResize (line 77) | public onResize() { method getScreenToWorldRay (line 84) | public getScreenToWorldRay(event: MouseEvent): Ray { FILE: src/rendering/ContourPostEffect.ts class ContourPostEffect (line 1) | class ContourPostEffect implements Renderer { method constructor (line 8) | constructor() { method render (line 22) | public render(camera: Camera) { FILE: src/rendering/MeshRenderer.ts class MeshRenderer (line 1) | class MeshRenderer implements Renderer { method constructor (line 14) | constructor() { method setMesh (line 27) | public setMesh(mesh: Mesh) { method render (line 33) | public render(camera: Camera) { FILE: src/rendering/NormalDepthRenderer.ts class NormalDepthRenderer (line 1) | class NormalDepthRenderer implements Renderer { method constructor (line 13) | constructor() { method prepareShaders (line 18) | private prepareShaders() { method setMesh (line 26) | public setMesh(mesh: Mesh) { method render (line 32) | public render(camera: Camera) { FILE: src/rendering/Renderer.ts type Renderer (line 1) | interface Renderer { FILE: src/rendering/Shader.ts class Shader (line 1) | class Shader { method loadShader (line 5) | private loadShader(type: number, source: string): WebGLShader { method constructor (line 21) | constructor(vertexSource: string, fragmentSource: string) { method setAttribute (line 35) | public setAttribute( name: string) { method setUniform (line 39) | public setUniform(name: string) { FILE: src/rendering/WireframeBox.ts class WireframeBox (line 1) | class WireframeBox implements Renderer { method constructor (line 16) | constructor() { method render (line 46) | public render(camera: Camera) { FILE: src/rendering/WireframeRenderer.ts class WireframeRenderer (line 1) | class WireframeRenderer implements Renderer { method constructor (line 13) | constructor() { method setMesh (line 25) | public setMesh(mesh: Mesh) { method render (line 30) | public render(camera: Camera) { FILE: src/rendering/shaders.ts constant VERTEX_SHADER (line 1) | const VERTEX_SHADER = ` constant FRAGMENT_SHADER (line 17) | const FRAGMENT_SHADER = ` constant NORMAL_FRAGMENT_SHADER (line 40) | const NORMAL_FRAGMENT_SHADER = ` constant COUNTOUR_VERTEX (line 51) | const COUNTOUR_VERTEX = ` constant CONTOUR_FRAGMENT (line 62) | const CONTOUR_FRAGMENT = ` constant SIMPLE_VERTEX_SHADER (line 121) | const SIMPLE_VERTEX_SHADER = ` constant COLOR_FRAGMENT_SHADER (line 134) | const COLOR_FRAGMENT_SHADER = `