#include "MRMeshFwd.h"
#include "MRAffineXf.h"
#include "MRId.h"
Go to the source code of this file.
|
#define | MR_VECTOR_CONCAT(a, b) MR_VECTOR_CONCAT_( a, b ) |
| concat tokens
|
|
#define | MR_VECTOR_CONCAT_(a, b) a ## b |
|
#define | MR_VECTOR_LIKE_DECL_NONS(ClassName, Type) |
|
#define | MR_VECTOR_LIKE_DECL(ClassName, Type) MR_VECTOR_LIKE_DECL_NONS( ClassName, MR_VECTOR_CONCAT( MR, Type ) ) |
|
#define | MR_VECTOR_DECL(Type) MR_VECTOR_LIKE_DECL_NONS( MR_VECTOR_CONCAT( Vector, Type ), MR_VECTOR_CONCAT( MR, Type ) ) |
|
◆ MR_VECTOR_CONCAT
◆ MR_VECTOR_CONCAT_
#define MR_VECTOR_CONCAT_ |
( |
| a, |
|
|
| b ) a ## b |
◆ MR_VECTOR_DECL
◆ MR_VECTOR_LIKE_DECL
◆ MR_VECTOR_LIKE_DECL_NONS
#define MR_VECTOR_LIKE_DECL_NONS |
( |
| ClassName, |
|
|
| Type ) |
Value:
{ \
Type* data; \
size_t size; \
void* reserved1; \
#define MRMESHC_API
Definition MRMeshC/MRMeshFwd.h:19
#define MR_VECTOR_CONCAT(a, b)
concat tokens
Definition MRMeshC/MRVector.h:10
Definition MRCameraOrientationPlugin.h:8
To simplify access to C++ array containers (aka std::vector), we use std::span-like structs to store a pointer to data and array length. There are two important notes about using these structs:
- if a function returns a pointer to a vector-like struct, you must call mrVector*Free function to deallocate it manually
- if any operation resizes the underlying vector, the data pointer might be invalidated; it's better to call mrVector*Invalidate to update the pointer after any operation with the vector