OpenBuilds-CONTROL/app/js/viewer-ruler.js

132 wiersze
3.5 KiB
JavaScript
Czysty Zwykły widok Historia

2018-09-18 14:09:11 +00:00
function drawRuler(xmin, xmax, ymin, ymax, inches) {
if (inches) {
xmin = Math.floor(xmin * 0.0393701);
xmax = Math.ceil(xmax * 0.0393701);
ymin = Math.floor(ymin * 0.0393701);
ymax = Math.ceil(ymax * 0.0393701);
}
2018-08-28 15:09:20 +00:00
var ruler = new THREE.Group();
var material = new THREE.LineBasicMaterial({
color: 0x888888
});
material.opacity = 0.15;
// x axis
for (i = xmin; i <= xmax; i++) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
geometry.vertices.push(new THREE.Vector3(i, -4, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-xmax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
for (i = xmin; i <= xmax; i++) {
if (i % 5 == 0) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
geometry.vertices.push(new THREE.Vector3(i, -6, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-xmax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
2018-08-28 15:09:20 +00:00
}
for (i = xmin; i <= xmax; i++) {
if (i % 10 == 0) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
geometry.vertices.push(new THREE.Vector3(i, -7, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-xmax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
2018-08-28 15:09:20 +00:00
}
// y axis
for (i = ymin; i <= ymax; i++) {
if (i % 5 == 0) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
geometry.vertices.push(new THREE.Vector3(-6, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
2018-08-28 15:09:20 +00:00
}
for (i = ymin; i <= ymax; i++) {
if (i % 10 == 0) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
geometry.vertices.push(new THREE.Vector3(-7, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
2018-08-28 15:09:20 +00:00
}
for (i = ymin; i <= ymax; i++) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(-1, i, 0));
geometry.vertices.push(new THREE.Vector3(-4, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
var x = [];
var y = [];
for (var i = xmin; i <= xmax; i++) {
if (i % 10 == 0) {
x[i] = this.makeSprite(this.scene, "webgl", {
x: i,
y: -10,
z: 0,
text: i,
color: "#cc0000",
size: 4
});
ruler.add(x[i]);
}
2018-08-28 15:09:20 +00:00
}
for (var i = ymin; i <= ymax; i++) {
if (i % 10 == 0) {
y[i] = this.makeSprite(this.scene, "webgl", {
x: -10,
y: i,
z: 0,
text: i,
color: "#006600",
size: 4
});
ruler.add(y[i]);
}
2018-08-28 15:09:20 +00:00
}
ruler.name = "Rulers"
var material = new THREE.LineBasicMaterial({
color: 0x666666
});
material.opacity = 0.15;
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(xmax, 0, 0));
geometry.vertices.push(new THREE.Vector3(xmax, ymax, 0));
geometry.vertices.push(new THREE.Vector3(0, ymax, 0));
var line = new THREE.Line(geometry, material);
ruler.add(line);
2018-09-18 14:09:11 +00:00
if (inches) {
ruler.scale.multiplyScalar(25.4);
}
2018-08-28 15:09:20 +00:00
return (ruler)
}