xxxxxxxxxx
121
let landscape;
const LANDSCAPE_SIZE = 800;
const BRUSH_SIZE = 30;
let zoomFactor = 500;
const noiseOffset = 100;
let brushStrength = 0.03;
const rotateScale = 0.0001;
const MAX_HEIGHTSCALE = 500.0;
const MIN_HEIGHTSCALE = 2;
const TRANSITION_SPEED = 20;
const InitDist = 1500;
const MIN_HEIGHT = 0.1;
//colors in hex format
const seaBedColor = "#0a3c3d";
const waterColor = "#1098A688";
const waterColorSolid = "#4c989b";
const sandColor = "#ffbb6a";
const landColor = "#85cf65";
const mountainBaseColor = "#271a13";
const mountainColor = "#1d0d07";
const snowColor = "#ffffff";
let seaBedLevel = 0.2;
let waterLevel = 0.4;
let sandLevel = 0.5;
let landLevel = 0.7;
let mountainLevel = 1.0;
let snowLevel = 1.0;
let heightScale;
let dimension = 2;
let cam, canvas;
let resetFromDimensionThree = false;
let timeEvolution = true;
let timeStep = 5.0;
//declareing sliders
let waterSlider, zoomFactorSlider, brushStrengthSlider, brushSizeSlider;
function setup() {
//storing the canvas in a variable so we can reset the sketch with the r key
createCanvas(600, 600,WEBGL);
rectMode(CENTER);
resetSketch();
slider1 = select('#waterlevel')
// zoomFactor = select('#zoomfactor');
// waterLevelSlider = createSlider(0, sandLevel * 100, 40);
// zoomFactorSlider = createSlider(300, int(2 * MAX_HEIGHTSCALE), zoomFactor);
// brushStrengthSlider = createSlider(1, 1000, brushStrength * 100);
// let button = createButton("Change to 2d");
// button.mousePressed(dimensionTransition);
}
function draw() {
// waterLevel = waterLevelSlider.value() / 100;
// zoomFactor = zoomFactorSlider.value();
// brushStrength = brushStrengthSlider.value() / 100;
background(waterColorSolid);
waterLevel = slider1.value() / 100;
print(waterLevel)
translate(-width / 2, -height / 2, 0);
//create lighting
if (
resetFromDimensionThree &&
heightScale <= MIN_HEIGHTSCALE &&
dimension == 2
) {
ambientLight(180, 180, 180);
pointLight(150, 150, 150, 300, 300, MAX_HEIGHTSCALE * 3);
} else {
ambientLight(100, 100, 100);
pointLight(150, 150, 150, 300, 300, MAX_HEIGHTSCALE * 3);
}
landscape.render(timeStep);
handleMouseBrush();
heightTransition();
if (dimension == 2) renderBrush();
}
function keyPressed() {
if (key == "d") {
dimensionTransition();
}
if (key == "r") {
if (dimension == 2) {
resetFromDimensionThree = false;
cam.setRotation(Dw.Rotation.create({ angles_xyz: [0, 0, 0] }), 500);
} else {
resetFromDimensionThree = true;
cam.setRotation(
Dw.Rotation.create({
angles_xyz: [-PI / 6, -atan(1 / sqrt(2)), PI / 4],
}),
500
);
}
resetSketch();
}
if (key == "t") {
timeEvolution = !timeEvolution;
}
}