Skip to main content

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

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

NameValueDescription
FlagNone0
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)
NumFlags6