Primitive3D class abstract
A 3-D shape made from its own sizes rather than a model file — the base
of Cube3D, Sphere3D, Plane3D, Cylinder3D, Capsule3D,
Cone3D, Torus3D, Ramp3D, Stairs3D, Arch3D and Polygon3D.
Every shape is centred on its entity, in metres, with +Y down like the
rest of the engine. An entity has at most one (as a 2-D entity has one
renderable): find it with entity.getComponent<Primitive3D>().
Each carries its look — a physically based material: color, metallic, roughness, a emission glow, opacity, unlit, and an optional texture repeated tiling times (per metre of the world with tileInMetres).
Its shape is also a SolidShapeSource, so the engine's Collider3D
set to match the shape takes the same one.
Constructors
- Primitive3D({String material = '', Color color = defaultColor, double metallic = 0.0, double roughness = 0.75, Color emission = const Color(0xFF000000), double emissionStrength = 1.0, double opacity = 1.0, bool unlit = false, String texture = '', Vector2? tiling, bool tileInMetres = false, bool castShadows = true, bool visible = true})
- A shape with the given look; the defaults are a light grey, slightly rough, untextured surface.
Properties
- castShadows ↔ bool
-
Whether it casts shadows (where shadows are on).
getter/setter pair
- color ↔ Color
-
Its colour (sRGB, as picked); multiplies the texture.
getter/setter pair
- componentType → Type
-
Every shape shares one column: an entity has one shape.
no setteroverride
- doubleSided → bool
-
Whether its back faces are drawn too (a plane's).
no setter
- emission ↔ Color
-
The light it gives off itself (sRGB); black for none.
getter/setter pair
- emissionStrength ↔ double
-
How strongly it glows: emission times this.
getter/setter pair
- hashCode → int
-
The hash code for this object.
no setterinherited
- material ↔ String
-
A material file (
*.material.json) it is drawn with, by path — shared with everything else drawn with it; empty for its own look, the fields below. While set, those fields are kept but not used.getter/setter pair - materialKey → Object
-
Equal for as long as its look stays the same.
no setter
- metallic ↔ double
-
How metallic it is, 0–1.
getter/setter pair
- opacity ↔ double
-
How opaque it is, 0–1. Below 1 it is drawn blended, after everything
opaque.
getter/setter pair
- roughness ↔ double
-
How rough it is, 0 (a mirror) – 1 (chalk).
getter/setter pair
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- shapeKey → Object
-
Equal for as long as its mesh stays the same: its sizes and detail.
no setter
- shapeName → String
-
What it is called:
Cube.no setter - solidKey → Object
-
Equal (Object.==) for as long as the shape stays the same: a reader
builds its own shape again only when this changes.
no setteroverride
-
solidParts
→ List<
SolidPart> -
The shape as convex parts whose union it is, in its entity's own space
(before the entity's scale). Empty for none.
no setterinherited
- texture ↔ String
-
An image (asset path) on its surface; empty for none.
getter/setter pair
- tileInMetres ↔ bool
-
Whether tiling counts repeats per metre of the world, so a texture
keeps its scale on shapes of any size and scale.
getter/setter pair
- tiling ↔ Vector2
-
How many times the texture repeats across a face — or per metre,
with tileInMetres.
getter/setter pair
- unlit ↔ bool
-
Whether it shows its colour as it is, with no light or shade.
getter/setter pair
- visible ↔ bool
-
Whether it is drawn.
getter/setter pair
Methods
-
boundsInto(
Aabb3 out) → void -
Its bounds in its entity's own space into
out. -
buildMesh(
[ShapeUv uv = ShapeUv.natural]) → ShapeMesh -
Its triangles, textured by
uv. -
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
onAttach(
EntityId entityId) → void -
Called when this component is added to an entity.
inherited
-
onDetach(
EntityId entityId) → void -
Called when this component is removed from an entity.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
-
writeMaterialValues(
ShapeValues values) → void -
Gives
valueswhat materialKey is made from, one by one, so a renderer can tell each frame whether the look changed without making a key. -
writeShapeValues(
ShapeValues values) → void -
Gives
valueswhat shapeKey is made from, one by one, so a renderer can tell each frame whether the mesh changed without making a key. A shape of the engine's gives plain numbers; the default gives shapeKey itself.
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
Constants
- defaultColor → const Color
- The colour a new shape has.
- minSize → const double
- The smallest size a shape is made at, so a zero gives a tiny shape rather than none.