You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
274 lines
6.7 KiB
274 lines
6.7 KiB
package pavelsobolev.kotogl.Space3D
|
|
|
|
object VertexSource
|
|
{
|
|
// constants for colours and coordinates
|
|
private val one : Float = 1.0f
|
|
private val zero : Float = 0.0f
|
|
private val z8 : Float = 0.7f
|
|
private val z7 : Float = 0.8f
|
|
|
|
// X, Y, Z of hexahedron vertices
|
|
private val hexahedronCoordinates = floatArrayOf(
|
|
// Front
|
|
-one, one, one,
|
|
-one, -one, one,
|
|
one, one, one,
|
|
-one, -one, one,
|
|
one, -one, one,
|
|
one, one, one,
|
|
|
|
// Right
|
|
one, one, one,
|
|
one, -one, one,
|
|
one, one, -one,
|
|
one, -one, one,
|
|
one, -one, -one,
|
|
one, one, -one,
|
|
|
|
// Back
|
|
one, one, -one,
|
|
one, -one, -one,
|
|
-one, one, -one,
|
|
one, -one, -one,
|
|
-one, -one, -one,
|
|
-one, one, -one,
|
|
|
|
// Left
|
|
-one, one, -one,
|
|
-one, -one, -one,
|
|
-one, one, one,
|
|
-one, -one, -one,
|
|
-one, -one, one,
|
|
-one, one, one,
|
|
|
|
// Top
|
|
-one, one, -one,
|
|
-one, one, one,
|
|
one, one, -one,
|
|
-one, one, one,
|
|
one, one, one,
|
|
one, one, -one,
|
|
|
|
// Bottom
|
|
one, -one, -one,
|
|
one, -one, one,
|
|
-one, -one, -one,
|
|
one, -one, one,
|
|
-one, -one, one,
|
|
-one, -one, -one)
|
|
|
|
// R, G, B, A of hexahedron vertices
|
|
private val hexahedronColors = floatArrayOf(
|
|
// Front color
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
|
|
// Right color
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
|
|
// Back color
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
|
|
// Left color
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
|
|
// Top color
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
|
|
// Bottom color
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one,
|
|
z8, z8, z8, one)
|
|
|
|
// X, Y, Z
|
|
private val hexahedronNormalVectors = floatArrayOf(
|
|
// Front face
|
|
zero, zero, one,
|
|
zero, zero, one,
|
|
zero, zero, one,
|
|
zero, zero, one,
|
|
zero, zero, one,
|
|
zero, zero, one,
|
|
|
|
// Right face
|
|
one, zero, zero,
|
|
one, zero, zero,
|
|
one, zero, zero,
|
|
one, zero, zero,
|
|
one, zero, zero,
|
|
one, zero, zero,
|
|
|
|
// Back face
|
|
zero, zero, -one,
|
|
zero, zero, -one,
|
|
zero, zero, -one,
|
|
zero, zero, -one,
|
|
zero, zero, -one,
|
|
zero, zero, -one,
|
|
|
|
// Left face
|
|
-one, zero, zero,
|
|
-one, zero, zero,
|
|
-one, zero, zero,
|
|
-one, zero, zero,
|
|
-one, zero, zero,
|
|
-one, zero, zero,
|
|
|
|
// Top face
|
|
zero, one, zero,
|
|
zero, one, zero,
|
|
zero, one, zero,
|
|
zero, one, zero,
|
|
zero, one, zero,
|
|
zero, one, zero,
|
|
|
|
// Bottom face
|
|
zero, -one, zero,
|
|
zero, -one, zero,
|
|
zero, -one, zero,
|
|
zero, -one, zero,
|
|
zero, -one, zero,
|
|
zero, -one, zero)
|
|
|
|
private val hexahedronTextureCoordinateData = floatArrayOf(
|
|
// Front face
|
|
zero, zero, zero,
|
|
one, one, zero,
|
|
zero, one, one,
|
|
one, one, zero,
|
|
|
|
// Right face
|
|
zero, zero, zero,
|
|
one, one, zero,
|
|
zero, one, one,
|
|
one, one, zero,
|
|
|
|
// Back face
|
|
zero, zero, zero,
|
|
one, one, zero,
|
|
zero, one, one,
|
|
one, one, zero,
|
|
|
|
// Left face
|
|
zero, zero, zero,
|
|
one, one, zero,
|
|
zero, one, one,
|
|
one, one, zero,
|
|
|
|
// Top face
|
|
zero, zero, zero,
|
|
one, one, zero,
|
|
zero, one, one,
|
|
one, one, zero,
|
|
|
|
// Bottom face
|
|
zero, zero, zero,
|
|
one, one, zero,
|
|
zero, one, one,
|
|
one, one, zero)
|
|
|
|
// tetrahedron data
|
|
|
|
private val tetrahedronCoordinates = floatArrayOf(
|
|
-one, one, one,
|
|
-one, -one, -one,
|
|
one, -one, one,
|
|
|
|
one, -one, one,
|
|
-one, -one, -one,
|
|
one, one, -one,
|
|
|
|
one, one, -one,
|
|
-one, -one, -one,
|
|
-one, one, one,
|
|
|
|
-one, one, one,
|
|
one, -one, one,
|
|
one, one, -one)
|
|
|
|
private val tetrahedronColors = floatArrayOf(
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one,
|
|
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one,
|
|
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one,
|
|
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one,
|
|
z7, z7, z7, one)
|
|
|
|
private val tetrahedronNormalVectors = floatArrayOf(
|
|
-one, -one, one,
|
|
-one, -one, one,
|
|
-one, -one, one,
|
|
|
|
one, -one, -one,
|
|
one, -one, -one,
|
|
one, -one, -one,
|
|
|
|
-one, one, -one,
|
|
-one, one, -one,
|
|
-one, one, -one,
|
|
|
|
one, one, one,
|
|
one, one, one,
|
|
one, one, one)
|
|
|
|
|
|
// --- public getters
|
|
|
|
val HexahedronCoordinates : FloatArray
|
|
get() = this.hexahedronCoordinates
|
|
|
|
val HexahedronColors: FloatArray
|
|
get() = hexahedronColors
|
|
|
|
val HexahedronNormalVectors: FloatArray
|
|
get() = hexahedronNormalVectors
|
|
|
|
val TetrahedronCoordinates: FloatArray
|
|
get() = tetrahedronCoordinates
|
|
|
|
val TetrahedronColors: FloatArray
|
|
get() = tetrahedronColors
|
|
|
|
val TetrahedronNormalVectors: FloatArray
|
|
get() = tetrahedronNormalVectors
|
|
|
|
val HexahedronTextureCoordinateData: FloatArray
|
|
get() = hexahedronTextureCoordinateData
|
|
} |