private CombinedTerrainObject3D createStepsGroundProfile() { CombinedTerrainObject3D combinedTerrainObject = new CombinedTerrainObject3D("stairs"); AppearanceDefinition color = YoAppearance.DarkGray(); double courseAngle = 135; int numberOfSteps = 3; double rise = 0.2; double startDistance = 4.0; double run = 0.4; for (int i = 0; i < numberOfSteps; i++) { double[] newPoint = rotateAroundOrigin(new double[] {startDistance + (i * run), 0}, courseAngle); setUpWall(combinedTerrainObject, newPoint, 3.0, run, rise * (i + 1), courseAngle, color); } { double[] newPoint = rotateAroundOrigin(new double[] {startDistance + (numberOfSteps * run), 0}, courseAngle); setUpWall(combinedTerrainObject, newPoint, 3.0, run, rise * (numberOfSteps - 1 + 1), courseAngle, color); } for (int i = 1; i < numberOfSteps + 1; i++) { double offset = numberOfSteps * run; double[] newPoint = rotateAroundOrigin(new double[] {offset + startDistance + (i * run), 0}, courseAngle); setUpWall(combinedTerrainObject, newPoint, 3.0, run, rise * (-i + numberOfSteps + 1), courseAngle, color); } return combinedTerrainObject; }