ObjectBrep
The ObjectBrep class provides brep-based geometry support to Object.
It manages vertex, index, range, and face buffers and offers methods to efficiently load geometry from breps.
Geometry can be loaded from brep files or embedded within *.scene files.
#include <scene/TellusimObjectBrep.h>
Inheritance
- Inherits from Object
Constructors
explicit ObjectBrep(const char *name = nullptr)
explicit ObjectBrep(Scene &scene, const char *name = nullptr)
Methods
Object flags.
void setFlags(Flags flags)
Flags getFlags() const
bool hasFlag(Flags flags) const
bool hasFlags(Flags flags) const
String getFlagsName() const
Brep file name.
void setBrepName(const char *name)
void setBrepName(const String &name)
String getBrepName() const
Brep file scale.
void setBrepScale(float32_t scale)
float32_t getBrepScale() const
Brep file basis.
void setBrepBasis(Basis basis)
Basis getBrepBasis() const
Create brep materials.
static void createMaterials(Array<BrepMaterial> brep_materials, Material *material, Materials &materials, Flags flags, Async *async = nullptr, const Archive *archive = nullptr)
static void createMaterials(Array<BrepMaterial> brep_materials, const MaterialCallback &material_func, Materials &materials, Flags flags, Async *async = nullptr, const Archive *archive = nullptr)
Load object with a single parent material.
bool load(const char *name, Material *material, Flags flags, float32_t scale, Basis basis, Async *async = nullptr)
bool load(const String &name, Material *material, Flags flags, float32_t scale, Basis basis, Async *async = nullptr)
bool load(Stream &stream, Material *material, Flags flags, float32_t scale, Basis basis, Async *async = nullptr)
bool load(const char *name, Material *material = nullptr, Flags flags = DefaultFlags, Async *async = nullptr)
bool load(const String &name, Material *material = nullptr, Flags flags = DefaultFlags, Async *async = nullptr)
bool load(Stream &stream, Material *material = nullptr, Flags flags = DefaultFlags, Async *async = nullptr)
Load object with parent material callback.
bool load(const char *name, const MaterialCallback &material_func, Flags flags, float32_t scale, Basis basis, Async *async = nullptr)
bool load(const String &name, const MaterialCallback &material_func, Flags flags, float32_t scale, Basis basis, Async *async = nullptr)
bool load(Stream &stream, const MaterialCallback &material_func, Flags flags, float32_t scale, Basis basis, Async *async = nullptr)
bool load(const char *name, const MaterialCallback &material_func, Flags flags = DefaultFlags, Async *async = nullptr)
bool load(const String &name, const MaterialCallback &material_func, Flags flags = DefaultFlags, Async *async = nullptr)
bool load(Stream &stream, const MaterialCallback &material_func, Flags flags = DefaultFlags, Async *async = nullptr)
Create object with a single parent material.
bool create(const BrepGeometry &geometry, Material *material = nullptr, Flags flags = DefaultFlags)
bool create(Array<BrepGeometry> geometries, Material *material = nullptr, Flags flags = DefaultFlags)
bool create(const Brep &brep, Material *material = nullptr, Flags flags = DefaultFlags)
Create object with parent material callback.
bool create(const BrepGeometry &geometry, const MaterialCallback &material_func, Flags flags = DefaultFlags)
bool create(Array<BrepGeometry> geometries, const MaterialCallback &material_func, Flags flags = DefaultFlags)
bool create(const Brep &brep, const MaterialCallback &material_func, Flags flags = DefaultFlags)
Create object with specified materials.
bool create(const BrepGeometry &geometry, Material *material, const Materials &materials, Flags flags = DefaultFlags)
bool create(Array<BrepGeometry> geometries, Material *material, const Materials &materials, Flags flags = DefaultFlags)
bool create(const Brep &brep, Material *material, const Materials &materials, Flags flags = DefaultFlags)
Load object geometries.
bool loadGeometries(const char *name, Async *async = nullptr)
bool loadGeometries(const String &name, Async *async = nullptr)
bool loadGeometries(Stream &stream, Async *async = nullptr)
Create object geometries.
bool createGeometries(Array<BrepGeometry> geometries)
bool createGeometries(const Brep &brep)
Vertices data.
void setVertexData(const void *src, size_t size)
void setVertexBuffer(Buffer &buffer, size_t offset, size_t size)
const void *getVertexData() const
Buffer getVertexBuffer() const
size_t getVertexOffset() const
size_t getVertexSize() const
Indices data.
void setIndexData(const void *src, size_t size)
void setIndexBuffer(Buffer &buffer, size_t offset, size_t size)
const void *getIndexData() const
Buffer getIndexBuffer() const
size_t getIndexOffset() const
size_t getIndexSize() const
Ranges data.
void setRangeData(const void *src, size_t size)
void setRangeBuffer(Buffer &buffer, size_t offset, size_t size)
const void *getRangeData() const
Buffer getRangeBuffer() const
size_t getRangeOffset() const
size_t getRangeSize() const
Faces data.
void setFaceData(const void *src, size_t size)
void setFaceBuffer(Buffer &buffer, size_t offset, size_t size)
const void *getFaceData() const
Buffer getFaceBuffer() const
size_t getFaceOffset() const
size_t getFaceSize() const
Types
using Materials = Map<BrepMaterial, Material>
using MaterialCallback = Function<Material(BrepMaterial material)>
Enums
Flags
| Name | Value | Description |
|---|---|---|
| FlagNone | 0 | |
| FlagUpdate | (1 << 0) | Update scene. |
| FlagVerbose | (1 << 1) | Verbose creation. |
| FlagMaterials | (1 << 2) | Create materials. |
| FlagTracing | (1 << 3) | Create tracing. |
| FlagCurve2 | (1 << 4) | Maximum curve degree is 2. |
| FlagSurface2 | (1 << 5) | Maximum surface degree is 2. |
| DefaultFlags | (FlagUpdate) | |
| NumFlags | 6 |