mirror of
https://github.com/revarbat/BOSL2.git
synced 2025-08-15 03:24:03 +02:00
Reworked orientation to use vectors. Added spin.
This commit is contained in:
@@ -75,6 +75,7 @@ CENTER = [ 0, 0, 0]; // Centered zero vector.
|
||||
// Section: Vector Aliases
|
||||
// Useful aliases for use with `anchor`.
|
||||
|
||||
CTR = CENTER; // Zero vector, `[0,0,0]`. Alias to `CENTER`.
|
||||
UP = TOP; // Vector pointing up, alias to `TOP`.
|
||||
DOWN = BOTTOM; // Vector pointing down, alias to `BOTTOM`.
|
||||
BTM = BOTTOM; // Vector pointing down, alias to `BOTTOM`.
|
||||
@@ -86,14 +87,8 @@ FORWARD = FRONT; // Vector pointing forward, alias to `FRONT`.
|
||||
|
||||
// CommonCode:
|
||||
// orientations = [
|
||||
// ORIENT_X, ORIENT_Y, ORIENT_Z,
|
||||
// ORIENT_XNEG, ORIENT_YNEG, ORIENT_ZNEG,
|
||||
// ORIENT_X_90, ORIENT_Y_90, ORIENT_Z_90,
|
||||
// ORIENT_XNEG_90, ORIENT_YNEG_90, ORIENT_ZNEG_90,
|
||||
// ORIENT_X_180, ORIENT_Y_180, ORIENT_Z_180,
|
||||
// ORIENT_XNEG_180, ORIENT_YNEG_180, ORIENT_ZNEG_180,
|
||||
// ORIENT_X_270, ORIENT_Y_270, ORIENT_Z_270,
|
||||
// ORIENT_XNEG_270, ORIENT_YNEG_270, ORIENT_ZNEG_270
|
||||
// RIGHT, BACK, UP,
|
||||
// LEFT, FWD, DOWN,
|
||||
// ];
|
||||
// axiscolors = ["red", "forestgreen", "dodgerblue"];
|
||||
// module text3d(text, h=0.01, size=3) {
|
||||
@@ -107,8 +102,8 @@ FORWARD = FRONT; // Vector pointing forward, alias to `FRONT`.
|
||||
// color(axiscolors.y) up ((20-1)/2+0.01) right((20-1)/2+0.01) cube([1,18,1], center=true);
|
||||
// color(axiscolors.z) back((20-1)/2+0.01) right((20-1)/2+0.01) cube([1,1,18], center=true);
|
||||
// for (axis=[0:2], neg=[0:1]) {
|
||||
// idx = axis + 3*neg + 6*ang/90;
|
||||
// rotate(orientations[idx]) {
|
||||
// idx = axis + 3*neg;
|
||||
// rot(ang, from=UP, to=orientations[idx]) {
|
||||
// up(10) {
|
||||
// fwd(4) color("black") text3d(text=str(ang), size=4);
|
||||
// back(4) color(axiscolors[axis]) text3d(text=str(["X","Y","Z"][axis], ["+","NEG"][neg]), size=4);
|
||||
@@ -118,60 +113,5 @@ FORWARD = FRONT; // Vector pointing forward, alias to `FRONT`.
|
||||
// }
|
||||
|
||||
|
||||
// Section: Standard Orientations
|
||||
// Orientations for `cyl()`, `prismoid()`, etc. They take the form of standard [X,Y,Z]
|
||||
// rotation angles for rotating a vertical shape into the given orientations.
|
||||
// Figure(Spin): Standard Orientations
|
||||
// orient_cube(0);
|
||||
|
||||
ORIENT_X = [ 90, 0, 90]; // Orient along the X axis.
|
||||
ORIENT_Y = [ 90, 0, 180]; // Orient along the Y axis.
|
||||
ORIENT_Z = [ 0, 0, 0]; // Orient along the Z axis.
|
||||
ORIENT_XNEG = [ 90, 0, -90]; // Orient reversed along the X axis.
|
||||
ORIENT_YNEG = [ 90, 0, 0]; // Orient reversed along the Y axis.
|
||||
ORIENT_ZNEG = [ 0, 180, 0]; // Orient reversed along the Z axis.
|
||||
|
||||
|
||||
// Section: Orientations Rotated 90º
|
||||
// Orientations for `cyl()`, `prismoid()`, etc. They take the form of standard [X,Y,Z]
|
||||
// rotation angles for rotating a vertical shape into the given orientations.
|
||||
// Figure(Spin): Orientations Rotated 90º
|
||||
// orient_cube(90);
|
||||
|
||||
ORIENT_X_90 = [ 90, -90, 90]; // Orient along the X axis, then rotate 90 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_Y_90 = [ 90, -90, 180]; // Orient along the Y axis, then rotate 90 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_Z_90 = [ 0, 0, 90]; // Orient along the Z axis, then rotate 90 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_XNEG_90 = [ 0, -90, 0]; // Orient reversed along the X axis, then rotate 90 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_YNEG_90 = [ 90, -90, 0]; // Orient reversed along the Y axis, then rotate 90 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_ZNEG_90 = [ 0, 180, -90]; // Orient reversed along the Z axis, then rotate 90 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
|
||||
|
||||
// Section: Orientations Rotated 180º
|
||||
// Orientations for `cyl()`, `prismoid()`, etc. They take the form of standard [X,Y,Z]
|
||||
// rotation angles for rotating a vertical shape into the given orientations.
|
||||
// Figure(Spin): Orientations Rotated 180º
|
||||
// orient_cube(180);
|
||||
|
||||
ORIENT_X_180 = [-90, 0, -90]; // Orient along the X axis, then rotate 180 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_Y_180 = [-90, 0, 0]; // Orient along the Y axis, then rotate 180 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_Z_180 = [ 0, 0, 180]; // Orient along the Z axis, then rotate 180 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_XNEG_180 = [-90, 0, 90]; // Orient reversed along the X axis, then rotate 180 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_YNEG_180 = [-90, 0, 180]; // Orient reversed along the Y axis, then rotate 180 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_ZNEG_180 = [ 0, 180, 180]; // Orient reversed along the Z axis, then rotate 180 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
|
||||
|
||||
// Section: Orientations Rotated 270º
|
||||
// Orientations for `cyl()`, `prismoid()`, etc. They take the form of standard [X,Y,Z]
|
||||
// rotation angles for rotating a vertical shape into the given orientations.
|
||||
// Figure(Spin): Orientations Rotated 270º
|
||||
// orient_cube(270);
|
||||
|
||||
ORIENT_X_270 = [ 90, 90, 90]; // Orient along the X axis, then rotate 270 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_Y_270 = [ 90, 90, 180]; // Orient along the Y axis, then rotate 270 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_Z_270 = [ 0, 0, -90]; // Orient along the Z axis, then rotate 270 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_XNEG_270 = [ 90, 90, -90]; // Orient reversed along the X axis, then rotate 270 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_YNEG_270 = [ 90, 90, 0]; // Orient reversed along the Y axis, then rotate 270 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
ORIENT_ZNEG_270 = [ 0, 180, 90]; // Orient reversed along the Z axis, then rotate 270 degrees counter-clockwise on that axis, as seen when facing the origin from that axis orientation.
|
||||
|
||||
|
||||
// vim: noexpandtab tabstop=4 shiftwidth=4 softtabstop=4 nowrap
|
||||
|
Reference in New Issue
Block a user