MeshVoxelizer

final class MeshVoxelizer

Class MeshVoxelizer. Provides meshvoxelizer functionality for the Hytale server.

java.lang.Object > MeshVoxelizer

Field Summary

bounds

final float[] bounds

Field bounds.

meshHeight

final float meshHeight

Field meshHeight.

meshWidth

final float meshWidth

Field meshWidth.

meshDepth

final float meshDepth

Field meshDepth.

scale

final float scale

Field scale.

scaledVertices

final float[][] scaledVertices

Field scaledVertices.

scaledMinX

final float scaledMinX

Field scaledMinX.

scaledMaxX

final float scaledMaxX

Field scaledMaxX.

scaledMinY

final float scaledMinY

Field scaledMinY.

scaledMaxY

final float scaledMaxY

Field scaledMaxY.

scaledMinZ

final float scaledMinZ

Field scaledMinZ.

scaledMaxZ

final float scaledMaxZ

Field scaledMaxZ.

offsetX

final float offsetX

Field offsetX.

offsetY

final float offsetY

Field offsetY.

offsetZ

final float offsetZ

Field offsetZ.

v

final float[] v

Field v.

v2

final float[] v2

Field v2.

shell

final boolean[][][] shell

Field shell.

hasTextures

final boolean hasTextures

Field hasTextures.

blockIds

final int[][][] blockIds

Field blockIds.

solid

final boolean[][][] solid

Field solid.

faces

final List faces

Field faces.

faceUvIndices

final List faceUvIndices

Field faceUvIndices.

uvCoordinates

final List uvCoordinates

Field uvCoordinates.

faceMaterials

final List faceMaterials

Field faceMaterials.

face

final int[] face

Field face.

i0

final int i0

Field i0.

i2

final int i2

Field i2.

i3

final int i3

Field i3.

v0

final float[] v0

Field v0.

v3

final float[] v3

Field v3.

material

final String material

Field material.

uvIndices

final int[] uvIndices

Field uvIndices.

uvCount

final int uvCount

Field uvCount.

ui0

final int ui0

Field ui0.

ui2

final int ui2

Field ui2.

ui3

final int ui3

Field ui3.

dx

final float dx

Field dx.

dy

final float dy

Field dy.

dz

final float dz

Field dz.

len

final float len

Field len.

blockId

final int blockId

Field blockId.

t

final float t

Field t.

x

final float x

Field x.

y

final float y

Field y.

z

final float z

Field z.

uv

final float[] uv

Field uv.

blockId2

final int blockId2

Field blockId2.

alpha

final int alpha

Field alpha.

rgb

final int[] rgb

Field rgb.

minX

final float minX

Field minX.

maxX

final float maxX

Field maxX.

minY

final float minY

Field minY.

maxY

final float maxY

Field maxY.

minZ

final float minZ

Field minZ.

maxZ

final float maxZ

Field maxZ.

startX

final int startX

Field startX.

endX

final int endX

Field endX.

startY

final int startY

Field startY.

endY

final int endY

Field endY.

startZ

final int startZ

Field startZ.

endZ

final int endZ

Field endZ.

hasUvSampling

final boolean hasUvSampling

Field hasUvSampling.

px

final float px

Field px.

py

final float py

Field py.

pz

final float pz

Field pz.

bary

final float[] bary

Field bary.

u

final float u

Field u.

sampledId

final int sampledId

Field sampledId.

e1

final float[] e1

Field e1.

e2

final float[] e2

Field e2.

nx

final float nx

Field nx.

ny

final float ny

Field ny.

nz

final float nz

Field nz.

ax

final float ax

Field ax.

ay

final float ay

Field ay.

az

final float az

Field az.

denom

final float denom

Field denom.

w0

final float w0

Field w0.

w2

final float w2

Field w2.

w3

final float w3

Field w3.

e1x

final float e1x

Field e1x.

e1y

final float e1y

Field e1y.

e1z

final float e1z

Field e1z.

e2x

final float e2x

Field e2x.

e2y

final float e2y

Field e2y.

e2z

final float e2z

Field e2z.

lenSq

final float lenSq

Field lenSq.

dpx

final float dpx

Field dpx.

dpy

final float dpy

Field dpy.

dpz

final float dpz

Field dpz.

dotNP

final float dotNP

Field dotNP.

dist

final float dist

Field dist.

projX

final float projX

Field projX.

projY

final float projY

Field projY.

projZ

final float projZ

Field projZ.

vax

final float vax

Field vax.

vay

final float vay

Field vay.

vaz

final float vaz

Field vaz.

vbx

final float vbx

Field vbx.

vby

final float vby

Field vby.

vbz

final float vbz

Field vbz.

vpx

final float vpx

Field vpx.

vpy

final float vpy

Field vpy.

vpz

final float vpz

Field vpz.

d00

final float d00

Field d00.

d2

final float d2

Field d2.

d3

final float d3

Field d3.

d4

final float d4

Field d4.

d5

final float d5

Field d5.

plane

final int plane

Field plane.

total

final int total

Field total.

visited

final boolean[] visited

Field visited.

queue

final int[] queue

Field queue.

idx

final int idx

Field idx.

ex

final int ex

Field ex.

ey

final int ey

Field ey.

ez

final int ez

Field ez.

eIdx

final int eIdx

Field eIdx.

outX

final int outX

Field outX.

outY

final int outY

Field outY.

outZ

final int outZ

Field outZ.

out

final boolean[][][] out

Field out.

outBlockIds

final int[][][] outBlockIds

Field outBlockIds.

bestId

final int bestId

Field bestId.

Method Detail

MeshVoxelizer

public private MeshVoxelizer ()

Method MeshVoxelizer.

voxelize

static VoxelResult voxelize (@Nonnull final ObjParser.ObjMesh mesh, final int targetHeight, final boolean fillSolid)

Method voxelize.

Parameters:
@Nonnull final ObjParser.ObjMesh mesh
final int targetHeight
final boolean fillSolid

resolveIndex

static int resolveIndex (final int index, final int count)

Method resolveIndex.

Parameters:
final int index
final int count

rasterizeSurface

static void rasterizeSurface (final boolean[][][] voxels, @Nullable final int[][][] blockIds, final float[][] vertices, final ObjParser.ObjMesh mesh, @Nullable final Map materialTextures, @Nullable final Map materialToBlockId, @Nullable final BlockColorIndex colorIndex, final int defaultBlockId, final int sizeX, final int sizeY, final int sizeZ)

Method rasterizeSurface.

Parameters:
final boolean[][][] voxels
@Nullable final int[][][] blockIds
final float[][] vertices
final ObjParser.ObjMesh mesh
@Nullable final Map materialTextures
@Nullable final Map materialToBlockId
@Nullable final BlockColorIndex colorIndex
final int defaultBlockId
final int sizeX
final int sizeY
final int sizeZ

rasterizeLine

static void rasterizeLine (final boolean[][][] voxels, @Nullable final int[][][] blockIds, final float[] a, final float[] b, @Nullable final float[] uvA, @Nullable final float[] uvB, @Nullable final BufferedImage texture, @Nullable final BlockColorIndex colorIndex, final int fallbackBlockId, final int sizeX, final int sizeY, final int sizeZ)

Method rasterizeLine.

Parameters:
final boolean[][][] voxels
@Nullable final int[][][] blockIds
final float[] a
final float[] b
@Nullable final float[] uvA
@Nullable final float[] uvB
@Nullable final BufferedImage texture
@Nullable final BlockColorIndex colorIndex
final int fallbackBlockId
final int sizeX
final int sizeY
final int sizeZ

interpolateUv

static float[] interpolateUv (@Nullable final float[] uvA, @Nullable final float[] uvB, final float t)

Method interpolateUv.

Parameters:
@Nullable final float[] uvA
@Nullable final float[] uvB
final float t

sampleBlockId

static int sampleBlockId (@Nullable final float[] uv, @Nullable final BufferedImage texture, @Nullable final BlockColorIndex colorIndex, final int fallbackBlockId)

Method sampleBlockId.

Parameters:
@Nullable final float[] uv
@Nullable final BufferedImage texture
@Nullable final BlockColorIndex colorIndex
final int fallbackBlockId

setVoxel

static void setVoxel (final boolean[][][] voxels, @Nullable final int[][][] blockIds, final int x, final int y, final int z, final int blockId, final int sizeX, final int sizeY, final int sizeZ)

Method setVoxel.

Parameters:
final boolean[][][] voxels
@Nullable final int[][][] blockIds
final int x
final int y
final int z
final int blockId
final int sizeX
final int sizeY
final int sizeZ

rasterizeTriangle

static void rasterizeTriangle (final boolean[][][] voxels, @Nullable final int[][][] blockIds, final float[] v0, final float[] v1, final float[] v2, @Nullable final float[] uv0, @Nullable final float[] uv1, @Nullable final float[] uv2, @Nullable final BufferedImage texture, @Nullable final BlockColorIndex colorIndex, final int fallbackBlockId, final int sizeX, final int sizeY, final int sizeZ)

Method rasterizeTriangle.

Parameters:
final boolean[][][] voxels
@Nullable final int[][][] blockIds
final float[] v0
final float[] v1
final float[] v2
@Nullable final float[] uv0
@Nullable final float[] uv1
@Nullable final float[] uv2
@Nullable final BufferedImage texture
@Nullable final BlockColorIndex colorIndex
final int fallbackBlockId
final int sizeX
final int sizeY
final int sizeZ

barycentric

static float[] barycentric (final float px, final float py, final float pz, final float[] v0, final float[] v1, final float[] v2)

Method barycentric.

Parameters:
final float px
final float py
final float pz
final float[] v0
final float[] v1
final float[] v2

if

public else if (ay >= ax && ay >= az)

Method if.

Parameters:
ay >= ax && ay >= az

pointNearTriangle

static boolean pointNearTriangle (final float px, final float py, final float pz, final float[] v0, final float[] v1, final float[] v2, final float threshold)

Method pointNearTriangle.

Parameters:
final float px
final float py
final float pz
final float[] v0
final float[] v1
final float[] v2
final float threshold

floodFillSolid

static boolean[][][] floodFillSolid (final boolean[][][] shell, final int sizeX, final int sizeY, final int sizeZ)

Method floodFillSolid.

Parameters:
final boolean[][][] shell
final int sizeX
final int sizeY
final int sizeZ

tryEnqueue

static boolean tryEnqueue (final boolean[][][] shell, final int sizeX, final int sizeY, final int sizeZ, final boolean[] visited, final int[] queue, final int ex, final int ey, final int ez, final int dx, final int plane, final int writeIndex)

Method tryEnqueue.

Parameters:
final boolean[][][] shell
final int sizeX
final int sizeY
final int sizeZ
final boolean[] visited
final int[] queue
final int ex
final int ey
final int ez
final int dx
final int plane
final int writeIndex

fillInteriorBlockIds

static void fillInteriorBlockIds (final boolean[][][] solid, final boolean[][][] shell, final int[][][] blockIds, final int defaultBlockId, final int sizeX, final int sizeY, final int sizeZ)

Method fillInteriorBlockIds.

Parameters:
final boolean[][][] solid
final boolean[][][] shell
final int[][][] blockIds
final int defaultBlockId
final int sizeX
final int sizeY
final int sizeZ

findNearestSurfaceBlockId

static int findNearestSurfaceBlockId (final int[][][] blockIds, final boolean[][][] shell, final int cx, final int cy, final int cz, final int sizeX, final int sizeY, final int sizeZ)

Method findNearestSurfaceBlockId.

Parameters:
final int[][][] blockIds
final boolean[][][] shell
final int cx
final int cy
final int cz
final int sizeX
final int sizeY
final int sizeZ

countSolid

public int countSolid ()

Method countSolid.

getBlockId

public int getBlockId (final int x, final int y, final int z)

Method getBlockId.

Parameters:
final int x
final int y
final int z

blockIds

public int[][][] blockIds ()

Method blockIds.