Libprimis
Imprimis' 3D destroyable world engine
|
Objects representing the octree and its manipulation methods. More...
Go to the source code of this file.
Classes | |
class | cube |
The fundemental building block of the octree world, representing a 3D cube. More... | |
struct | selinfo |
A representation of a rectangular volume of cubes. More... | |
struct | block3 |
A representation of a rectangular volume of cubes, with less metadata. More... | |
struct | editinfo |
struct | undoent |
struct | undoblock |
class | cubeworld |
An object representing the entirety of an octree world. More... | |
Macros | |
#define | LOOP_XY(b) |
#define | LOOP_XYZ(b, r, f) |
#define | LOOP_SEL_XYZ(f) |
#define | SELECT_CUBE(x, y, z) |
#define | PROTECT_SEL(f) |
#define | DIMENSION(orient) |
#define | DIM_COORD(orient) |
Functions | |
void | setcubefaces (cube &c, uint face) |
sets the faces to a given value face given | |
int | octadim (int d) |
Variables | |
const int | Face_MaxVerts = 15 |
constexpr uint | faceempty = 0 |
constexpr uint | facesolid = 0x80808080 |
int | selchildcount |
int | selchildmat |
ivec | lu |
int | lusize |
cubeworld | rootworld |
Objects representing the octree and its manipulation methods.
This file describes objects that build the octal tree structure of the world (a cubeworld
containing cube
objects) as well as convenient representations of selections of cubes (in a Cartesian sense) that allow simpler reasoning about spatial relationships between nodes.
#define DIM_COORD | ( | orient | ) |
#define DIMENSION | ( | orient | ) |
#define LOOP_SEL_XYZ | ( | f | ) |
#define LOOP_XY | ( | b | ) |
#define LOOP_XYZ | ( | b, | |
r, | |||
f ) |
#define PROTECT_SEL | ( | f | ) |
|
constexpr |
internal engine data for the cube object, not accessible via external API all edges in the range (0,0)
|
constexpr |
all edges in the range (0,8)