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

276 wiersze
7.3 KiB
JavaScript

function drawRuler(xmin, xmax, ymin, ymax) {
var length1 = 4
var length5 = 6
var length10 = 7
var unitsval = ""
// console.log(xmin, xmax, ymin, ymax)
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, -length1, 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, -length5, 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 % 10 == 0) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
geometry.vertices.push(new THREE.Vector3(i, -length10, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-xmax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
}
// 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(-length5, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
}
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(-length10, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
}
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(-length1, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
var fontsize = 4
var spacing = -10
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: spacing,
z: 0,
text: i + unitsval,
color: "#cc0000",
size: fontsize
});
ruler.add(x[i]);
}
}
for (var i = ymin; i <= ymax; i++) {
if (i % 10 == 0) {
y[i] = this.makeSprite(this.scene, "webgl", {
x: spacing,
y: i,
z: 0,
text: i + unitsval,
color: "#006600",
size: fontsize
});
ruler.add(y[i]);
}
}
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);
return (ruler)
}
function drawRulerInches(xmin, xmax, ymin, ymax) {
length1 = 1.4;
length5 = 1.6;
length10 = 1.7;
var unitsval = "in"
// console.log(xmin, xmax, ymin, ymax)
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, -length1, 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, -length5, 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 % 10 == 0) {
var geometry = new THREE.Geometry();
geometry.vertices.push(new THREE.Vector3(i, -1, 0));
geometry.vertices.push(new THREE.Vector3(i, -length10, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-xmax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
}
// 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(-length5, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
}
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(-length10, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
}
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(-length1, i, 0));
var line = new THREE.Line(geometry, material);
// line.translateX(-ymax / 2)
// line.translateY(-ymax / 2)
ruler.add(line);
}
fontsize = 10
spacing = -10;
xmin = Math.floor(xmin * 0.0393701);
xmax = Math.ceil(xmax * 0.0393701);
ymin = Math.floor(ymin * 0.0393701);
ymax = Math.ceil(ymax * 0.0393701);
// console.log(xmin, xmax, ymin, ymax)
var x = [];
var y = [];
for (var i = xmin; i <= xmax; i++) {
if (i % 1 == 0) {
x[i] = this.makeSprite(this.scene, "webgl", {
x: i * 25.4,
y: spacing,
z: 0,
text: i + unitsval,
color: "#cc0000",
size: fontsize / 2.54
});
ruler.add(x[i]);
}
}
for (var i = ymin; i <= ymax; i++) {
if (i % 1 == 0) {
y[i] = this.makeSprite(this.scene, "webgl", {
x: spacing,
y: i * 25.4,
z: 0,
text: i + unitsval,
color: "#006600",
size: fontsize / 2.54
});
ruler.add(y[i]);
}
}
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);
// ruler.scale.multiplyScalar(25.4);
return (ruler)
}