Module: Extra-Helpers
Classes
- FSShadowMaterial
- RandomizedDirectionalLight
- ShadowMapBaker
- CanvasSnipper
- ACanvasRecorder
- CanvasMediaRecorder
- CanvasRecorder
- FFMPEGRecorder
- ImageSequenceRecorder
- GyroInputDevice
- MouseInputDevice
- Dropzone
- DiamondMaterial
- BoxSelectionWidget
- SelectionWidget
- SphereSelectionWidget
- AWSClientPlugin
- ARTouchInputHelper
- ARPlacementBox
- CubeNormalsCaptureHelper
- NormalCaptureMaterial
- ObjectProcessorMap
- GLTFMeshGpuInstancingExporter
- PresetGroup
- BackgroundPresetGroup
- EnvironmentPresetGroup
- GemEnvironmentPresetGroup
- PluginPresetGroup
- ModelStagePresetGroup
- MaterialLibPresetGroupPresetGroup
- VJSONPresetGroup
- Box3B
- CustomAnimationHelper
- DeviceOrientationControls2
- FirstPersonControls2
- MaterialPreviewGenerator
- OrbitControls2
- PointerLockControls2
- Reflector2
- TransformControls
- TransformControlsGizmo
- TransformControlsPlane
- TransformControls2
- TubeShapeGeometry
- AddBlendPass
- DepthOfFieldPass
- GenericBlendTexturePass
- SSBevelPass
- AShaderMaterial2
- ShaderMaterial2
- ShaderMaterialEncodingSupport
- ShaderPass2
Interfaces
- RDShadowParams
- RDRandomParams
- IAnimationObject
- SRect
- SnipOptions
- ICanvasRecorder
- CanvasRecorderOptions
- FFMPEGOptions
- IInputDevice
- DropFile
- DiamondGeometryParameters
- DiamondMaterialParameters
- IDiamondGeometryOffsets
- IObjectProcessor
- PointerLockControls2EventMap
- TransformControlsEventMap
Type aliases
TUpdaterType
Ƭ TUpdaterType: "scene" | "renderer" | "viewer" | "camera"
IAnimSet
Ƭ IAnimSet: IAnimationObject<any>[]
TRecorderStates
Ƭ TRecorderStates: "stopped" | "recording" | "paused" | "error" | "starting" | "stopping"
DropEventType
Ƭ DropEventType: "drop" | "dropstart" | "droperror"
ListenerCallback
Ƭ ListenerCallback: (data?: { files?: Map<string, DropFile> ; message?: string }) => void
Type declaration
▸ (data?): void
Parameters
| Name | Type |
|---|---|
data? | Object |
data.files? | Map<string, DropFile> |
data.message? | string |
Returns
void
AwsRequestInit
Ƭ AwsRequestInit: RequestInit & { aws?: { accessKeyId?: string ; secretAccessKey?: string ; sessionToken?: string ; service?: string ; region?: string ; cache?: Map<string, ArrayBuffer> ; datetime?: string ; signQuery?: boolean ; appendSessionToken?: boolean ; allHeaders?: boolean ; singleEncode?: boolean } }
EasingFunctionType
Ƭ EasingFunctionType: keyof typeof EasingFunctions
EasingFunctionType: anticipate, backIn, backInOut, backOut, bounceIn, bounceInOut, bounceOut, circIn, circInOut, circOut, easeIn, easeInOut, easeOut, easeInOutSine
AnimateResult
Ƭ AnimateResult: ReturnType<typeof animate>
TPreset
Ƭ TPreset: IAsset | string
TPointerLockEvents
Ƭ TPointerLockEvents: "change" | "lock" | "unlock"
TransformControlsMode
Ƭ TransformControlsMode: "translate" | "rotate" | "scale"
Functions
extractAnimationKey
▸ extractAnimationKey(o, target, extraGetters?): { key: undefined = undefined; tar: any } | { key: string ; tar: any }
Parameters
| Name | Type |
|---|---|
o | IAnimationObject<any> |
target | any |
extraGetters? | Record<string, (acc: string[]) => undefined | { tar: any ; i: number }> |
Returns
{ key: undefined = undefined; tar: any } | { key: string ; tar: any }
animateObject
▸ animateObject(target, o, updaters): Promise<any>
Parameters
| Name | Type |
|---|---|
target | any |
o | IAnimationObject<any> |
updaters | Record<TUpdaterType, () => void> |
Returns
Promise<any>
animateSet
▸ animateSet(target, anims, updaters, parallel?): Promise<undefined | any[]>
Parameters
| Name | Type | Default value |
|---|---|---|
target | any | undefined |
anims | IAnimSet | undefined |
updaters | Record<TUpdaterType, () => void> | undefined |
parallel | boolean | false |
Returns
Promise<undefined | any[]>
computeOffsetMatrix
▸ computeOffsetMatrix(geometry): Matrix4
Parameters
| Name | Type |
|---|---|
geometry | BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap> |
Returns
Matrix4
computeEigenVectors
▸ computeEigenVectors(geometry): Matrix4
Parameters
| Name | Type |
|---|---|
geometry | BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap> |
Returns
Matrix4
sign2
▸ sign2(client, input, init?): Promise<RequestInit & { aws?: { accessKeyId?: string ; secretAccessKey?: string ; sessionToken?: string ; service?: string ; region?: string ; cache?: Map<string, ArrayBuffer> ; datetime?: string ; signQuery?: boolean ; appendSessionToken?: boolean ; allHeaders?: boolean ; singleEncode?: boolean } } & {}>
Parameters
| Name | Type |
|---|---|
client | AwsClient |
input | RequestInfo |
init? | AwsRequestInit |
Returns
Promise<RequestInit & { aws?: { accessKeyId?: string ; secretAccessKey?: string ; sessionToken?: string ; service?: string ; region?: string ; cache?: Map<string, ArrayBuffer> ; datetime?: string ; signQuery?: boolean ; appendSessionToken?: boolean ; allHeaders?: boolean ; singleEncode?: boolean } } & {}>
makeSetterFor
▸ makeSetterFor<V>(target, key, setDirty?): (a: V) => void
Type parameters
| Name |
|---|
V |
Parameters
| Name | Type |
|---|---|
target | any |
key | string |
setDirty? | () => void |
Returns
fn
▸ (a): void
Parameters
| Name | Type |
|---|---|
a | V |
Returns
void
isAnimatableType
▸ isAnimatableType(value): boolean
Parameters
| Name | Type |
|---|---|
value | any |
Returns
boolean
animateTarget
▸ animateTarget<V>(target, key, options, animations?, forceCurrent?): Promise<void>
Type parameters
| Name |
|---|
V |
Parameters
| Name | Type | Default value |
|---|---|---|
target | any | undefined |
key | string | undefined |
options | AnimationOptions<V> | undefined |
animations? | {}[] | undefined |
forceCurrent | boolean | false |
Returns
Promise<void>
animateAsync
▸ animateAsync<V>(options, animations?): Promise<void>
Type parameters
| Name | Type |
|---|---|
V | number |
Parameters
| Name | Type |
|---|---|
options | PlaybackOptions<V> & DecayOptions & { onEnd?: () => void } & PlaybackOptions<V> & SpringOptions & { onEnd?: () => void } & PlaybackOptions<V> & KeyframeOptions<V> & { onEnd?: () => void } |
animations? | {}[] |
Returns
Promise<void>
autoGPUInstanceMeshes
▸ autoGPUInstanceMeshes(matOrGeom): void
Parameters
| Name | Type |
|---|---|
matOrGeom | any |
Returns
void
shaderReplaceString
▸ shaderReplaceString(shader, str, newStr, __namedParameters?): string
Parameters
| Name | Type |
|---|---|
shader | string |
str | string |
newStr | string |
__namedParameters | Object |
__namedParameters.replaceAll | undefined | boolean |
__namedParameters.prepend | undefined | boolean |
__namedParameters.append | undefined | boolean |
Returns
string
textureDataToImageData
▸ textureDataToImageData(imgData, colorSpace?, outData?): ImageData
Parameters
| Name | Type |
|---|---|
imgData | ImageData | TextureImageData | { data: Uint8Array | Uint16Array | Float32Array ; width: number ; height: number } |
colorSpace? | ColorSpace |
outData? | ImageData |
Returns
ImageData
textureToCanvas
▸ textureToCanvas(texture, maxWidth, flipY?): HTMLCanvasElement
Parameters
| Name | Type | Default value |
|---|---|---|
texture | Texture<TextureEventMap> | DataTexture | undefined |
maxWidth | number | undefined |
flipY | boolean | false |
Returns
HTMLCanvasElement
texImageToCanvas
▸ texImageToCanvas(image, maxWidth, flipY?): HTMLCanvasElement
Parameters
| Name | Type | Default value |
|---|---|---|
image | TexImageSource | undefined |
maxWidth | number | undefined |
flipY | boolean | false |
Returns
HTMLCanvasElement
textureToDataUrl
▸ textureToDataUrl(texture, maxWidth, flipY, mimeType?, quality?): string
Parameters
| Name | Type |
|---|---|
texture | Texture<TextureEventMap> | DataTexture |
maxWidth | number |
flipY | boolean |
mimeType? | string |
quality? | number |
Returns
string
removeDuplicateGeometries
▸ removeDuplicateGeometries(obj): void
Parameters
| Name | Type |
|---|---|
obj | Object3D<Object3DEventMap> |
Returns
void
serialize
▸ serialize(key?): PropertyDecorator
Parameters
| Name | Type |
|---|---|
key? | string |
Returns
PropertyDecorator
serializeObject
▸ serializeObject(obj, isThis, meta?): any
Parameters
| Name | Type | Description |
|---|---|---|
obj | any | |
isThis | boolean | does not work for Texture, Material, Vector, Color |
meta? | any |
Returns
any
deserializeObject
▸ deserializeObject<T>(data, object, isThis, meta?): T
todo: fix problem when deserializing twice. deserializeObject(deserializeObject(obj))
Type parameters
| Name |
|---|
T |
Parameters
| Name | Type | Description |
|---|---|---|
data | any | |
object | T | current object that's set. If possible the data is deserialized into that instead of creating new objects. |
isThis | boolean | set it to true if called from the object itself like from fromJSON() |
meta | Record<string, any> |
Returns
T
serializable
▸ serializable(id): <T>(constructor: T) => T
Parameters
| Name | Type |
|---|---|
id | string |
Returns
fn
▸ <T>(constructor): T
Type parameters
| Name | Type |
|---|---|
T | extends (...args: any[]) => any |
Parameters
| Name | Type |
|---|---|
constructor | T |
Returns
T
serializeTextureInExtras
▸ serializeTextureInExtras(texture, meta, name?, mime?): { uuid: string = texture.uuid; url: any ; userData: any ; type: string = texture.type; name: undefined | string } | { uuid: string = texture.uuid; resource: string = 'extras' }
Used in LUTCubeTextureWrapper and KTX2LoadPlugin and imported in importConfigResources
Parameters
| Name | Type |
|---|---|
texture | Object |
texture.uuid | string |
texture.userData | any |
texture.type | string |
texture.source? | any |
texture.name? | string |
meta | any |
name? | string |
mime? | string |
Returns
{ uuid: string = texture.uuid; url: any ; userData: any ; type: string = texture.type; name: undefined | string } | { uuid: string = texture.uuid; resource: string = 'extras' }
vRGBMToLinear
▸ vRGBMToLinear(value, maxRange): Vector4
Parameters
| Name | Type |
|---|---|
value | Vector4 |
maxRange | number |
Returns
Vector4
cRGBMToLinear
▸ cRGBMToLinear(value, maxRange): Color
Parameters
| Name | Type |
|---|---|
value | Vector4 |
maxRange | number |
Returns
Color
vLinearToRGBM
▸ vLinearToRGBM(value, maxRange): Vector4
Parameters
| Name | Type |
|---|---|
value | Vector4 |
maxRange | number |
Returns
Vector4
cLinearToRGBM
▸ cLinearToRGBM(value, maxRange): Vector4
Parameters
| Name | Type |
|---|---|
value | Color |
maxRange | number |
Returns
Vector4
rotateDuplicatedMesh
▸ rotateDuplicatedMesh<T>(obj, rotations, skips, axis?): T | undefined
Type parameters
| Name | Type |
|---|---|
T | extends Object3D<Object3DEventMap, T> |
Parameters
| Name | Type | Default value |
|---|---|---|
obj | T | undefined |
rotations | number | undefined |
skips | undefined | number[] | undefined |
axis | "x" | "y" | "z" | 'x' |
Returns
T | undefined
snapObject
▸ snapObject(viewer, object?, root?, channel?, camOffset?): string
Parameters
| Name | Type | Default value |
|---|---|---|
viewer | ViewerApp | undefined |
object? | Object3D<Object3DEventMap> | undefined |
root? | Scene<Object3DEventMap> | undefined |
channel | number | 7 |
camOffset | Vector3 | undefined |
Returns
string
computeScreenSpaceBoundingBox
▸ computeScreenSpaceBoundingBox(obj, camera): Box2
Parameters
| Name | Type |
|---|---|
obj | Object3D<Object3DEventMap> |
camera | Camera<Object3DEventMap> |
Returns
Box2
getTexelDecodingFunction
▸ getTexelDecodingFunction(functionName, colorSpace): string
Parameters
| Name | Type |
|---|---|
functionName | string |
colorSpace | ColorSpace |
Returns
string
getTexelDecoding
▸ getTexelDecoding(mapName, colorSpace?): string
Parameters
| Name | Type |
|---|---|
mapName | string |
colorSpace? | ColorSpace |
Returns
string
uniform
▸ uniform(__namedParameters?): PropertyDecorator
Parameters
| Name | Type |
|---|---|
__namedParameters | Object |
__namedParameters.uniforms? | any |
__namedParameters.propKey? | string | symbol |
__namedParameters.thisTarget? | boolean |
Returns
PropertyDecorator
matDefine
▸ matDefine(key?, customDefines?, thisMat?, onChange?): PropertyDecorator
Parameters
| Name | Type | Default value | Description |
|---|---|---|---|
key? | string | symbol | undefined | define name |
customDefines? | any | undefined | object for setting define value (like ShaderMaterial.defines), otherwise this.material.defines is taken |
thisMat | boolean | false | access this.defines instead of this.material.defines |
onChange? | (...args: any[]) => any | undefined | - |
Returns
PropertyDecorator
dataTextureFromColor
▸ dataTextureFromColor(color): DataTexture
Parameters
| Name | Type |
|---|---|
color | Color |
Returns
DataTexture
dataTextureFromVec4
▸ dataTextureFromVec4(color): DataTexture
Parameters
| Name | Type |
|---|---|
color | Vector4 |
Returns
DataTexture
setThreeRendererMode
▸ setThreeRendererMode(renderer, ud, render): void
Parameters
| Name | Type |
|---|---|
renderer | WebGLRenderer |
ud | Object |
ud.shadowMapRender? | boolean |
ud.backgroundRender? | boolean |
ud.sceneRender? | boolean |
ud.opaqueRender? | boolean |
ud.transparentRender? | boolean |
ud.transmissionRender? | boolean |
ud.mainRenderPass? | boolean |
ud.screenSpaceRendering? | boolean |
render | () => void |
Returns
void
autoCenterObject3D
▸ autoCenterObject3D(obj, undo?): Object3D<Object3DEventMap>
Parameters
| Name | Type | Default value |
|---|---|---|
obj | Object3D<Object3DEventMap> | undefined |
undo | boolean | false |
Returns
Object3D<Object3DEventMap>
pivotToBBoxCenter
▸ pivotToBBoxCenter(obj): () => void
Parameters
| Name | Type |
|---|---|
obj | Object3D<Object3DEventMap> |
Returns
fn
▸ (): void
Returns
void
pivotToPoint
▸ pivotToPoint(obj, pivot): () => void
Parameters
| Name | Type |
|---|---|
obj | Object3D<Object3DEventMap> |
pivot | Vector3 |
Returns
fn
▸ (): void
Returns
void
autoScaleObject3D
▸ autoScaleObject3D(obj, autoScaleRadius?, isCentered?, undo?): Object3D<Object3DEventMap>
Parameters
| Name | Type | Default value |
|---|---|---|
obj | Object3D<Object3DEventMap> | undefined |
autoScaleRadius? | number | undefined |
isCentered? | boolean | undefined |
undo | boolean | false |
Returns
Object3D<Object3DEventMap>
toIndexedGeometry
▸ toIndexedGeometry(geometry, tolerance?): BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>
Convert geometry to BufferGeometry with indexed attributes.
Parameters
| Name | Type | Default value |
|---|---|---|
geometry | BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap> | undefined |
tolerance | number | -1 |
Returns
BufferGeometry<NormalBufferAttributes, BufferGeometryEventMap>
addSSBevel
▸ addSSBevel(material): boolean
Parameters
| Name | Type |
|---|---|
material | Material<MaterialEventMap> |
Returns
boolean
patchShaderEncodingSupport
▸ patchShaderEncodingSupport(shader, ...textureIds): ShaderMaterialEncodingSupport
Parameters
| Name | Type |
|---|---|
shader | any |
...textureIds | string[] |
Returns
Variables
diamondMaterialPropList
• Const diamondMaterialPropList: Partial<DiamondMaterial> | Record<string, any>
supportsRequestStreams
• Const supportsRequestStreams: boolean
defaultPresets
• Const defaultPresets: Object
Type declaration
| Name | Type |
|---|---|
Background | IAsset[] |
Environment | IAsset[] |
GemEnvironment | IAsset[] |
GemEnvironment2 | IAsset[] |
GemEnvironment3 | IAsset[] |
Ground | IAsset[] |
CameraViews | IAsset[] |
MaterialConfiguration | IAsset[] |
MaterialLibraries | IAsset[] |
EasingFunctions
• Const EasingFunctions: Object
Type declaration
| Name | Type |
|---|---|
linear | Easing |
easeIn | Easing |
easeOut | Easing |
easeInOut | Easing |
circIn | Easing |
circOut | Easing |
circInOut | Easing |
backIn | Easing |
backOut | Easing |
backInOut | Easing |
anticipate | Easing |
bounceOut | (p: number) => number |
bounceIn | Easing |
bounceInOut | (p: number) => number |
easeInOutSine | Easing |
serializers
• Const serializers: Object
Type declaration
| Name | Type |
|---|---|
obj | (obj: any, meta: any) => { [k: string]: T; } |
vec4 | (v: Vector4) => { x: number = v.x; y: number = v.y; z: number = v.z; w: number = v.w; isVector4: boolean = true } |
vec3 | (v: Vector3) => { x: number = v.x; y: number = v.y; z: number = v.z; isVector3: boolean = true } |
vec2 | (v: Vector2) => { x: number = v.x; y: number = v.y; isVector2: boolean = true } |
color | (c: Color) => { r: number = c.r; g: number = c.g; b: number = c.b; isColor: boolean = true } |
quat | (v: Quaternion) => { x: number = v.x; y: number = v.y; z: number = v.z; w: number = v.w; isQuaternion: boolean = true } |
texture | (obj: any, meta?: any) => any |
material | (obj: any, meta?: any) => any |
deserializers
• Const deserializers: Object
Type declaration
| Name | Type |
|---|---|
obj | (data: any, obj: any, meta: any) => any |
vec4 | (v: any, o: any) => any |
vec3 | (v: any, o: any) => any |
vec2 | (v: any, o: any) => any |
color | (v: any, o: any) => any |
quat | (v: any, o: any) => any |
RGBM16ColorSpace_
• Const RGBM16ColorSpace_: ColorSpace | "rgbm-16" = 'rgbm-16'
combineDofShader
• Const combineDofShader: Object
Type declaration
| Name | Type |
|---|---|
uniforms | { colorTexture: { value: null = null } ; tNormalDepth: { value: null = null } ; blurTexture: { value: null = null } ; cocTexture: { value: null = null } ; cocTextureSize: { value: Vector2 } ; cameraNearFar: { value: Vector2 } } |
uniforms.colorTexture | { value: null = null } |
uniforms.colorTexture.value | null |
uniforms.tNormalDepth | { value: null = null } |
uniforms.tNormalDepth.value | null |
uniforms.blurTexture | { value: null = null } |
uniforms.blurTexture.value | null |
uniforms.cocTexture | { value: null = null } |
uniforms.cocTexture.value | null |
uniforms.cocTextureSize | { value: Vector2 } |
uniforms.cocTextureSize.value | Vector2 |
uniforms.cameraNearFar | { value: Vector2 } |
uniforms.cameraNearFar.value | Vector2 |
vertexShader | any |
fragmentShader | string |