mirror of
https://github.com/michaelrausch/Party-Parrots-At-Sea.git
synced 2026-05-09 06:18:44 +00:00
Added assets for the border and for gates. Drew them in correct locations.
#implement
This commit is contained in:
@@ -9,15 +9,12 @@ import javafx.animation.AnimationTimer;
|
|||||||
import javafx.application.Platform;
|
import javafx.application.Platform;
|
||||||
import javafx.geometry.Point2D;
|
import javafx.geometry.Point2D;
|
||||||
import javafx.geometry.Point3D;
|
import javafx.geometry.Point3D;
|
||||||
import javafx.scene.Group;
|
import javafx.scene.*;
|
||||||
import javafx.scene.Node;
|
|
||||||
import javafx.scene.ParallelCamera;
|
|
||||||
import javafx.scene.SceneAntialiasing;
|
|
||||||
import javafx.scene.SubScene;
|
|
||||||
import javafx.scene.image.ImageView;
|
import javafx.scene.image.ImageView;
|
||||||
import javafx.scene.input.KeyEvent;
|
import javafx.scene.input.KeyEvent;
|
||||||
import javafx.scene.paint.Color;
|
import javafx.scene.paint.Color;
|
||||||
import javafx.scene.paint.Paint;
|
import javafx.scene.paint.Paint;
|
||||||
|
import javafx.scene.shape.Circle;
|
||||||
import javafx.scene.shape.Polygon;
|
import javafx.scene.shape.Polygon;
|
||||||
import javafx.scene.text.Text;
|
import javafx.scene.text.Text;
|
||||||
import javafx.scene.transform.Rotate;
|
import javafx.scene.transform.Rotate;
|
||||||
@@ -31,10 +28,7 @@ import seng302.model.mark.CompoundMark;
|
|||||||
import seng302.model.mark.Corner;
|
import seng302.model.mark.Corner;
|
||||||
import seng302.model.mark.Mark;
|
import seng302.model.mark.Mark;
|
||||||
import seng302.utilities.GeoUtility;
|
import seng302.utilities.GeoUtility;
|
||||||
import seng302.visualiser.fxObjects.assets_2D.AnnotationBox;
|
import seng302.visualiser.fxObjects.assets_2D.*;
|
||||||
import seng302.visualiser.fxObjects.assets_2D.BoatObject;
|
|
||||||
import seng302.visualiser.fxObjects.assets_2D.CourseBoundary;
|
|
||||||
import seng302.visualiser.fxObjects.assets_2D.Gate;
|
|
||||||
import seng302.visualiser.fxObjects.assets_3D.ModelFactory;
|
import seng302.visualiser.fxObjects.assets_3D.ModelFactory;
|
||||||
import seng302.visualiser.fxObjects.assets_3D.ModelType;
|
import seng302.visualiser.fxObjects.assets_3D.ModelType;
|
||||||
|
|
||||||
@@ -47,10 +41,11 @@ public class GameView3D {
|
|||||||
private final double FOV = 60;
|
private final double FOV = 60;
|
||||||
private final double DEFAULT_CAMERA_DEPTH = 100;
|
private final double DEFAULT_CAMERA_DEPTH = 100;
|
||||||
|
|
||||||
Group root3D;
|
private Group root3D;
|
||||||
SubScene view;
|
private SubScene view;
|
||||||
ParallelCamera camera;
|
// ParallelCamera camera;
|
||||||
Group gameObjects;
|
private PerspectiveCamera camera;
|
||||||
|
private Group gameObjects;
|
||||||
|
|
||||||
private double bufferSize = 0;
|
private double bufferSize = 0;
|
||||||
private double canvasWidth = 200;
|
private double canvasWidth = 200;
|
||||||
@@ -69,7 +64,7 @@ public class GameView3D {
|
|||||||
final double SCALE_DELTA = 1.1;
|
final double SCALE_DELTA = 1.1;
|
||||||
|
|
||||||
private Text fpsDisplay = new Text();
|
private Text fpsDisplay = new Text();
|
||||||
private Polygon raceBorder = new CourseBoundary();
|
private Group raceBorder = new Group();
|
||||||
|
|
||||||
/* Note that if either of these is null then values for it have not been added and the other
|
/* Note that if either of these is null then values for it have not been added and the other
|
||||||
should be used as the limits of the map. */
|
should be used as the limits of the map. */
|
||||||
@@ -112,16 +107,18 @@ public class GameView3D {
|
|||||||
|
|
||||||
|
|
||||||
public GameView3D () {
|
public GameView3D () {
|
||||||
// camera = new PerspectiveCamera(true);
|
camera = new PerspectiveCamera(true);
|
||||||
camera = new ParallelCamera();
|
// camera = new ParallelCamera();
|
||||||
|
// gameObjects.getTransforms().add(new Scale(4,4,4));
|
||||||
|
// camera.setLayoutX(camera.getLayoutX()-400);
|
||||||
|
// camera.setLayoutY(camera.getLayoutY()-400);
|
||||||
camera.getTransforms().addAll(
|
camera.getTransforms().addAll(
|
||||||
new Translate(0,0, -DEFAULT_CAMERA_DEPTH)
|
new Translate(0,0, -DEFAULT_CAMERA_DEPTH)
|
||||||
);
|
);
|
||||||
camera.setFarClip(Double.MAX_VALUE);
|
camera.setFarClip(Double.MAX_VALUE);
|
||||||
camera.setNearClip(0.1);
|
camera.setNearClip(0.1);
|
||||||
// camera.setFieldOfView(FOV);
|
camera.setFieldOfView(FOV);
|
||||||
gameObjects = new Group();
|
gameObjects = new Group();
|
||||||
gameObjects.getTransforms().add(new Scale(4,4,4));
|
|
||||||
root3D = new Group(camera, gameObjects);
|
root3D = new Group(camera, gameObjects);
|
||||||
view = new SubScene(
|
view = new SubScene(
|
||||||
root3D, 1000, 1000, true, SceneAntialiasing.BALANCED
|
root3D, 1000, 1000, true, SceneAntialiasing.BALANCED
|
||||||
@@ -129,11 +126,11 @@ public class GameView3D {
|
|||||||
view.setCamera(camera);
|
view.setCamera(camera);
|
||||||
view.setFill(Color.SKYBLUE);
|
view.setFill(Color.SKYBLUE);
|
||||||
camera.getTransforms().add(new Rotate(30, new Point3D(1,0,0)));
|
camera.getTransforms().add(new Rotate(30, new Point3D(1,0,0)));
|
||||||
camera.setLayoutX(camera.getLayoutX()-400);
|
|
||||||
camera.setLayoutY(camera.getLayoutX()-600);
|
|
||||||
// gameObjects.getChildren().addAll(raceBorder, markers, tokens);
|
// gameObjects.getChildren().addAll(raceBorder, markers, tokens);
|
||||||
|
|
||||||
gameObjects.getChildren().addAll(
|
gameObjects.getChildren().addAll(
|
||||||
ModelFactory.importModel(ModelType.OCEAN).getAssets(), markers
|
ModelFactory.importModel(ModelType.OCEAN).getAssets(),
|
||||||
|
raceBorder, markers
|
||||||
);
|
);
|
||||||
|
|
||||||
// Sphere s = new Sphere(1);
|
// Sphere s = new Sphere(1);
|
||||||
@@ -203,33 +200,33 @@ public class GameView3D {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
final List<Gate> gates = new ArrayList<>();
|
final List<Group> gates = new ArrayList<>();
|
||||||
Paint colour = Color.BLACK;
|
|
||||||
//Creates new markers
|
//Creates new markers
|
||||||
for (CompoundMark cMark : newCourse) {
|
for (CompoundMark cMark : newCourse) {
|
||||||
//Set start and end colour
|
|
||||||
// if (cMark.getId() == sequence.get(0).getCompoundMarkID()) {
|
|
||||||
// colour = Color.GREEN;
|
|
||||||
// } else if (cMark.getId() == sequence.get(sequence.size() - 1).getCompoundMarkID()) {
|
|
||||||
// colour = Color.RED;
|
|
||||||
// }
|
|
||||||
//Create mark dots
|
|
||||||
for (Mark mark : cMark.getMarks()) {
|
for (Mark mark : cMark.getMarks()) {
|
||||||
makeAndBindMarker(mark);
|
if (cMark.getId() == sequence.get(0).getCompoundMarkID()) {
|
||||||
|
makeAndBindMarker(mark, ModelType.START_MARKER);
|
||||||
|
} else if (cMark.getId() == sequence.get(sequence.size() - 1).getCompoundMarkID()) {
|
||||||
|
makeAndBindMarker(mark, ModelType.FINISH_MARKER);
|
||||||
|
} else {
|
||||||
|
makeAndBindMarker(mark, ModelType.PLAIN_MARKER);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
//Create gate line
|
||||||
|
if (cMark.isGate()) {
|
||||||
|
ModelType gateType;
|
||||||
|
if (cMark.getId() == sequence.get(0).getCompoundMarkID()) {
|
||||||
|
gateType = ModelType.START_LINE;
|
||||||
|
} else if (cMark.getId() == sequence.get(sequence.size() - 1).getCompoundMarkID()) {
|
||||||
|
gateType = ModelType.FINISH_LINE;
|
||||||
|
} else {
|
||||||
|
gateType = ModelType.GATE_LINE;
|
||||||
|
}
|
||||||
|
gates.add(makeAndBindGate(
|
||||||
|
cMark.getSubMark(1), cMark.getSubMark(2), gateType
|
||||||
|
));
|
||||||
}
|
}
|
||||||
// //Create gate line
|
|
||||||
// if (cMark.isGate()) {
|
|
||||||
// for (int i = 1; i < cMark.getMarks().size(); i++) {
|
|
||||||
// gates.add(
|
|
||||||
// makeAndBindGate(
|
|
||||||
// markerObjects.get(cMark.getSubMark(i)),
|
|
||||||
// markerObjects.get(cMark.getSubMark(i + 1)),
|
|
||||||
// colour
|
|
||||||
// )
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// colour = Color.BLACK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//Scale race to markers if there is no border.
|
//Scale race to markers if there is no border.
|
||||||
@@ -254,10 +251,11 @@ public class GameView3D {
|
|||||||
* Creates a new Marker and binds it's position to the given Mark.
|
* Creates a new Marker and binds it's position to the given Mark.
|
||||||
*
|
*
|
||||||
* @param observableMark The mark to bind the marker to.
|
* @param observableMark The mark to bind the marker to.
|
||||||
|
* @param markerType the type of marker as a ModelType. Should be PLAIN_MARKER, START_MARKER or END_MARKER
|
||||||
*/
|
*/
|
||||||
private void makeAndBindMarker(Mark observableMark) {
|
private void makeAndBindMarker(Mark observableMark, ModelType markerType) {
|
||||||
|
|
||||||
Group marker = ModelFactory.importModel(ModelType.PLAIN_MARKER).getAssets();
|
Group marker = ModelFactory.importModel(markerType).getAssets();
|
||||||
|
|
||||||
markerObjects.put(observableMark, marker);
|
markerObjects.put(observableMark, marker);
|
||||||
observableMark.addPositionListener((mark, lat, lon) -> {
|
observableMark.addPositionListener((mark, lat, lon) -> {
|
||||||
@@ -267,6 +265,35 @@ public class GameView3D {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a new gate connecting the given marks.
|
||||||
|
*
|
||||||
|
* @param m1 The first Mark of the gate.
|
||||||
|
* @param m2 The second Mark of the gate.
|
||||||
|
* @param gateType The type of model for the gate.
|
||||||
|
* @return the new gate.
|
||||||
|
*/
|
||||||
|
private Group makeAndBindGate(Mark m1, Mark m2, ModelType gateType) {
|
||||||
|
Point2D m1Location = findScaledXY(m1);
|
||||||
|
Point2D m2Location = findScaledXY(m2);
|
||||||
|
|
||||||
|
Group barrier = ModelFactory.importModel(gateType).getAssets();
|
||||||
|
barrier.getTransforms().addAll(
|
||||||
|
new Rotate(
|
||||||
|
Math.toDegrees(
|
||||||
|
Math.atan2(m2Location.getY() - m1Location.getY(), m2Location.getX() - m1Location.getX())
|
||||||
|
) + 90,
|
||||||
|
new Point3D(0,1,0)
|
||||||
|
),
|
||||||
|
new Scale(1, 1, m1Location.distance(m2Location) / 10)
|
||||||
|
);
|
||||||
|
|
||||||
|
Point2D midPoint = m2Location.midpoint(m1Location);
|
||||||
|
barrier.setLayoutX(midPoint.getX());
|
||||||
|
barrier.setLayoutY(midPoint.getY());
|
||||||
|
return barrier;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sets the class variables minLatPoint, maxLatPoint, minLonPoint, maxLonPoint to the point with
|
* Sets the class variables minLatPoint, maxLatPoint, minLonPoint, maxLonPoint to the point with
|
||||||
@@ -417,16 +444,16 @@ public class GameView3D {
|
|||||||
|
|
||||||
public void cameraMovement(KeyEvent event) {
|
public void cameraMovement(KeyEvent event) {
|
||||||
switch (event.getCode()) {
|
switch (event.getCode()) {
|
||||||
case UP:
|
case NUMPAD8:
|
||||||
camera.getTransforms().addAll(new Rotate(0.5, new Point3D(1,0,0)));
|
camera.getTransforms().addAll(new Rotate(0.5, new Point3D(1,0,0)));
|
||||||
break;
|
break;
|
||||||
case DOWN:
|
case NUMPAD2:
|
||||||
camera.getTransforms().addAll(new Rotate(-0.5, new Point3D(1,0,0)));
|
camera.getTransforms().addAll(new Rotate(-0.5, new Point3D(1,0,0)));
|
||||||
break;
|
break;
|
||||||
case LEFT:
|
case NUMPAD4:
|
||||||
camera.getTransforms().addAll(new Rotate(-0.5, new Point3D(0,1,0)));
|
camera.getTransforms().addAll(new Rotate(-0.5, new Point3D(0,1,0)));
|
||||||
break;
|
break;
|
||||||
case RIGHT:
|
case NUMPAD6:
|
||||||
camera.getTransforms().addAll(new Rotate(0.5, new Point3D(0,1,0)));
|
camera.getTransforms().addAll(new Rotate(0.5, new Point3D(0,1,0)));
|
||||||
break;
|
break;
|
||||||
case X:
|
case X:
|
||||||
@@ -436,10 +463,10 @@ public class GameView3D {
|
|||||||
camera.getTransforms().addAll(new Translate(0, 0, -1.5));
|
camera.getTransforms().addAll(new Translate(0, 0, -1.5));
|
||||||
break;
|
break;
|
||||||
case W:
|
case W:
|
||||||
camera.getTransforms().addAll(new Translate(0, 1, 0));
|
camera.getTransforms().addAll(new Translate(0, -1, 0));
|
||||||
break;
|
break;
|
||||||
case S:
|
case S:
|
||||||
camera.getTransforms().addAll(new Translate(0, -1, 0));
|
camera.getTransforms().addAll(new Translate(0, 1, 0));
|
||||||
break;
|
break;
|
||||||
case A:
|
case A:
|
||||||
camera.getTransforms().addAll(new Translate(-1, 0, 0));
|
camera.getTransforms().addAll(new Translate(-1, 0, 0));
|
||||||
@@ -507,4 +534,70 @@ public class GameView3D {
|
|||||||
public Node getAssets () {
|
public Node getAssets () {
|
||||||
return view;
|
return view;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a border to the GameView and rescales to the size of the border, does not rescale if a
|
||||||
|
* border already exists. Assumes the border is larger than the course.
|
||||||
|
*
|
||||||
|
* @param border the race border to be drawn.
|
||||||
|
*/
|
||||||
|
public void updateBorder(List<Limit> border) {
|
||||||
|
if (borderPoints == null) {
|
||||||
|
borderPoints = border;
|
||||||
|
rescaleRace(new ArrayList<>(borderPoints));
|
||||||
|
}
|
||||||
|
List<Node> boundaryAssets = new ArrayList<>();
|
||||||
|
|
||||||
|
Point2D lastLocation = findScaledXY(border.get(0).getLat(), border.get(0).getLng());
|
||||||
|
Group pylon = ModelFactory.importModel(ModelType.BORDER_PYLON).getAssets();
|
||||||
|
pylon.setLayoutX(lastLocation.getX());
|
||||||
|
pylon.setLayoutY(lastLocation.getY());
|
||||||
|
boundaryAssets.add(pylon);
|
||||||
|
|
||||||
|
for (int i=1; i<border.size(); i++) {
|
||||||
|
Point2D location = findScaledXY(border.get(i).getLat(), border.get(i).getLng());
|
||||||
|
pylon = ModelFactory.importModel(ModelType.BORDER_PYLON).getAssets();
|
||||||
|
pylon.setLayoutX(location.getX());
|
||||||
|
pylon.setLayoutY(location.getY());
|
||||||
|
|
||||||
|
Group barrier = ModelFactory.importModel(ModelType.BORDER_BARRIER).getAssets();
|
||||||
|
barrier.getTransforms().addAll(
|
||||||
|
new Rotate(
|
||||||
|
Math.toDegrees(
|
||||||
|
Math.atan2(location.getY() - lastLocation.getY(), location.getX() - lastLocation.getX())
|
||||||
|
),
|
||||||
|
new Point3D(0,1,0)
|
||||||
|
),
|
||||||
|
new Scale((lastLocation.distance(location) / 15)-0.2, 1, 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
Point2D midPoint = location.midpoint(lastLocation);
|
||||||
|
barrier.setLayoutX(midPoint.getX());
|
||||||
|
barrier.setLayoutY(midPoint.getY());
|
||||||
|
|
||||||
|
lastLocation = location;
|
||||||
|
|
||||||
|
boundaryAssets.add(barrier);
|
||||||
|
boundaryAssets.add(pylon);
|
||||||
|
}
|
||||||
|
|
||||||
|
Point2D firstLocation = findScaledXY(border.get(0).getLat(), border.get(0).getLng());
|
||||||
|
Group barrier = ModelFactory.importModel(ModelType.BORDER_BARRIER).getAssets();
|
||||||
|
barrier.getTransforms().addAll(
|
||||||
|
new Rotate(
|
||||||
|
Math.toDegrees(
|
||||||
|
Math.atan2(lastLocation.getY() - firstLocation.getY(), lastLocation.getX() - firstLocation.getX())
|
||||||
|
),
|
||||||
|
new Point3D(0,1,0)
|
||||||
|
),
|
||||||
|
new Scale((firstLocation.distance(lastLocation) / 15)-0.2, 1, 1)
|
||||||
|
);
|
||||||
|
|
||||||
|
Point2D midPoint = lastLocation.midpoint(firstLocation);
|
||||||
|
barrier.setLayoutX(midPoint.getX());
|
||||||
|
barrier.setLayoutY(midPoint.getY());
|
||||||
|
boundaryAssets.add(barrier);
|
||||||
|
|
||||||
|
Platform.runLater(() -> raceBorder.getChildren().setAll(boundaryAssets));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -112,6 +112,7 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel
|
|||||||
windArrowHolder.getChildren().addAll(windArrow);
|
windArrowHolder.getChildren().addAll(windArrow);
|
||||||
windArrow.setLayoutX(windArrowHolder.getWidth() / 2);
|
windArrow.setLayoutX(windArrowHolder.getWidth() / 2);
|
||||||
windArrow.setLayoutY(windArrowHolder.getHeight() / 2);
|
windArrow.setLayoutY(windArrowHolder.getHeight() / 2);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void loadRace (
|
public void loadRace (
|
||||||
@@ -143,7 +144,7 @@ public class RaceViewController extends Thread implements ImportantAnnotationDel
|
|||||||
// gameView.setFrameRateFXText(fpsDisplay);
|
// gameView.setFrameRateFXText(fpsDisplay);
|
||||||
Platform.runLater(() -> contentAnchorPane.getChildren().add(0, gameView.getAssets()));
|
Platform.runLater(() -> contentAnchorPane.getChildren().add(0, gameView.getAssets()));
|
||||||
gameView.setBoats(new ArrayList<>(participants.values()));
|
gameView.setBoats(new ArrayList<>(participants.values()));
|
||||||
// gameView.updateBorder(raceData.getCourseLimit());
|
gameView.updateBorder(raceData.getCourseLimit());
|
||||||
// gameView.updateTokens(raceData.getTokens());
|
// gameView.updateTokens(raceData.getTokens());
|
||||||
gameView.updateCourse(
|
gameView.updateCourse(
|
||||||
new ArrayList<>(raceData.getCompoundMarks().values()), raceData.getMarkSequence()
|
new ArrayList<>(raceData.getCompoundMarks().values()), raceData.getMarkSequence()
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import javafx.scene.shape.Circle;
|
|||||||
import javafx.scene.shape.MeshView;
|
import javafx.scene.shape.MeshView;
|
||||||
import javafx.scene.transform.Rotate;
|
import javafx.scene.transform.Rotate;
|
||||||
import javafx.scene.transform.Scale;
|
import javafx.scene.transform.Scale;
|
||||||
|
import javafx.scene.transform.Translate;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Factory class for creating 3D models of boats.
|
* Factory class for creating 3D models of boats.
|
||||||
@@ -55,7 +56,7 @@ public class ModelFactory {
|
|||||||
Group boatAssets = getUnmodifiedBoatModel(boatType, primaryColour);
|
Group boatAssets = getUnmodifiedBoatModel(boatType, primaryColour);
|
||||||
boatAssets.getTransforms().setAll(
|
boatAssets.getTransforms().setAll(
|
||||||
new Rotate(-90, new Point3D(0,0,1)),
|
new Rotate(-90, new Point3D(0,0,1)),
|
||||||
new Scale(0.2, 0.2, 0.2)
|
new Scale(0.05, 0.05, 0.05)
|
||||||
);
|
);
|
||||||
return new BoatModel(boatAssets, null, boatType);
|
return new BoatModel(boatAssets, null, boatType);
|
||||||
}
|
}
|
||||||
@@ -96,6 +97,13 @@ public class ModelFactory {
|
|||||||
return makeMarker(assets);
|
return makeMarker(assets);
|
||||||
case OCEAN:
|
case OCEAN:
|
||||||
return makeOcean(assets);
|
return makeOcean(assets);
|
||||||
|
case BORDER_PYLON:
|
||||||
|
case BORDER_BARRIER:
|
||||||
|
return makeBarrier(assets);
|
||||||
|
case FINISH_LINE:
|
||||||
|
case START_LINE:
|
||||||
|
case GATE_LINE:
|
||||||
|
return makeGate(assets);
|
||||||
default:
|
default:
|
||||||
return new Model(assets, null);
|
return new Model(assets, null);
|
||||||
}
|
}
|
||||||
@@ -138,4 +146,19 @@ public class ModelFactory {
|
|||||||
group.getChildren().add(ocean);
|
group.getChildren().add(ocean);
|
||||||
return new Model(group, null);
|
return new Model(group, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static Model makeBarrier(Group assets) {
|
||||||
|
assets.getTransforms().addAll(
|
||||||
|
new Rotate(90, new Point3D(1,0,0)),
|
||||||
|
new Scale(1.5,1.5,1.5)
|
||||||
|
);
|
||||||
|
return new Model(assets, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Model makeGate(Group assets) {
|
||||||
|
assets.getTransforms().addAll(
|
||||||
|
new Rotate(90, new Point3D(1,0,0))
|
||||||
|
);
|
||||||
|
return new Model(assets, null);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,8 +12,11 @@ public enum ModelType {
|
|||||||
PLAIN_MARKER ("plain_marker.dae"),
|
PLAIN_MARKER ("plain_marker.dae"),
|
||||||
MARK_AREA ("mark_area.dae"),
|
MARK_AREA ("mark_area.dae"),
|
||||||
OCEAN (null),
|
OCEAN (null),
|
||||||
BORDER_PYLON (null),
|
BORDER_PYLON ("barrier_pole.dae"),
|
||||||
BORDER_BARRIER (null);
|
BORDER_BARRIER ("barrier_segment.dae"),
|
||||||
|
FINISH_LINE ("finish_line.dae"),
|
||||||
|
START_LINE ("start_line.dae"),
|
||||||
|
GATE_LINE ("gate_line.dae");
|
||||||
|
|
||||||
final String filename;
|
final String filename;
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,100 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||||
|
<asset>
|
||||||
|
<contributor>
|
||||||
|
<author>Blender User</author>
|
||||||
|
<authoring_tool>Blender 2.78.0 commit date:2017-02-24, commit time:14:33, hash:e92f235283</authoring_tool>
|
||||||
|
</contributor>
|
||||||
|
<created>2017-09-11T02:11:56</created>
|
||||||
|
<modified>2017-09-11T02:11:56</modified>
|
||||||
|
<unit name="meter" meter="1"/>
|
||||||
|
<up_axis>Z_UP</up_axis>
|
||||||
|
</asset>
|
||||||
|
<library_images/>
|
||||||
|
<library_effects>
|
||||||
|
<effect id="Material_001-effect">
|
||||||
|
<profile_COMMON>
|
||||||
|
<technique sid="common">
|
||||||
|
<phong>
|
||||||
|
<emission>
|
||||||
|
<color sid="emission">0 0 0 1</color>
|
||||||
|
</emission>
|
||||||
|
<ambient>
|
||||||
|
<color sid="ambient">0 0 0 1</color>
|
||||||
|
</ambient>
|
||||||
|
<diffuse>
|
||||||
|
<color sid="diffuse">0.64 0 0.01304383 1</color>
|
||||||
|
</diffuse>
|
||||||
|
<specular>
|
||||||
|
<color sid="specular">0.5 0.5 0.5 1</color>
|
||||||
|
</specular>
|
||||||
|
<shininess>
|
||||||
|
<float sid="shininess">50</float>
|
||||||
|
</shininess>
|
||||||
|
<index_of_refraction>
|
||||||
|
<float sid="index_of_refraction">1</float>
|
||||||
|
</index_of_refraction>
|
||||||
|
</phong>
|
||||||
|
</technique>
|
||||||
|
</profile_COMMON>
|
||||||
|
</effect>
|
||||||
|
</library_effects>
|
||||||
|
<library_materials>
|
||||||
|
<material id="Material_001-material" name="Material_001">
|
||||||
|
<instance_effect url="#Material_001-effect"/>
|
||||||
|
</material>
|
||||||
|
</library_materials>
|
||||||
|
<library_geometries>
|
||||||
|
<geometry id="Plane-mesh" name="Plane">
|
||||||
|
<mesh>
|
||||||
|
<source id="Plane-mesh-positions">
|
||||||
|
<float_array id="Plane-mesh-positions-array" count="192">-1 1 0 1 1 0 -1 0 0 1 0 0 -1 -0.5 0 1 0.5 0 -1 0.5 0 1 -0.5 0 -1 -0.75 0 1 0.75 0 -1 0.25 0 1 -0.25 0 -1 -0.25 0 1 0.25 0 -1 0.75 0 1 -0.75 0 -1 -0.875 0 1 0.875 0 -1 0.125 0 1 -0.125 0 -1 -0.375 0 1 0.375 0 -1 0.625 0 1 -0.625 0 -1 -0.625 0 1 0.625 0 -1 0.375 0 1 -0.375 0 -1 -0.125 0 1 0.125 0 -1 0.875 0 1 -0.875 0 1 0.875 0.04037594 1 1 0.04037594 -1 1 0.04037594 1 -0.125 0.04037594 1 0 0.04037594 -1 0 0.04037594 1 0.375 0.04037594 1 0.5 0.04037594 1 -0.625 0.04037594 1 -0.5 0.04037594 -1 -0.5 0.04037594 -1 0.5 0.04037594 1 0.625 0.04037594 1 0.75 0.04037594 1 -0.375 0.04037594 1 -0.25 0.04037594 1 0.125 0.04037594 1 0.25 0.04037594 1 -0.875 0.04037594 1 -0.75 0.04037594 -1 0.25 0.04037594 -1 -0.75 0.04037594 -1 -0.25 0.04037594 -1 0.75 0.04037594 -1 -0.875 0.04037594 -1 0.125 0.04037594 -1 -0.375 0.04037594 -1 0.625 0.04037594 -1 -0.625 0.04037594 -1 0.375 0.04037594 -1 -0.125 0.04037594 -1 0.875 0.04037594</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Plane-mesh-positions-array" count="64" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="Plane-mesh-normals">
|
||||||
|
<float_array id="Plane-mesh-normals-array" count="18">0 0 -1 0 0 1 0 -1 0 0 1 0 1 0 0 -1 0 0</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Plane-mesh-normals-array" count="6" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<vertices id="Plane-mesh-vertices">
|
||||||
|
<input semantic="POSITION" source="#Plane-mesh-positions"/>
|
||||||
|
</vertices>
|
||||||
|
<polylist material="Material_001-material" count="96">
|
||||||
|
<input semantic="VERTEX" source="#Plane-mesh-vertices" offset="0"/>
|
||||||
|
<input semantic="NORMAL" source="#Plane-mesh-normals" offset="1"/>
|
||||||
|
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
|
||||||
|
<p>0 0 17 0 30 0 2 0 19 0 28 0 4 0 23 0 24 0 6 0 21 0 26 0 10 0 29 0 18 0 8 0 31 0 16 0 12 0 27 0 20 0 14 0 25 0 22 0 32 1 34 1 63 1 35 1 37 1 62 1 40 1 42 1 60 1 38 1 43 1 61 1 48 1 52 1 57 1 50 1 53 1 56 1 46 1 54 1 58 1 44 1 55 1 59 1 27 2 58 2 20 2 10 3 49 3 13 3 31 2 56 2 16 2 8 3 51 3 15 3 1 4 32 4 17 4 29 2 57 2 18 2 12 3 47 3 11 3 0 3 33 3 1 3 21 2 61 2 26 2 14 3 45 3 9 3 3 4 35 4 19 4 23 2 60 2 24 2 16 5 53 5 8 5 2 3 36 3 3 3 19 2 62 2 28 2 18 5 52 5 10 5 5 4 38 4 21 4 17 2 63 2 30 2 20 5 54 5 12 5 7 4 40 4 23 4 22 5 55 5 14 5 4 3 41 3 7 3 24 5 42 5 4 5 6 3 39 3 5 3 26 5 43 5 6 5 9 4 44 4 25 4 28 5 37 5 2 5 11 4 46 4 27 4 30 5 34 5 0 5 13 4 48 4 29 4 25 2 59 2 22 2 15 4 50 4 31 4 0 0 1 0 17 0 2 0 3 0 19 0 4 0 7 0 23 0 6 0 5 0 21 0 10 0 13 0 29 0 8 0 15 0 31 0 12 0 11 0 27 0 14 0 9 0 25 0 32 1 33 1 34 1 35 1 36 1 37 1 40 1 41 1 42 1 38 1 39 1 43 1 48 1 49 1 52 1 50 1 51 1 53 1 46 1 47 1 54 1 44 1 45 1 55 1 27 2 46 2 58 2 10 3 52 3 49 3 31 2 50 2 56 2 8 3 53 3 51 3 1 4 33 4 32 4 29 2 48 2 57 2 12 3 54 3 47 3 0 3 34 3 33 3 21 2 38 2 61 2 14 3 55 3 45 3 3 4 36 4 35 4 23 2 40 2 60 2 16 5 56 5 53 5 2 3 37 3 36 3 19 2 35 2 62 2 18 5 57 5 52 5 5 4 39 4 38 4 17 2 32 2 63 2 20 5 58 5 54 5 7 4 41 4 40 4 22 5 59 5 55 5 4 3 42 3 41 3 24 5 60 5 42 5 6 3 43 3 39 3 26 5 61 5 43 5 9 4 45 4 44 4 28 5 62 5 37 5 11 4 47 4 46 4 30 5 63 5 34 5 13 4 49 4 48 4 25 2 44 2 59 2 15 4 51 4 50 4</p>
|
||||||
|
</polylist>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</library_geometries>
|
||||||
|
<library_controllers/>
|
||||||
|
<library_visual_scenes>
|
||||||
|
<visual_scene id="Scene" name="Scene">
|
||||||
|
<node id="Plane" name="Plane" type="NODE">
|
||||||
|
<matrix sid="transform">0.125 0 0 0 0 5.333333 0 -0.3333333 0 0 1 0.01986987 0 0 0 1</matrix>
|
||||||
|
<instance_geometry url="#Plane-mesh" name="Plane">
|
||||||
|
<bind_material>
|
||||||
|
<technique_common>
|
||||||
|
<instance_material symbol="Material_001-material" target="#Material_001-material"/>
|
||||||
|
</technique_common>
|
||||||
|
</bind_material>
|
||||||
|
</instance_geometry>
|
||||||
|
</node>
|
||||||
|
</visual_scene>
|
||||||
|
</library_visual_scenes>
|
||||||
|
<scene>
|
||||||
|
<instance_visual_scene url="#Scene"/>
|
||||||
|
</scene>
|
||||||
|
</COLLADA>
|
||||||
@@ -0,0 +1,100 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||||
|
<asset>
|
||||||
|
<contributor>
|
||||||
|
<author>Blender User</author>
|
||||||
|
<authoring_tool>Blender 2.78.0 commit date:2017-02-24, commit time:14:33, hash:e92f235283</authoring_tool>
|
||||||
|
</contributor>
|
||||||
|
<created>2017-09-11T02:18:04</created>
|
||||||
|
<modified>2017-09-11T02:18:04</modified>
|
||||||
|
<unit name="meter" meter="1"/>
|
||||||
|
<up_axis>Z_UP</up_axis>
|
||||||
|
</asset>
|
||||||
|
<library_images/>
|
||||||
|
<library_effects>
|
||||||
|
<effect id="Material_001-effect">
|
||||||
|
<profile_COMMON>
|
||||||
|
<technique sid="common">
|
||||||
|
<phong>
|
||||||
|
<emission>
|
||||||
|
<color sid="emission">0 0 0 1</color>
|
||||||
|
</emission>
|
||||||
|
<ambient>
|
||||||
|
<color sid="ambient">0 0 0 1</color>
|
||||||
|
</ambient>
|
||||||
|
<diffuse>
|
||||||
|
<color sid="diffuse">0.09194811 0.08404596 0.08642986 1</color>
|
||||||
|
</diffuse>
|
||||||
|
<specular>
|
||||||
|
<color sid="specular">0.5 0.5 0.5 1</color>
|
||||||
|
</specular>
|
||||||
|
<shininess>
|
||||||
|
<float sid="shininess">50</float>
|
||||||
|
</shininess>
|
||||||
|
<index_of_refraction>
|
||||||
|
<float sid="index_of_refraction">1</float>
|
||||||
|
</index_of_refraction>
|
||||||
|
</phong>
|
||||||
|
</technique>
|
||||||
|
</profile_COMMON>
|
||||||
|
</effect>
|
||||||
|
</library_effects>
|
||||||
|
<library_materials>
|
||||||
|
<material id="Material_001-material" name="Material_001">
|
||||||
|
<instance_effect url="#Material_001-effect"/>
|
||||||
|
</material>
|
||||||
|
</library_materials>
|
||||||
|
<library_geometries>
|
||||||
|
<geometry id="Plane-mesh" name="Plane">
|
||||||
|
<mesh>
|
||||||
|
<source id="Plane-mesh-positions">
|
||||||
|
<float_array id="Plane-mesh-positions-array" count="192">-1 1 0 1 1 0 -1 0 0 1 0 0 -1 -0.5 0 1 0.5 0 -1 0.5 0 1 -0.5 0 -1 -0.75 0 1 0.75 0 -1 0.25 0 1 -0.25 0 -1 -0.25 0 1 0.25 0 -1 0.75 0 1 -0.75 0 -1 -0.875 0 1 0.875 0 -1 0.125 0 1 -0.125 0 -1 -0.375 0 1 0.375 0 -1 0.625 0 1 -0.625 0 -1 -0.625 0 1 0.625 0 -1 0.375 0 1 -0.375 0 -1 -0.125 0 1 0.125 0 -1 0.875 0 1 -0.875 0 1 0.875 0.04037594 1 1 0.04037594 -1 1 0.04037594 1 -0.125 0.04037594 1 0 0.04037594 -1 0 0.04037594 1 0.375 0.04037594 1 0.5 0.04037594 1 -0.625 0.04037594 1 -0.5 0.04037594 -1 -0.5 0.04037594 -1 0.5 0.04037594 1 0.625 0.04037594 1 0.75 0.04037594 1 -0.375 0.04037594 1 -0.25 0.04037594 1 0.125 0.04037594 1 0.25 0.04037594 1 -0.875 0.04037594 1 -0.75 0.04037594 -1 0.25 0.04037594 -1 -0.75 0.04037594 -1 -0.25 0.04037594 -1 0.75 0.04037594 -1 -0.875 0.04037594 -1 0.125 0.04037594 -1 -0.375 0.04037594 -1 0.625 0.04037594 -1 -0.625 0.04037594 -1 0.375 0.04037594 -1 -0.125 0.04037594 -1 0.875 0.04037594</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Plane-mesh-positions-array" count="64" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="Plane-mesh-normals">
|
||||||
|
<float_array id="Plane-mesh-normals-array" count="18">0 0 -1 0 0 1 0 -1 0 0 1 0 1 0 0 -1 0 0</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Plane-mesh-normals-array" count="6" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<vertices id="Plane-mesh-vertices">
|
||||||
|
<input semantic="POSITION" source="#Plane-mesh-positions"/>
|
||||||
|
</vertices>
|
||||||
|
<polylist material="Material_001-material" count="96">
|
||||||
|
<input semantic="VERTEX" source="#Plane-mesh-vertices" offset="0"/>
|
||||||
|
<input semantic="NORMAL" source="#Plane-mesh-normals" offset="1"/>
|
||||||
|
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
|
||||||
|
<p>0 0 17 0 30 0 2 0 19 0 28 0 4 0 23 0 24 0 6 0 21 0 26 0 10 0 29 0 18 0 8 0 31 0 16 0 12 0 27 0 20 0 14 0 25 0 22 0 32 1 34 1 63 1 35 1 37 1 62 1 40 1 42 1 60 1 38 1 43 1 61 1 48 1 52 1 57 1 50 1 53 1 56 1 46 1 54 1 58 1 44 1 55 1 59 1 27 2 58 2 20 2 10 3 49 3 13 3 31 2 56 2 16 2 8 3 51 3 15 3 1 4 32 4 17 4 29 2 57 2 18 2 12 3 47 3 11 3 0 3 33 3 1 3 21 2 61 2 26 2 14 3 45 3 9 3 3 4 35 4 19 4 23 2 60 2 24 2 16 5 53 5 8 5 2 3 36 3 3 3 19 2 62 2 28 2 18 5 52 5 10 5 5 4 38 4 21 4 17 2 63 2 30 2 20 5 54 5 12 5 7 4 40 4 23 4 22 5 55 5 14 5 4 3 41 3 7 3 24 5 42 5 4 5 6 3 39 3 5 3 26 5 43 5 6 5 9 4 44 4 25 4 28 5 37 5 2 5 11 4 46 4 27 4 30 5 34 5 0 5 13 4 48 4 29 4 25 2 59 2 22 2 15 4 50 4 31 4 0 0 1 0 17 0 2 0 3 0 19 0 4 0 7 0 23 0 6 0 5 0 21 0 10 0 13 0 29 0 8 0 15 0 31 0 12 0 11 0 27 0 14 0 9 0 25 0 32 1 33 1 34 1 35 1 36 1 37 1 40 1 41 1 42 1 38 1 39 1 43 1 48 1 49 1 52 1 50 1 51 1 53 1 46 1 47 1 54 1 44 1 45 1 55 1 27 2 46 2 58 2 10 3 52 3 49 3 31 2 50 2 56 2 8 3 53 3 51 3 1 4 33 4 32 4 29 2 48 2 57 2 12 3 54 3 47 3 0 3 34 3 33 3 21 2 38 2 61 2 14 3 55 3 45 3 3 4 36 4 35 4 23 2 40 2 60 2 16 5 56 5 53 5 2 3 37 3 36 3 19 2 35 2 62 2 18 5 57 5 52 5 5 4 39 4 38 4 17 2 32 2 63 2 20 5 58 5 54 5 7 4 41 4 40 4 22 5 59 5 55 5 4 3 42 3 41 3 24 5 60 5 42 5 6 3 43 3 39 3 26 5 61 5 43 5 9 4 45 4 44 4 28 5 62 5 37 5 11 4 47 4 46 4 30 5 63 5 34 5 13 4 49 4 48 4 25 2 44 2 59 2 15 4 51 4 50 4</p>
|
||||||
|
</polylist>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</library_geometries>
|
||||||
|
<library_controllers/>
|
||||||
|
<library_visual_scenes>
|
||||||
|
<visual_scene id="Scene" name="Scene">
|
||||||
|
<node id="Plane" name="Plane" type="NODE">
|
||||||
|
<matrix sid="transform">0.125 0 0 0 0 5.333333 0 -0.3333333 0 0 1 0.01986987 0 0 0 1</matrix>
|
||||||
|
<instance_geometry url="#Plane-mesh" name="Plane">
|
||||||
|
<bind_material>
|
||||||
|
<technique_common>
|
||||||
|
<instance_material symbol="Material_001-material" target="#Material_001-material"/>
|
||||||
|
</technique_common>
|
||||||
|
</bind_material>
|
||||||
|
</instance_geometry>
|
||||||
|
</node>
|
||||||
|
</visual_scene>
|
||||||
|
</library_visual_scenes>
|
||||||
|
<scene>
|
||||||
|
<instance_visual_scene url="#Scene"/>
|
||||||
|
</scene>
|
||||||
|
</COLLADA>
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,100 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
|
||||||
|
<asset>
|
||||||
|
<contributor>
|
||||||
|
<author>Blender User</author>
|
||||||
|
<authoring_tool>Blender 2.78.0 commit date:2017-02-24, commit time:14:33, hash:e92f235283</authoring_tool>
|
||||||
|
</contributor>
|
||||||
|
<created>2017-09-11T02:12:19</created>
|
||||||
|
<modified>2017-09-11T02:12:19</modified>
|
||||||
|
<unit name="meter" meter="1"/>
|
||||||
|
<up_axis>Z_UP</up_axis>
|
||||||
|
</asset>
|
||||||
|
<library_images/>
|
||||||
|
<library_effects>
|
||||||
|
<effect id="Material_001-effect">
|
||||||
|
<profile_COMMON>
|
||||||
|
<technique sid="common">
|
||||||
|
<phong>
|
||||||
|
<emission>
|
||||||
|
<color sid="emission">0 0 0 1</color>
|
||||||
|
</emission>
|
||||||
|
<ambient>
|
||||||
|
<color sid="ambient">0 0 0 1</color>
|
||||||
|
</ambient>
|
||||||
|
<diffuse>
|
||||||
|
<color sid="diffuse">0 0.2611 7.78272e-5 1</color>
|
||||||
|
</diffuse>
|
||||||
|
<specular>
|
||||||
|
<color sid="specular">0.5 0.5 0.5 1</color>
|
||||||
|
</specular>
|
||||||
|
<shininess>
|
||||||
|
<float sid="shininess">50</float>
|
||||||
|
</shininess>
|
||||||
|
<index_of_refraction>
|
||||||
|
<float sid="index_of_refraction">1</float>
|
||||||
|
</index_of_refraction>
|
||||||
|
</phong>
|
||||||
|
</technique>
|
||||||
|
</profile_COMMON>
|
||||||
|
</effect>
|
||||||
|
</library_effects>
|
||||||
|
<library_materials>
|
||||||
|
<material id="Material_001-material" name="Material_001">
|
||||||
|
<instance_effect url="#Material_001-effect"/>
|
||||||
|
</material>
|
||||||
|
</library_materials>
|
||||||
|
<library_geometries>
|
||||||
|
<geometry id="Plane-mesh" name="Plane">
|
||||||
|
<mesh>
|
||||||
|
<source id="Plane-mesh-positions">
|
||||||
|
<float_array id="Plane-mesh-positions-array" count="192">-1 1 0 1 1 0 -1 0 0 1 0 0 -1 -0.5 0 1 0.5 0 -1 0.5 0 1 -0.5 0 -1 -0.75 0 1 0.75 0 -1 0.25 0 1 -0.25 0 -1 -0.25 0 1 0.25 0 -1 0.75 0 1 -0.75 0 -1 -0.875 0 1 0.875 0 -1 0.125 0 1 -0.125 0 -1 -0.375 0 1 0.375 0 -1 0.625 0 1 -0.625 0 -1 -0.625 0 1 0.625 0 -1 0.375 0 1 -0.375 0 -1 -0.125 0 1 0.125 0 -1 0.875 0 1 -0.875 0 1 0.875 0.04037594 1 1 0.04037594 -1 1 0.04037594 1 -0.125 0.04037594 1 0 0.04037594 -1 0 0.04037594 1 0.375 0.04037594 1 0.5 0.04037594 1 -0.625 0.04037594 1 -0.5 0.04037594 -1 -0.5 0.04037594 -1 0.5 0.04037594 1 0.625 0.04037594 1 0.75 0.04037594 1 -0.375 0.04037594 1 -0.25 0.04037594 1 0.125 0.04037594 1 0.25 0.04037594 1 -0.875 0.04037594 1 -0.75 0.04037594 -1 0.25 0.04037594 -1 -0.75 0.04037594 -1 -0.25 0.04037594 -1 0.75 0.04037594 -1 -0.875 0.04037594 -1 0.125 0.04037594 -1 -0.375 0.04037594 -1 0.625 0.04037594 -1 -0.625 0.04037594 -1 0.375 0.04037594 -1 -0.125 0.04037594 -1 0.875 0.04037594</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Plane-mesh-positions-array" count="64" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<source id="Plane-mesh-normals">
|
||||||
|
<float_array id="Plane-mesh-normals-array" count="18">0 0 -1 0 0 1 0 -1 0 0 1 0 1 0 0 -1 0 0</float_array>
|
||||||
|
<technique_common>
|
||||||
|
<accessor source="#Plane-mesh-normals-array" count="6" stride="3">
|
||||||
|
<param name="X" type="float"/>
|
||||||
|
<param name="Y" type="float"/>
|
||||||
|
<param name="Z" type="float"/>
|
||||||
|
</accessor>
|
||||||
|
</technique_common>
|
||||||
|
</source>
|
||||||
|
<vertices id="Plane-mesh-vertices">
|
||||||
|
<input semantic="POSITION" source="#Plane-mesh-positions"/>
|
||||||
|
</vertices>
|
||||||
|
<polylist material="Material_001-material" count="96">
|
||||||
|
<input semantic="VERTEX" source="#Plane-mesh-vertices" offset="0"/>
|
||||||
|
<input semantic="NORMAL" source="#Plane-mesh-normals" offset="1"/>
|
||||||
|
<vcount>3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 </vcount>
|
||||||
|
<p>0 0 17 0 30 0 2 0 19 0 28 0 4 0 23 0 24 0 6 0 21 0 26 0 10 0 29 0 18 0 8 0 31 0 16 0 12 0 27 0 20 0 14 0 25 0 22 0 32 1 34 1 63 1 35 1 37 1 62 1 40 1 42 1 60 1 38 1 43 1 61 1 48 1 52 1 57 1 50 1 53 1 56 1 46 1 54 1 58 1 44 1 55 1 59 1 27 2 58 2 20 2 10 3 49 3 13 3 31 2 56 2 16 2 8 3 51 3 15 3 1 4 32 4 17 4 29 2 57 2 18 2 12 3 47 3 11 3 0 3 33 3 1 3 21 2 61 2 26 2 14 3 45 3 9 3 3 4 35 4 19 4 23 2 60 2 24 2 16 5 53 5 8 5 2 3 36 3 3 3 19 2 62 2 28 2 18 5 52 5 10 5 5 4 38 4 21 4 17 2 63 2 30 2 20 5 54 5 12 5 7 4 40 4 23 4 22 5 55 5 14 5 4 3 41 3 7 3 24 5 42 5 4 5 6 3 39 3 5 3 26 5 43 5 6 5 9 4 44 4 25 4 28 5 37 5 2 5 11 4 46 4 27 4 30 5 34 5 0 5 13 4 48 4 29 4 25 2 59 2 22 2 15 4 50 4 31 4 0 0 1 0 17 0 2 0 3 0 19 0 4 0 7 0 23 0 6 0 5 0 21 0 10 0 13 0 29 0 8 0 15 0 31 0 12 0 11 0 27 0 14 0 9 0 25 0 32 1 33 1 34 1 35 1 36 1 37 1 40 1 41 1 42 1 38 1 39 1 43 1 48 1 49 1 52 1 50 1 51 1 53 1 46 1 47 1 54 1 44 1 45 1 55 1 27 2 46 2 58 2 10 3 52 3 49 3 31 2 50 2 56 2 8 3 53 3 51 3 1 4 33 4 32 4 29 2 48 2 57 2 12 3 54 3 47 3 0 3 34 3 33 3 21 2 38 2 61 2 14 3 55 3 45 3 3 4 36 4 35 4 23 2 40 2 60 2 16 5 56 5 53 5 2 3 37 3 36 3 19 2 35 2 62 2 18 5 57 5 52 5 5 4 39 4 38 4 17 2 32 2 63 2 20 5 58 5 54 5 7 4 41 4 40 4 22 5 59 5 55 5 4 3 42 3 41 3 24 5 60 5 42 5 6 3 43 3 39 3 26 5 61 5 43 5 9 4 45 4 44 4 28 5 62 5 37 5 11 4 47 4 46 4 30 5 63 5 34 5 13 4 49 4 48 4 25 2 44 2 59 2 15 4 51 4 50 4</p>
|
||||||
|
</polylist>
|
||||||
|
</mesh>
|
||||||
|
</geometry>
|
||||||
|
</library_geometries>
|
||||||
|
<library_controllers/>
|
||||||
|
<library_visual_scenes>
|
||||||
|
<visual_scene id="Scene" name="Scene">
|
||||||
|
<node id="Plane" name="Plane" type="NODE">
|
||||||
|
<matrix sid="transform">0.125 0 0 0 0 5.333333 0 -0.3333333 0 0 1 0.01986987 0 0 0 1</matrix>
|
||||||
|
<instance_geometry url="#Plane-mesh" name="Plane">
|
||||||
|
<bind_material>
|
||||||
|
<technique_common>
|
||||||
|
<instance_material symbol="Material_001-material" target="#Material_001-material"/>
|
||||||
|
</technique_common>
|
||||||
|
</bind_material>
|
||||||
|
</instance_geometry>
|
||||||
|
</node>
|
||||||
|
</visual_scene>
|
||||||
|
</library_visual_scenes>
|
||||||
|
<scene>
|
||||||
|
<instance_visual_scene url="#Scene"/>
|
||||||
|
</scene>
|
||||||
|
</COLLADA>
|
||||||
Reference in New Issue
Block a user