classpublicPriority 3
FloatContainer3d
com.hypixel.hytale.builtin.hytalegenerator.newsystem.containers.FloatContainer3d
4
Methods
4
Public Methods
4
Fields
1
Constructors
Constructors
public
FloatContainer3d(Bounds3i bounds_voxelGrid, float outOfBoundsValue)Methods
Public Methods (4)
public
float get(Vector3i position_voxelGrid)public
Bounds3i getBounds_voxelGrid()@Nonnull
public
void moveMinTo(Vector3i min_voxelGrid)public
void set(Vector3i position_voxelGrid, float value)Fields
Private/Package Fields (4)
private
Bounds3i bounds_voxelGridprivate
float[] dataprivate
float outOfBoundsValueprivate
Vector3i size_voxelGridRelated Classes
Source Code
package com.hypixel.hytale.builtin.hytalegenerator.newsystem.containers;
import com.hypixel.hytale.builtin.hytalegenerator.bounds.Bounds3i;
import com.hypixel.hytale.builtin.hytalegenerator.newsystem.GridUtils;
import com.hypixel.hytale.math.vector.Vector3i;
import javax.annotation.Nonnull;
public class FloatContainer3d {
private final Bounds3i bounds_voxelGrid;
private final Vector3i size_voxelGrid;
private final float[] data;
private final float outOfBoundsValue;
public FloatContainer3d(@Nonnull Bounds3i bounds_voxelGrid, float outOfBoundsValue) {
this.bounds_voxelGrid = bounds_voxelGrid.clone();
this.size_voxelGrid = bounds_voxelGrid.getSize();
this.data = new float[this.size_voxelGrid.x * this.size_voxelGrid.y * this.size_voxelGrid.z];
this.outOfBoundsValue = outOfBoundsValue;
}
public float get(@Nonnull Vector3i position_voxelGrid) {
if (!this.bounds_voxelGrid.contains(position_voxelGrid)) {
return this.outOfBoundsValue;
} else {
int index = GridUtils.toIndexFromPositionYXZ(position_voxelGrid, this.bounds_voxelGrid);
return this.data[index];
}
}
@Nonnull
public Bounds3i getBounds_voxelGrid() {
return this.bounds_voxelGrid;
}
public void set(@Nonnull Vector3i position_voxelGrid, float value) {
assert this.bounds_voxelGrid.contains(position_voxelGrid);
int index = GridUtils.toIndexFromPositionYXZ(position_voxelGrid, this.bounds_voxelGrid);
this.data[index] = value;
}
public void moveMinTo(@Nonnull Vector3i min_voxelGrid) {
Vector3i oldMin_voxelGrid = this.bounds_voxelGrid.min.clone().scale(-1);
this.bounds_voxelGrid.offset(oldMin_voxelGrid);
this.bounds_voxelGrid.offset(min_voxelGrid);
}
}