// 
// Decompiled by Procyon v0.6.0
// 

package com.hypixel.hytale.server.worldgen.cave.shape;

import java.util.Random;
import com.hypixel.hytale.server.worldgen.cave.element.CaveNode;
import com.hypixel.hytale.server.worldgen.cave.Cave;
import com.hypixel.hytale.server.worldgen.chunk.ChunkGeneratorExecution;
import com.hypixel.hytale.server.worldgen.util.bounds.IWorldBounds;
import com.hypixel.hytale.math.vector.Vector3d;

public interface CaveNodeShape
{
    Vector3d getStart();
    
    Vector3d getEnd();
    
    Vector3d getAnchor(final Vector3d p0, final double p1, final double p2, final double p3);
    
    IWorldBounds getBounds();
    
    boolean shouldReplace(final int p0, final double p1, final double p2, final int p3);
    
    double getFloorPosition(final int p0, final double p1, final double p2);
    
    double getCeilingPosition(final int p0, final double p1, final double p2);
    
    void populateChunk(final int p0, final ChunkGeneratorExecution p1, final Cave p2, final CaveNode p3, final Random p4);
    
    default boolean hasGeometry() {
        return true;
    }
}
