2019-08-18 22:29:26 +03:00
|
|
|
/*
|
|
|
|
* The MIT License
|
|
|
|
*
|
|
|
|
* Copyright 2017-2018 Lars Ivar Hatledal
|
|
|
|
*
|
|
|
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
|
|
* of this software and associated documentation files (the "Software"), to deal
|
|
|
|
* in the Software without restriction, including without limitation the rights
|
|
|
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
|
|
* copies of the Software, and to permit persons to whom the Software is
|
|
|
|
* furnished to do so, subject to the following conditions:
|
|
|
|
*
|
|
|
|
* The above copyright notice and this permission notice shall be included in
|
|
|
|
* all copies or substantial portions of the Software.
|
|
|
|
*
|
|
|
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
|
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
|
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
|
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
|
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
|
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
|
|
|
* THE SOFTWARE.
|
|
|
|
*/
|
|
|
|
|
|
|
|
@file:JsModule("three")
|
|
|
|
@file:JsNonModule
|
|
|
|
|
2022-08-14 22:03:46 +03:00
|
|
|
package three.renderers
|
2019-08-18 22:29:26 +03:00
|
|
|
|
|
|
|
import org.w3c.dom.Node
|
2022-08-14 22:03:46 +03:00
|
|
|
import three.cameras.Camera
|
|
|
|
import three.math.Plane
|
|
|
|
import three.scenes.Scene
|
2019-08-18 22:29:26 +03:00
|
|
|
|
|
|
|
|
|
|
|
external class WebGLRenderer(params: WebGLRendererParams = definedExternally) {
|
|
|
|
var domElement: Node
|
|
|
|
|
|
|
|
var autoClear: Boolean
|
|
|
|
var autoClearColor: Boolean
|
|
|
|
var autoClearDepth: Boolean
|
|
|
|
var autoClearStencil: Boolean
|
|
|
|
|
|
|
|
var sortObjects: Boolean
|
|
|
|
|
|
|
|
var gammaFactor: Double
|
|
|
|
var gammaInput: Boolean
|
|
|
|
var gammaOutput: Boolean
|
|
|
|
|
|
|
|
var physicallyCorrectLights: Boolean
|
|
|
|
|
|
|
|
|
|
|
|
var toneMapping: Int
|
|
|
|
var toneMappingExposure: Double;
|
|
|
|
var toneMappingWhitePoint: Double
|
|
|
|
|
|
|
|
var maxMorphTargets: Int
|
|
|
|
var maxMorphNormals: Int
|
|
|
|
|
|
|
|
interface Size {
|
|
|
|
val x: Int
|
|
|
|
val y: Int
|
|
|
|
}
|
|
|
|
|
|
|
|
fun clear(
|
|
|
|
color: Boolean = definedExternally,
|
|
|
|
depth: Boolean = definedExternally,
|
2020-11-19 13:43:42 +03:00
|
|
|
stencil: Boolean = definedExternally,
|
2019-08-18 22:29:26 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
fun clearColor()
|
|
|
|
fun clearDepth()
|
|
|
|
fun clearStencil()
|
|
|
|
|
|
|
|
fun getSize(): Size
|
|
|
|
fun setSize(width: Int, height: Int, updateStyle: Boolean = definedExternally)
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the clear alpha. Valid input is a float between 0.0 and 1.0.
|
|
|
|
*/
|
|
|
|
fun setClearAlpha(alpha: Number)
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Sets the clear color and opacity.
|
|
|
|
*/
|
|
|
|
fun setClearColor(color: Int, alpha: Number)
|
|
|
|
|
2020-11-19 13:43:42 +03:00
|
|
|
/**
|
|
|
|
* @param callback The function will be called every available frame. If `null` is passed it will stop any already ongoing animation.
|
|
|
|
*/
|
|
|
|
fun setAnimationLoop(callback: () -> Unit)
|
|
|
|
|
2019-08-18 22:29:26 +03:00
|
|
|
/**
|
|
|
|
* Render a scene using a camera.
|
|
|
|
* The render is done to the renderTarget (if specified) or to the canvas as usual.
|
|
|
|
* If forceClear is true, the depth, stencil and color buffers will be cleared before rendering even if the renderer's autoClear property is false.
|
|
|
|
* Even with forceClear set to true you can prevent certain buffers being cleared by setting either the autoClearColor, autoClearStencil or autoClearDepth properties to false.
|
|
|
|
*/
|
|
|
|
fun render(
|
|
|
|
scene: Scene,
|
|
|
|
camera: Camera,
|
|
|
|
renderTarget: dynamic = definedExternally,
|
2020-11-19 13:43:42 +03:00
|
|
|
forceClear: Boolean = definedExternally,
|
2019-08-18 22:29:26 +03:00
|
|
|
)
|
|
|
|
|
|
|
|
fun setPixelRatio(value: Number)
|
2021-05-05 15:28:06 +03:00
|
|
|
|
|
|
|
//clipping
|
|
|
|
|
|
|
|
/**
|
|
|
|
* User-defined clipping planes specified as THREE.Plane objects in world space. These planes apply globally.
|
|
|
|
* Points in space whose dot product with the plane is negative are cut away. Default is [].
|
|
|
|
*/
|
|
|
|
var clippingPlanes: Array<Plane>
|
|
|
|
|
|
|
|
/**
|
|
|
|
* Defines whether the renderer respects object-level clipping planes. Default is false.
|
|
|
|
*/
|
|
|
|
var localClippingEnabled: Boolean
|
2019-08-18 22:29:26 +03:00
|
|
|
}
|