Interface QuadView
- All Known Subinterfaces:
MutableQuadView
,QuadEmitter
public interface QuadView
Interface for reading quad data encoded by
MeshBuilder
.
Enables models to do analysis, re-texturing or translation without knowing the
renderer's vertex formats and without retaining redundant information.
Only the renderer should implement or extend this interface.
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
Count of integers in a conventional (un-modded) block or item quad.static final int
Count of integers in a conventional (un-modded) block or item vertex. -
Method Summary
Modifier and TypeMethodDescriptiondefault int
color
(int vertexIndex) Retrieve vertex color in ARGB format (0xAARRGGBB).int
Retrieves the quad color index serialized with the quad.@Nullable org.joml.Vector3f
copyNormal
(int vertexIndex, @Nullable org.joml.Vector3f target) Pass a non-null target to avoid allocation - will be returned with values.org.joml.Vector3f
copyPos
(int vertexIndex, @Nullable org.joml.Vector3f target) Pass a non-null target to avoid allocation - will be returned with values.default void
copyTo
(MutableQuadView target) Deprecated.default org.joml.Vector2f
copyUv
(int vertexIndex, @Nullable org.joml.Vector2f target) Pass a non-null target to avoid allocation - will be returned with values.@Nullable Direction
cullFace()
If non-null, quad should not be rendered in-world if the opposite face of a neighbor block occludes it.org.joml.Vector3f
Normal of the quad as implied by geometry.boolean
hasNormal
(int vertexIndex) If false, no vertex normal was provided.@NotNull Direction
Equivalent toBakedQuad.getFace()
.int
lightmap
(int vertexIndex) Minimum block brightness.material()
Retrieves the material serialized with the quad.@Nullable Direction
float
normalX
(int vertexIndex) Will returnFloat.NaN
if normal not present.float
normalY
(int vertexIndex) Will returnFloat.NaN
if normal not present.float
normalZ
(int vertexIndex) Will returnFloat.NaN
if normal not present.float
posByIndex
(int vertexIndex, int coordinateIndex) Convenience: access x, y, z by index 0-2.default int
spriteColor
(int vertexIndex, int spriteIndex) Deprecated.Usecolor(int)
instead.default float
spriteU
(int vertexIndex, int spriteIndex) Deprecated.Useu(int)
instead.default float
spriteV
(int vertexIndex, int spriteIndex) Deprecated.Usev(int)
instead.int
tag()
Retrieves the integer tag encoded with this quad viaMutableQuadView.tag(int)
.default BakedQuad
toBakedQuad
(int spriteIndex, Sprite sprite, boolean isItem) Deprecated.UsetoBakedQuad(Sprite)
instead.default BakedQuad
toBakedQuad
(Sprite sprite) Generates a new BakedQuad instance with texture coordinates and colors from the given sprite.default void
toVanilla
(int[] target, int targetIndex) Reads baked vertex data and outputs standardbaked quad vertex data
in the given array and location.default void
toVanilla
(int spriteIndex, int[] target, int targetIndex, boolean isItem) Deprecated.UsetoVanilla(int[], int)
instead.default float
u
(int vertexIndex) Retrieve horizontal texture coordinates.default float
v
(int vertexIndex) Retrieve vertical texture coordinates.float
x
(int vertexIndex) Retrieve geometric position, x coordinate.float
y
(int vertexIndex) Retrieve geometric position, y coordinate.float
z
(int vertexIndex) Retrieve geometric position, z coordinate.
-
Field Details
-
VANILLA_VERTEX_STRIDE
static final int VANILLA_VERTEX_STRIDECount of integers in a conventional (un-modded) block or item vertex. -
VANILLA_QUAD_STRIDE
static final int VANILLA_QUAD_STRIDECount of integers in a conventional (un-modded) block or item quad.
-
-
Method Details
-
x
float x(int vertexIndex) Retrieve geometric position, x coordinate. -
y
float y(int vertexIndex) Retrieve geometric position, y coordinate. -
z
float z(int vertexIndex) Retrieve geometric position, z coordinate. -
posByIndex
float posByIndex(int vertexIndex, int coordinateIndex) Convenience: access x, y, z by index 0-2. -
copyPos
org.joml.Vector3f copyPos(int vertexIndex, @Nullable @Nullable org.joml.Vector3f target) Pass a non-null target to avoid allocation - will be returned with values. Otherwise returns a new instance. -
color
default int color(int vertexIndex) Retrieve vertex color in ARGB format (0xAARRGGBB).- API Note:
- The default implementation will be removed in the next breaking release.
-
u
default float u(int vertexIndex) Retrieve horizontal texture coordinates.- API Note:
- The default implementation will be removed in the next breaking release.
-
v
default float v(int vertexIndex) Retrieve vertical texture coordinates.- API Note:
- The default implementation will be removed in the next breaking release.
-
copyUv
default org.joml.Vector2f copyUv(int vertexIndex, @Nullable @Nullable org.joml.Vector2f target) Pass a non-null target to avoid allocation - will be returned with values. Otherwise returns a new instance.- API Note:
- The default implementation will be removed in the next breaking release.
-
lightmap
int lightmap(int vertexIndex) Minimum block brightness. Zero if not set. -
hasNormal
boolean hasNormal(int vertexIndex) If false, no vertex normal was provided. Lighting should use face normal in that case. -
normalX
float normalX(int vertexIndex) Will returnFloat.NaN
if normal not present. -
normalY
float normalY(int vertexIndex) Will returnFloat.NaN
if normal not present. -
normalZ
float normalZ(int vertexIndex) Will returnFloat.NaN
if normal not present. -
copyNormal
@Nullable @Nullable org.joml.Vector3f copyNormal(int vertexIndex, @Nullable @Nullable org.joml.Vector3f target) Pass a non-null target to avoid allocation - will be returned with values. Otherwise returns a new instance. Returns null if normal not present. -
cullFace
If non-null, quad should not be rendered in-world if the opposite face of a neighbor block occludes it.- See Also:
-
lightFace
Equivalent toBakedQuad.getFace()
. This is the face used for vanilla lighting calculations and will be the block face to which the quad is most closely aligned. Always the same as cull face for quads that are on a block face, but never null. -
nominalFace
-
faceNormal
org.joml.Vector3f faceNormal()Normal of the quad as implied by geometry. Will be invalid if quad vertices are not co-planar. Typically computed lazily on demand.Not typically needed by models. Exposed to enable standard lighting utility functions for use by renderers.
-
material
RenderMaterial material()Retrieves the material serialized with the quad. -
colorIndex
int colorIndex()Retrieves the quad color index serialized with the quad. -
tag
int tag()Retrieves the integer tag encoded with this quad viaMutableQuadView.tag(int)
. Will return zero if no tag was set. For use by models. -
toVanilla
default void toVanilla(int[] target, int targetIndex) Reads baked vertex data and outputs standardbaked quad vertex data
in the given array and location.- Parameters:
target
- Target array for the baked quad data.targetIndex
- Starting position in target array - array must have at leastVANILLA_QUAD_STRIDE
elements available at this index.- API Note:
- The default implementation will be removed in the next breaking release.
-
toBakedQuad
Generates a new BakedQuad instance with texture coordinates and colors from the given sprite.- Parameters:
sprite
-MutableQuadView
does not serialize sprites so the sprite must be provided by the caller.- Returns:
- A new baked quad instance with the closest-available appearance supported by vanilla features. Will retain emissive light maps, for example, but the standard Minecraft renderer will not use them.
-
spriteColor
Deprecated.Usecolor(int)
instead. -
spriteU
Deprecated.Useu(int)
instead. -
spriteV
Deprecated.Usev(int)
instead. -
copyTo
Deprecated.UseMutableQuadView.copyFrom(QuadView)
instead. UnlikecopyFrom
, this method will not copy the material. -
toVanilla
Deprecated.UsetoVanilla(int[], int)
instead. -
toBakedQuad
Deprecated.UsetoBakedQuad(Sprite)
instead.
-
MutableQuadView.copyFrom(QuadView)
instead.