Many resources are needed to download a project. Please understand that we have to compensate our server costs. Thank you in advance. Project price only 1 $
You can buy this project and download/modify it how often you want.
// Automatically generated - do not modify!
@file:Suppress(
"NON_EXTERNAL_DECLARATION_IN_INAPPROPRIATE_FILE",
)
package cesium
/**
* An appearance for [GeometryInstance] instances with color attributes.
* This allows several geometry instances, each with a different color, to
* be drawn with the same [Primitive] as shown in the second example below.
* ```
* // A solid white line segment
* var primitive = new Primitive({
* geometryInstances : new GeometryInstance({
* geometry : new SimplePolylineGeometry({
* positions : Cartesian3.fromDegreesArray([
* 0.0, 0.0,
* 5.0, 0.0
* ])
* }),
* attributes : {
* color : ColorGeometryInstanceAttribute.fromColor(new Color(1.0, 1.0, 1.0, 1.0))
* }
* }),
* appearance : new PerInstanceColorAppearance({
* flat : true,
* translucent : false
* })
* });
*
* // Two rectangles in a primitive, each with a different color
* var instance = new GeometryInstance({
* geometry : new RectangleGeometry({
* rectangle : Rectangle.fromDegrees(0.0, 20.0, 10.0, 30.0)
* }),
* attributes : {
* color : new ColorGeometryInstanceAttribute(1.0, 0.0, 0.0, 0.5)
* }
* });
*
* var anotherInstance = new GeometryInstance({
* geometry : new RectangleGeometry({
* rectangle : Rectangle.fromDegrees(0.0, 40.0, 10.0, 50.0)
* }),
* attributes : {
* color : new ColorGeometryInstanceAttribute(0.0, 0.0, 1.0, 0.5)
* }
* });
*
* var rectanglePrimitive = new Primitive({
* geometryInstances : [instance, anotherInstance],
* appearance : new PerInstanceColorAppearance()
* });
* ```
* @see Online Documentation
*/
@JsName("\$cesium__PerInstanceColorAppearance")
external class PerInstanceColorAppearance(options: ConstructorOptions? = definedExternally) {
/**
* @property [flat] When `true`, flat shading is used in the fragment shader, which means lighting is not taking into account.
* Default value - `false`
* @property [faceForward] When `true`, the fragment shader flips the surface normal as needed to ensure that the normal faces the viewer to avoid dark spots. This is useful when both sides of a geometry should be shaded like [WallGeometry].
* Default value - `!options.closed`
* @property [translucent] When `true`, the geometry is expected to appear translucent so [PerInstanceColorAppearance.renderState] has alpha blending enabled.
* Default value - `true`
* @property [closed] When `true`, the geometry is expected to be closed so [PerInstanceColorAppearance.renderState] has backface culling enabled.
* Default value - `false`
* @property [vertexShaderSource] Optional GLSL vertex shader source to override the default vertex shader.
* @property [fragmentShaderSource] Optional GLSL fragment shader source to override the default fragment shader.
* @property [renderState] Optional render state to override the default render state.
*/
interface ConstructorOptions {
var flat: Boolean?
var faceForward: Boolean?
var translucent: Boolean?
var closed: Boolean?
var vertexShaderSource: String?
var fragmentShaderSource: String?
var renderState: Any?
}
/**
* This property is part of the [Appearance] interface, but is not
* used by [PerInstanceColorAppearance] since a fully custom fragment shader is used.
* @see Online Documentation
*/
var material: Material
/**
* When `true`, the geometry is expected to appear translucent so
* [PerInstanceColorAppearance.renderState] has alpha blending enabled.
* @see Online Documentation
*/
var translucent: Boolean
/**
* The GLSL source code for the vertex shader.
* @see Online Documentation
*/
val vertexShaderSource: String
/**
* The GLSL source code for the fragment shader.
* @see Online Documentation
*/
val fragmentShaderSource: String
/**
* The WebGL fixed-function state to use when rendering the geometry.
*
* The render state can be explicitly defined when constructing a [PerInstanceColorAppearance]
* instance, or it is set implicitly via [PerInstanceColorAppearance.translucent]
* and [PerInstanceColorAppearance.closed].
* @see Online Documentation
*/
val renderState: Any
/**
* When `true`, the geometry is expected to be closed so
* [PerInstanceColorAppearance.renderState] has backface culling enabled.
* If the viewer enters the geometry, it will not be visible.
* @see Online Documentation
*/
val closed: Boolean
/**
* The [VertexFormat] that this appearance instance is compatible with.
* A geometry can have more vertex attributes and still be compatible - at a
* potential performance cost - but it can't have less.
* @see Online Documentation
*/
val vertexFormat: VertexFormat
/**
* When `true`, flat shading is used in the fragment shader,
* which means lighting is not taking into account.
* @see Online Documentation
*/
val flat: Boolean
/**
* When `true`, the fragment shader flips the surface normal
* as needed to ensure that the normal faces the viewer to avoid
* dark spots. This is useful when both sides of a geometry should be
* shaded like [WallGeometry].
* @see Online Documentation
*/
val faceForward: Boolean
/**
* Procedurally creates the full GLSL fragment shader source. For [PerInstanceColorAppearance],
* this is derived from [PerInstanceColorAppearance.fragmentShaderSource], [PerInstanceColorAppearance.flat],
* and [PerInstanceColorAppearance.faceForward].
* @return The full GLSL fragment shader source.
* @see Online Documentation
*/
fun getFragmentShaderSource(): String
/**
* Determines if the geometry is translucent based on [PerInstanceColorAppearance.translucent].
* @return `true` if the appearance is translucent.
* @see Online Documentation
*/
fun isTranslucent(): Boolean
/**
* Creates a render state. This is not the final render state instance; instead,
* it can contain a subset of render state properties identical to the render state
* created in the context.
* @return The render state.
* @see Online Documentation
*/
fun getRenderState(): Any
companion object {
/**
* The [VertexFormat] that all [PerInstanceColorAppearance] instances
* are compatible with. This requires only `position` and `normal`
* attributes.
* @see Online Documentation
*/
val VERTEX_FORMAT: VertexFormat
/**
* The [VertexFormat] that all [PerInstanceColorAppearance] instances
* are compatible with when [PerInstanceColorAppearance.flat] is `true`.
* This requires only a `position` attribute.
* @see Online Documentation
*/
val FLAT_VERTEX_FORMAT: VertexFormat
}
}