VoxelFarm::Architecture Namespace Reference

Contains classes, functions and structs for the architecture system. More...

Classes

struct  ArchitectureThreadContext
 A thread context for the archicteture system. A single instance of the architecture system can be shared between different threads. This struct contains data that is used within each thread. More...
 
class  CAction
 Defines a single action and its parameters. More...
 
class  CArchitectureManager
 Architecture system. It keeps a list of entities, their classes and the mesh instances they have produced. It produces voxel data. More...
 
class  CArchitectureMesh
 This class allows to access meshes in a list of instances. More...
 
class  CBoxLoftVolume
 Defines a box loft primitive. More...
 
class  CBoxVolume
 Defines a box primitive. More...
 
class  CDebugInfo
 Debug information. More...
 
class  CEvaluator
 This object can be used to evaluate a grammar. More...
 
class  CGrammar
 A grammar is a collection of programs. More...
 
class  CModule
 Defines a program. More...
 
class  CNGonLoftVolume
 Defines a ngon loft primitive. More...
 
class  CNGonVolume
 Defines a ngon primitive. More...
 
class  CNode
 Defines a node in the program tree. More...
 
struct  CPaletteDesc
 A palette of materials definition for the VoxelFarm.com engine. More...
 
class  CPaletteDescLibrary
 Contains all palette descriptions available in the system. More...
 
struct  CPrefabDesc
 A prefab definition for the VoxelFarm.com engine. More...
 
class  CPrefabDescLibrary
 Contains all prefab descriptions available in the system. More...
 
class  CRule
 Encapsulates a series of actions to be performed over a node. This is equivalent to a "module" statement in the language. More...
 
class  CScope
 Defines a scope object. More...
 
struct  Entity
 An Entity is an unique architecture element. The entity struct tracks the location and type of the entity, along with some other data. More...
 
struct  GenerationRequest
 Tracks a generation request for an entity. More...
 
class  IDebugger
 
class  IEntityGenerator
 This interface allows the architecture engine to delegate the creation of entities to the application level. More...
 
class  IInstanceCreator
 This interfaces allows the grammar evaluator to delegate creation of instances. More...
 
struct  InstancedMesh
 Tracks a single instance of a mesh. An architecture entity will be composed of many mesh instances. More...
 
struct  RayIntersection
 A record used to create intersection lists during the voxelization process. More...
 
struct  RayIntersectionList
 An intersection list produced during the voxelization process. More...
 
struct  RayTest
 A record that tracks intersection points along one ray. More...
 
class  SnapPlane
 Contains four co-planar 3D points that define a snap plane. More...
 

Typedefs

typedef TVector< InstancedMesh * > InstanceArray
 A list of instances.
 
typedef RTree< InstancedMesh *, double, 3, double, 32 > InstanceIndex
 An RTree index to accelerate spatial instance queries.
 
typedef TVector< Entity * > EntityArray
 A list of entities.
 
typedef RTree< Entity *, double, 3, double, 32 > EntityIndex
 RTree index to speed up spacial queries for entities.
 
typedef void CreateInstance(String id, Algebra::Matrix &matrix, Algebra::Vector &size, ScopeType scopeType, String material)
 A callback to request the creation of an instance. The IInstanceCreator interface provides an alternative to this callback.
 
typedef RTree< CNode *, float, 3, float, 20 > OccluderIndex
 RTree to accelerate occlussion test.
 

Enumerations

enum  PaletteType { PT_NONE, PT_DEFAULT, PT_ERASE, PT_PALETTE }
 Type of palette of materials when collecting instances. More...
 
enum  ActionType {
  ACTION_VAR, ACTION_SNAP, ACTION_MOVE, ACTION_ROTATE,
  ACTION_SCALE, ACTION_CENTER_PIVOT, ACTION_RESET_PIVOT, ACTION_ALIGN,
  ACTION_ROTATEX, ACTION_ROTATEY, ACTION_ROTATEZ, ACTION_OCCLUDE,
  ACTION_LOCAL, ACTION_BOX, ACTION_NGON, ACTION_LOFT_BOX,
  ACTION_LOFT_NGON, ACTION_PRISM, ACTION_ROOF, ACTION_CALL,
  ACTION_DEFER, ACTION_SELECT, ACTION_INSTANCE, ACTION_DIVIDE,
  ACTION_REPEAT, ACTION_PUSH, ACTION_POP, ACTION_MATERIAL
}
 Enumerates instructions for the grammar virtual machine.
 
enum  NodeType {
  NODE_ROOT, NODE_NULL, NODE_VOLUME, NODE_FACE,
  NODE_EDGE, NODE_POINT
}
 Enumerates node types for a grammar program.
 
enum  ScopeType { SCOPE_BOX, SCOPE_PRISM, SCOPE_PRISM_LEFT, SCOPE_PRISM_RIGHT }
 Enumerates possible scope types.
 
enum  DebugAction { DEBUG_RUN, DEBUG_STOP, DEBUG_STEP, DEBUG_INSTANCE }
 

Functions

CFastQuadricsloadMesh (char *filename)
 Loads a mesh from a file (*.dat)
 
void updateScope (CNode *node, VoxelFarm::Algebra::Matrix *matrix, bool useCache=false)
 

Variables

const int MASTER_ARCH_GENERATION_LEVEL = 12
 Octree level at which architecture is generated.
 
const int ARCH_MAX_LEVEL = 9
 Max Octree level at which architecture is voxelized and returned for contouring.
 
const unsigned int MAX_INTERSECTIONS = 40*BLOCK_SIZE*BLOCK_SIZE*BLOCK_SIZE
 Limit for the intersections to be tracked during voxelization.
 
const unsigned int MAX_TEST_INTERSECTIONS = 0x7FFFF
 Limit for the intersections to be tracked along one ray.
 

Detailed Description

Contains classes, functions and structs for the architecture system.

Enumeration Type Documentation

Type of palette of materials when collecting instances.

Enumerator
PT_NONE 

do not use a palette...take the material from the entity material list

PT_DEFAULT 

take as material the user material in use

PT_ERASE 

set material to 0 for deleting with the instance

PT_PALETTE 

choose the material from a palette of materials

Definition at line 32 of file ArchitectureManager.h.