BrepModel
The BrepModel class represents a GPU-accelerated representation of brep geometry, supporting efficient rendering, material mapping, and geometric analysis. It enables loading or creation of models from brep data with configurable flags for buffer types, material generation, and curve/surface degree limitations.
#include <graphics/TellusimBrepModel.h>
Constructors
BrepModel()
Methods
Clear model.
void clear()
Check model.
bool isCreated() const
Model flags.
Flags getFlags() const
bool hasFlag(Flags flags) const
bool hasFlags(Flags flags) const
Load model.
bool load(const Device &device, const char *name, Flags flags = DefaultFlags, Async *async = nullptr)
bool load(const Device &device, Stream &stream, Flags flags = DefaultFlags, Async *async = nullptr)
Create model.
bool create(const Device &device, const Brep &brep, Flags flags = DefaultFlags)
bool create(const Device &device, const BrepGeometry &geometry, Flags flags = DefaultFlags)
bool create(const Device &device, Array<BrepGeometry> geometries, Flags flags = DefaultFlags)
Set model buffers.
void setBuffers(Command &command, uint32_t index = 0, const Pipeline *pipeline = nullptr) const
Vertices buffer.
uint32_t getNumVertices() const
Buffer getVertexBuffer() const
Texture getVertexTexture() const
Indices buffer.
uint32_t getNumIndices() const
Buffer getIndexBuffer() const
Texture getIndexTexture() const
Ranges buffer.
uint32_t getNumRanges() const
Buffer getRangeBuffer() const
Texture getRangeTexture() const
Faces buffer.
uint32_t getNumPrimitives() const
Buffer getFaceBuffer() const
Texture getFaceTexture() const
Primitives parameters.
Type getPrimitiveFace(uint32_t index) const
uint32_t getPrimitiveIndex(uint32_t index) const
uint32_t getPrimitiveGeometry(uint32_t index) const
uint32_t getPrimitiveMaterial(uint32_t index) const
Primitive masks.
uint32_t getBaseFaceMask() const
uint32_t getWrapFaceMask() const
bool hasBaseFace(Type face) const
bool hasWrapFace(Type face) const
bool hasFace(Type face, bool wrap) const
Geometries.
uint32_t getNumGeometries() const
uint32_t getNumGeometryBaseIndices(uint32_t geometry, Type face) const
uint32_t getNumGeometryWrapIndices(uint32_t geometry, Type face) const
uint32_t getNumGeometryIndices(uint32_t geometry, Type face, bool wrap) const
uint32_t getGeometryBaseIndex(uint32_t geometry, Type face) const
uint32_t getGeometryWrapIndex(uint32_t geometry, Type face) const
uint32_t getGeometryIndex(uint32_t geometry, Type face, bool wrap) const
Geometry materials.
uint32_t getNumMaterials(uint32_t geometry) const
uint32_t getNumMaterialBaseIndices(uint32_t geometry, uint32_t material, Type face) const
uint32_t getNumMaterialWrapIndices(uint32_t geometry, uint32_t material, Type face) const
uint32_t getNumMaterialIndices(uint32_t geometry, uint32_t material, Type face, bool wrap) const
uint32_t getMaterialBaseIndex(uint32_t geometry, uint32_t material, Type face) const
uint32_t getMaterialWrapIndex(uint32_t geometry, uint32_t material, Type face) const
uint32_t getMaterialIndex(uint32_t geometry, uint32_t material, Type face, bool wrap) const
Memory usage.
size_t getMemory() const
Types
using Face = BrepFace::Type
Enums
Flags
Model flags.
Name | Value | Description |
---|---|---|
FlagNone | 0 | |
FlagVerbose | (1 << 0) | Verbose creation. |
FlagCurve2 | (1 << 1) | Maximum curve degree is 2. |
FlagSurface2 | (1 << 2) | Maximum surface degree is 2. |
FlagMaterials | (1 << 3) | Create materials. |
FlagBufferTexture | (1 << 4) | Create texture buffers. |
FlagBufferStorage | (1 << 5) | Create storage buffers. |
FlagBufferTracing | (1 << 6) | Create tracing buffers. |
FlagBufferAddress | (1 << 7) | Create address buffers. |
FlagBufferTexel | (1 << 8) | Create texel buffers. |
DefaultFlags | (FlagVerbose | FlagMaterials | FlagBufferStorage) | |
NumFlags | 9 |
Structs
FaceParameters
.
Variables
Type | Name | Description |
---|---|---|
Matrix4x3f | transform | Face transform. |
Matrix4x3f | itransform | Face inverse transform. |
Vector3f | bound_min | Bound minimum. |
float32_t | brep_winding | Brep winding. |
Vector3f | bound_max | Bound maximum. |
float32_t | face_winding | Face winding. |
Color | color | Face color. |
Vector4u | curves | Face curves (linear begin, quadratic begin, cubic begin, cubic end). |
Vector4f | range_x | Pcoord range x (min, max, range index, range size). |
Vector4f | range_y | Pcoord range y (min, max, range index, range size). |