Inviwo 0.9.12-pre
Inviwo documentation
|
Classes | |
struct | BufferInfo |
struct | MeshInfo |
Public Types | |
using | IndexVector = std::vector<std::pair<MeshInfo, std::shared_ptr<IndexBuffer>>> |
using | BufferVector = std::vector<std::pair<BufferInfo, std::shared_ptr<BufferBase>>> |
Public Types inherited from inviwo::DataGroup< Mesh, MeshRepresentation > | |
using | self |
using | repr |
Public Member Functions | |
Mesh (DrawType dt, ConnectivityType ct) | |
Mesh (Mesh::MeshInfo meshInfo) | |
Mesh (const BufferVector &buffers, const IndexVector &indices) | |
Mesh (const Mesh &rhs) | |
Mesh (const Mesh &rhs, NoData) | |
Mesh & | operator= (const Mesh &that) |
virtual Mesh * | clone () const override |
virtual Document | getInfo () const |
void | addBuffer (BufferInfo info, std::shared_ptr< BufferBase > buffer) |
void | addBuffer (BufferType type, std::shared_ptr< BufferBase > buffer) |
void | addBuffers (const BufferVector &buffers) |
std::pair< BufferInfo, std::shared_ptr< BufferBase > > | removeBuffer (size_t idx) |
std::pair< BufferInfo, std::shared_ptr< BufferBase > > | removeBuffer (BufferBase *buffer) |
std::pair< BufferInfo, std::shared_ptr< BufferBase > > | replaceBuffer (size_t idx, BufferInfo info, std::shared_ptr< BufferBase > buffer) |
std::pair< BufferInfo, std::shared_ptr< BufferBase > > | replaceBuffer (BufferBase *old, BufferInfo info, std::shared_ptr< BufferBase > buffer) |
void | setBuffer (size_t idx, BufferInfo info, std::shared_ptr< BufferBase > buffer) |
void | addIndices (MeshInfo info, std::shared_ptr< IndexBuffer > ind) |
void | addIndices (const IndexVector &indices) |
void | addIndicies (MeshInfo info, std::shared_ptr< IndexBuffer > ind) |
std::shared_ptr< IndexBufferRAM > | addIndexBuffer (DrawType dt, ConnectivityType ct) |
void | removeIndexBuffer (size_t idx) |
void | reserveSizeInVertexBuffer (size_t size) |
void | reserveIndexBuffers (size_t size) |
const BufferVector & | getBuffers () const |
const IndexVector & | getIndexBuffers () const |
const BufferBase * | getBuffer (size_t idx) const |
BufferInfo | getBufferInfo (size_t idx) const |
BufferInfo | getBufferInfo (BufferBase *buffer) const |
void | setBufferInfo (size_t idx, BufferInfo info) |
void | setBufferInfo (BufferBase *buffer, BufferInfo info) |
const IndexBuffer * | getIndices (size_t idx) const |
std::pair< const BufferBase *, int > | findBuffer (BufferType type) const |
std::pair< BufferBase *, int > | findBuffer (BufferType type) |
bool | hasBuffer (BufferType type) const |
BufferBase * | getBuffer (size_t idx) |
BufferBase * | getBuffer (BufferType type) |
IndexBuffer * | getIndices (size_t idx) |
MeshInfo | getDefaultMeshInfo () const |
MeshInfo | getIndexMeshInfo (size_t idx) const |
size_t | getNumberOfBuffers () const |
size_t | getNumberOfIndicies () const |
void | append (const Mesh &mesh) |
Append another mesh to this mesh. | |
virtual const Axis * | getAxis (size_t index) const override |
Public Member Functions inherited from inviwo::DataGroup< Mesh, MeshRepresentation > | |
const T * | getRepresentation () const |
T * | getEditableRepresentation () |
bool | hasRepresentation () const |
bool | hasRepresentations () const |
void | clearRepresentations () |
Public Member Functions inherited from inviwo::SpatialEntity | |
SpatialEntity (const glm::mat4 &modelMatrix) | |
SpatialEntity (const glm::mat4 &modelMatrix, const glm::mat4 &worldMatrix) | |
SpatialEntity (const SpatialEntity &rhs) | |
SpatialEntity & | operator= (const SpatialEntity &that) |
glm::vec3 | getOffset () const |
void | setOffset (const glm::vec3 &offset) |
glm::mat3 | getBasis () const |
void | setBasis (const glm::mat3 &basis) |
glm::mat4 | getModelMatrix () const |
void | setModelMatrix (const glm::mat4 &modelMatrix) |
glm::mat4 | getWorldMatrix () const |
void | setWorldMatrix (const glm::mat4 &worldMatrix) |
virtual const SpatialCoordinateTransformer & | getCoordinateTransformer () const |
virtual const SpatialCameraCoordinateTransformer & | getCoordinateTransformer (const Camera &camera) const |
Public Member Functions inherited from inviwo::MetaDataOwner | |
MetaDataOwner (const MetaDataOwner &rhs)=default | |
MetaDataOwner (MetaDataOwner &rhs)=default | |
MetaDataOwner & | operator= (const MetaDataOwner &rhs)=default |
MetaDataOwner & | operator= (MetaDataOwner &)=default |
void | copyMetaDataFrom (const MetaDataOwner &src) |
void | copyMetaDataTo (MetaDataOwner &dst) |
template<typename T > requires std::derived_from<T, MetaData> | |
T * | createMetaData (std::string_view key) |
template<typename T , typename U > requires std::derived_from<T, MetaData> && Settable<T, U> | |
void | setMetaData (std::string_view key, U value) |
template<typename T > requires std::derived_from<T, MetaData> | |
bool | unsetMetaData (std::string_view key) |
unset, i.e. remove the metadata entry matching the given key and type | |
template<typename T , typename U > requires std::derived_from<T, MetaData> && Gettable<T, U> | |
U | getMetaData (std::string_view key, U val) const |
template<typename T > requires std::derived_from<T, MetaData> | |
T * | getMetaData (std::string_view key) |
template<typename T > requires std::derived_from<T, MetaData> | |
const T * | getMetaData (std::string_view key) const |
MetaDataMap * | getMetaDataMap () |
const MetaDataMap * | getMetaDataMap () const |
bool | hasMetaData (std::string_view key) const |
template<typename T > requires std::derived_from<T, MetaData> | |
bool | hasMetaData (std::string_view key) const |
void | serialize (Serializer &s) const |
void | deserialize (Deserializer &d) |
Public Attributes | |
std::array< Axis, 3 > | axes |
Static Public Attributes | |
static uvec3 | colorCode |
static const std::string | classIdentifier |
static const std::string | dataName |
Protected Attributes | |
BufferVector | buffers_ |
IndexVector | indices_ |
MeshInfo | meshInfo_ |
Protected Attributes inherited from inviwo::DataGroup< Mesh, MeshRepresentation > | |
std::mutex | mutex_ |
std::unordered_map< std::type_index, std::shared_ptr< MeshRepresentation > > | representations_ |
Protected Attributes inherited from inviwo::SpatialEntity | |
std::unique_ptr< SpatialCoordinateTransformer > | transformer_ |
std::unique_ptr< SpatialCameraCoordinateTransformer > | cameraTransformer_ |
glm::mat4 | modelMatrix_ |
glm::mat4 | worldMatrix_ |
Protected Attributes inherited from inviwo::MetaDataOwner | |
MetaDataMap | metaData_ |
Additional Inherited Members | |
Protected Member Functions inherited from inviwo::DataGroup< Mesh, MeshRepresentation > | |
DataGroup (const DataGroup< Mesh, MeshRepresentation > &rhs) | |
DataGroup< Mesh, MeshRepresentation > & | operator= (const DataGroup< Mesh, MeshRepresentation > &rhs) |
void inviwo::Mesh::addBuffer | ( | BufferInfo | info, |
std::shared_ptr< BufferBase > | buffer ) |
Add a buffer with rendering data, such as positions/colors/normals.
info | information about the buffer contents (e.g. buffer type and attrib location) |
buffer | buffer data used during rendering |
void inviwo::Mesh::addBuffer | ( | BufferType | type, |
std::shared_ptr< BufferBase > | buffer ) |
Add a buffer with rendering data, such as positions/colors/normals, and associate it with its default attrib location.
type | buffer type (Position, Color, Normal, etc.) |
buffer | buffer data used during rendering |
void inviwo::Mesh::addBuffers | ( | const BufferVector & | buffers | ) |
Add multiple buffers
with rendering data, such as positions/colors/normals.
buffers | buffer data and their associated buffer infos |
std::shared_ptr< IndexBufferRAM > inviwo::Mesh::addIndexBuffer | ( | DrawType | dt, |
ConnectivityType | ct ) |
Creates and add a new index buffer to the mesh
dt | DrawType of the new buffer |
ct | ConnectivityType of the new buffer |
void inviwo::Mesh::addIndices | ( | const IndexVector & | indices | ) |
Add multiple index buffers indices
to the mesh.
indices | index buffers and their associated mesh infos |
void inviwo::Mesh::addIndices | ( | MeshInfo | info, |
std::shared_ptr< IndexBuffer > | ind ) |
Add index buffer. The indices will be used as look up values into the buffers during rendering. The Mesh will take ownership of the added buffer.
info | Rendering type and connectivity. |
ind | Index buffer, will be owned by mesh. |
void inviwo::Mesh::append | ( | const Mesh & | mesh | ) |
Append another mesh to this mesh.
Requires that both meshes has the same type and number of vertex buffers. Will append the contents of each vertex buffer in mesh to each vertex in this. Index buffers are copied and each index is incremented with an offset.
mesh | The mesh to copy values from |
|
overridevirtual |
Implements inviwo::DataGroup< Mesh, MeshRepresentation >.
std::pair< BufferBase *, int > inviwo::Mesh::findBuffer | ( | BufferType | type | ) |
Try and find a buffer of the given BufferType. Returns the buffer and its location. If no buffer is found the buffer will be a nullptr.
std::pair< const BufferBase *, int > inviwo::Mesh::findBuffer | ( | BufferType | type | ) | const |
Try and find a buffer of the given BufferType. Returns the buffer and its location. If no buffer is found the buffer will be a nullptr.
|
overridevirtual |
returns the axis information corresponding to index
index
Implements inviwo::SpatialEntity.
BufferBase * inviwo::Mesh::getBuffer | ( | BufferType | type | ) |
bool inviwo::Mesh::hasBuffer | ( | BufferType | type | ) | const |
Check if there exits a buffer of BufferType type in the mesh.
std::pair< BufferInfo, std::shared_ptr< BufferBase > > inviwo::Mesh::removeBuffer | ( | BufferBase * | buffer | ) |
Removes the given buffer.
buffer | position of buffer to be removed |
std::pair< BufferInfo, std::shared_ptr< BufferBase > > inviwo::Mesh::removeBuffer | ( | size_t | idx | ) |
Removes buffer at given position, all subsequent buffers will be moved. Does nothing if index is out of range.
idx | position of buffer to be removed |
void inviwo::Mesh::removeIndexBuffer | ( | size_t | idx | ) |
Removes index buffer at given position, all subsequent index buffers will be moved. Does nothing if index is out of range.
idx | position of index buffer to be removed |
std::pair< BufferInfo, std::shared_ptr< BufferBase > > inviwo::Mesh::replaceBuffer | ( | BufferBase * | old, |
BufferInfo | info, | ||
std::shared_ptr< BufferBase > | buffer ) |
Replaces the old buffer old
with the new buffer buffer
old | Old buffer to replace. If old is not found the buffer is appended. |
info | information about the buffer contents (e.g. buffer type and shader location) |
buffer | new buffer data used during rendering |
std::pair< BufferInfo, std::shared_ptr< BufferBase > > inviwo::Mesh::replaceBuffer | ( | size_t | idx, |
BufferInfo | info, | ||
std::shared_ptr< BufferBase > | buffer ) |
Replaces buffer at index with new buffer Does nothing if index out of range.
idx | Index of buffer to replace, if the index is not found the new one is appended. |
info | information about the buffer contents (e.g. buffer type and shader location) |
buffer | new buffer data used during rendering |
void inviwo::Mesh::reserveIndexBuffers | ( | size_t | size | ) |
Reserve memory for a given number of index buffers. Useful when having a mesh on which we will add a lot of index buffers
size | the new reserved size of the vector containing index buffers |
void inviwo::Mesh::reserveSizeInVertexBuffer | ( | size_t | size | ) |
Reserve memory for a given number of vertices in each buffer.
size | number of elements that will be reserved in each buffer |
void inviwo::Mesh::setBuffer | ( | size_t | idx, |
BufferInfo | info, | ||
std::shared_ptr< BufferBase > | buffer ) |
Deprecated: Mesh::setBuffer() has been renamed to Mesh::replaceBuffer()
idx | Index of buffer to replace |
info | information about the buffer contents (e.g. buffer type and shader location) |
buffer | new buffer data used during rendering |