-
Notifications
You must be signed in to change notification settings - Fork 0
Definitions
Coordinate axes are like in Minecraft, i.e. Y is up.
- X: length
- Y: height
- Z: width
Rotations are counterclockwise, 0 degrees is East. (Minecraft rotations are clockwise.) This was done for consistency with mainstream vector math.
Top-down view of the reference frame:
Y
+---->X (East)
|
V
Z
At the planning stage, coordinates are floating-point 3d vectors. But ultimately all structures will be built into a voxel world where coordinates are integer 3d vectors. Bridging this gap can be confusing. I use 2 conventions for measuring the voxel space: "centric" and "natural".
Think of voxel blocks as points in 3d space, where every integer point corresponds to a center of a block. This convention defines how to position blocks in space and a how to measure distance between them. It should be used by default, unless otherwise specified.
Distance between adjacent blocks is 1.
A room of "centric" size 0 occupies 1 block.
A wall of "centric" length 2 will occupy 3 points, i.e. 3 blocks.
In a room of "centric" size 2, its cross-section will look like this: 1 block of wall, 1 block of empty space, 1 block of wall.
This is how a normal sane person would measure buildings in Minecraft: "if it uses 2 blocks to build, its size is 2". This convention should only used to measure distances, not position! It's useful at the building stage, when describing the size of details like crenellations on a castle wall.
The room of "centric" size 2 (described above) will have a "natural" size 3.