MCPcopy Create free account
hub / github.com/OpenEndedGroup/Field2 / Shapes

Class Shapes

src/main/java/field/graphics/util/Shapes.kt:24–372  ·  view source on GitHub ↗

* Classes that will help MeshBuilder support simple shapes */

Source from the content-addressed store, hash-verified

22 */
23class Shapes {
24
25 companion object
26 {
27 @JvmField var normals = 3;
28 @JvmField var textures = 4;
29 @JvmField var colors = 1;
30
31 @SafeToToString
32 @Documentation("Set this field to rotate everything that this class appends to builders")
33 @JvmField var rotate = Quat()
34
35 @SafeToToString
36 @Documentation("Set this field to translate everything that this class appends to builders")
37 @JvmField var translate = Vec3()
38
39 @JvmStatic
40 @Documentation("Appends a cube of size `scale` to `builder`")
41 fun cube(scale: Number = 1, builder: MeshBuilder): MeshBuilder {
42 return cube(Vec3(scale.toDouble(), scale.toDouble(), scale.toDouble()), builder)
43 }
44
45 @JvmStatic
46 @JvmOverloads
47 @Documentation("Appends a cube of size `scale` to `builder`")
48 fun cube(scale: Vec3 = Vec3(1.0, 1.0, 1.0), builder: MeshBuilder): MeshBuilder {
49 val shape = ParShapes.par_shapes_create_cube()!!
50 ParShapes.par_shapes_scale(shape, scale.x().toFloat(), scale.y().toFloat(), scale.z().toFloat())
51 parMeshToMeshBuilder(shape, builder)
52 return builder
53 }
54
55 @JvmStatic
56 @JvmOverloads
57 @Documentation("Appends a sphere of radius `scale` to `builder`")
58 fun sphere(scale: Vec3 = Vec3(1.0, 1.0, 1.0), slices: Int, stacks: Int, builder: MeshBuilder): MeshBuilder {
59 val shape = ParShapes.par_shapes_create_parametric_sphere(slices, stacks)!!
60 ParShapes.par_shapes_scale(shape, scale.x.toFloat(), scale.y.toFloat(), scale.z.toFloat())
61 parMeshToMeshBuilder(shape, builder)
62 return builder
63 }
64
65 @JvmStatic
66 @Documentation("Appends a sphere of radius `scale` to `builder`")
67 fun sphere(scale: Number, slices: Int, stacks: Int, builder: MeshBuilder): MeshBuilder {
68 return sphere(Vec3(scale.toDouble(), scale.toDouble(), scale.toDouble()), slices, stacks, builder)
69 }
70
71 @JvmStatic
72 @JvmOverloads
73 @Documentation("Appends a torus of with radius `scale` and inner radius `scale` * `inner_radius` to `builder`")
74 fun torus(scale: Vec3 = Vec3(1.0, 1.0, 1.0), slices: Int, stacks: Int, inner_radius: Number, builder: MeshBuilder): MeshBuilder {
75 val shape = ParShapes.par_shapes_create_torus(slices, stacks, inner_radius.toFloat())!!
76 ParShapes.par_shapes_scale(shape, scale.x.toFloat(), scale.y.toFloat(), scale.z.toFloat())
77 parMeshToMeshBuilder(shape, builder)
78 return builder
79 }
80
81 @JvmStatic

Callers

nothing calls this directly

Calls 2

QuatClass · 0.85
Vec3Class · 0.50

Tested by

no test coverage detected