Blender  V3.3
Classes | Macros | Typedefs | Enumerations | Functions
bmesh_class.h File Reference
#include "BLI_assert.h"

Go to the source code of this file.

Classes

struct  BMHeader
 
struct  BMVert
 
struct  BMVert_OFlag
 
struct  BMDiskLink
 
struct  BMEdge
 
struct  BMEdge_OFlag
 
struct  BMLoop
 
struct  BMElemF
 
struct  BMElem
 
struct  BMFace
 
struct  BMFace_OFlag
 
struct  BMFlagLayer
 
struct  BMesh
 
struct  BMLoopNorEditData
 
struct  BMLoopNorEditDataArray
 

Macros

#define BM_ALL   (BM_VERT | BM_EDGE | BM_LOOP | BM_FACE)
 
#define BM_ALL_NOLOOP   (BM_VERT | BM_EDGE | BM_FACE)
 
#define _BM_GENERIC_TYPE_ELEM_NONCONST
 
#define _BM_GENERIC_TYPE_ELEM_CONST
 
#define BM_CHECK_TYPE_ELEM_CONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPES_CONST)
 
#define BM_CHECK_TYPE_ELEM_NONCONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)
 
#define BM_CHECK_TYPE_ELEM(ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST, _BM_GENERIC_TYPE_ELEM_CONST)
 
#define _BM_GENERIC_TYPE_VERT_NONCONST   BMVert *, BMVert_OFlag *
 
#define _BM_GENERIC_TYPE_VERT_CONST   const BMVert *, const BMVert_OFlag *
 
#define BM_CHECK_TYPE_VERT_CONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_VERT_CONST)
 
#define BM_CHECK_TYPE_VERT_NONCONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)
 
#define BM_CHECK_TYPE_VERT(ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_VERT_NONCONST, _BM_GENERIC_TYPE_VERT_CONST)
 
#define _BM_GENERIC_TYPE_EDGE_NONCONST   BMEdge *, BMEdge_OFlag *
 
#define _BM_GENERIC_TYPE_EDGE_CONST   const BMEdge *, const BMEdge_OFlag *
 
#define BM_CHECK_TYPE_EDGE_CONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_EDGE_CONST)
 
#define BM_CHECK_TYPE_EDGE_NONCONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)
 
#define BM_CHECK_TYPE_EDGE(ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_EDGE_NONCONST, _BM_GENERIC_TYPE_EDGE_CONST)
 
#define _BM_GENERIC_TYPE_FACE_NONCONST   BMFace *, BMFace_OFlag *
 
#define _BM_GENERIC_TYPE_FACE_CONST   const BMFace *, const BMFace_OFlag *
 
#define BM_CHECK_TYPE_FACE_CONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_FACE_CONST)
 
#define BM_CHECK_TYPE_FACE_NONCONST(ele)   CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)
 
#define BM_CHECK_TYPE_FACE(ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_FACE_NONCONST, _BM_GENERIC_TYPE_FACE_CONST)
 
#define BM_CHECK_TYPE_ELEM_ASSIGN(ele)   (BM_CHECK_TYPE_ELEM(ele)), ele
 
#define BM_ELEM_CD_SET_INT(ele, offset, f)
 
#define BM_ELEM_CD_GET_INT(ele, offset)    (BLI_assert(offset != -1), *((int *)((char *)(ele)->head.data + (offset))))
 
#define BM_ELEM_CD_SET_BOOL(ele, offset, f)
 
#define BM_ELEM_CD_GET_BOOL(ele, offset)    (BLI_assert(offset != -1), *((bool *)((char *)(ele)->head.data + (offset))))
 
#define BM_ELEM_CD_GET_VOID_P(ele, offset)    (BLI_assert(offset != -1), (void *)((char *)(ele)->head.data + (offset)))
 
#define BM_ELEM_CD_SET_FLOAT(ele, offset, f)
 
#define BM_ELEM_CD_GET_FLOAT(ele, offset)    (BLI_assert(offset != -1), *((float *)((char *)(ele)->head.data + (offset))))
 
#define BM_ELEM_CD_GET_FLOAT_P(ele, offset)    (BLI_assert(offset != -1), (float *)((char *)(ele)->head.data + (offset)))
 
#define BM_ELEM_CD_GET_FLOAT2_P(ele, offset)    (BLI_assert(offset != -1), (float(*)[2])((char *)(ele)->head.data + (offset)))
 
#define BM_ELEM_CD_GET_FLOAT3_P(ele, offset)    (BLI_assert(offset != -1), (float(*)[3])((char *)(ele)->head.data + (offset)))
 
#define BM_ELEM_CD_SET_FLOAT2(ele, offset, f)
 
#define BM_ELEM_CD_SET_FLOAT3(ele, offset, f)
 
#define BM_ELEM_CD_GET_FLOAT_AS_UCHAR(ele, offset)    (BLI_assert(offset != -1), (uchar)(BM_ELEM_CD_GET_FLOAT(ele, offset) * 255.0f))
 
#define BM_FACE_FIRST_LOOP(p)   ((p)->l_first)
 
#define BM_DISK_EDGE_NEXT(e, v)
 
#define BM_DISK_EDGE_PREV(e, v)
 
#define BM_DEFAULT_NGON_STACK_SIZE   32
 
#define BM_DEFAULT_ITER_STACK_SIZE   16
 
#define BM_LOOP_RADIAL_MAX   10000
 
#define BM_NGON_MAX   100000
 
#define BM_OMP_LIMIT   10000
 

Typedefs

typedef struct BMHeader BMHeader
 
typedef struct BMVert BMVert
 
typedef struct BMVert_OFlag BMVert_OFlag
 
typedef struct BMDiskLink BMDiskLink
 
typedef struct BMEdge BMEdge
 
typedef struct BMEdge_OFlag BMEdge_OFlag
 
typedef struct BMLoop BMLoop
 
typedef struct BMElemF BMElemF
 
typedef struct BMElem BMElem
 
typedef struct BMFace BMFace
 
typedef struct BMFace_OFlag BMFace_OFlag
 
typedef struct BMFlagLayer BMFlagLayer
 
typedef struct BMesh BMesh
 
typedef struct BMLoopNorEditData BMLoopNorEditData
 
typedef struct BMLoopNorEditDataArray BMLoopNorEditDataArray
 
typedef bool(* BMElemFilterFunc) (const BMElem *, void *user_data)
 
typedef bool(* BMVertFilterFunc) (const BMVert *, void *user_data)
 
typedef bool(* BMEdgeFilterFunc) (const BMEdge *, void *user_data)
 
typedef bool(* BMFaceFilterFunc) (const BMFace *, void *user_data)
 
typedef bool(* BMLoopFilterFunc) (const BMLoop *, void *user_data)
 
typedef bool(* BMLoopPairFilterFunc) (const BMLoop *, const BMLoop *, void *user_data)
 

Enumerations

enum  { BM_VERT = 1 , BM_EDGE = 2 , BM_LOOP = 4 , BM_FACE = 8 }
 
enum  { BM_SPACEARR_DIRTY = 1 << 0 , BM_SPACEARR_DIRTY_ALL = 1 << 1 , BM_SPACEARR_BMO_SET = 1 << 2 }
 
enum  {
  BM_ELEM_SELECT = (1 << 0) , BM_ELEM_HIDDEN = (1 << 1) , BM_ELEM_SEAM = (1 << 2) , BM_ELEM_SMOOTH = (1 << 3) ,
  BM_ELEM_TAG = (1 << 4) , BM_ELEM_DRAW = (1 << 5) , BM_ELEM_TAG_ALT = (1 << 6) , BM_ELEM_INTERNAL_TAG = (1 << 7)
}
 

Functions

 BLI_STATIC_ASSERT ((sizeof(BMHeader)<=16), "BMHeader size has grown!")
 
void bpy_bm_generic_invalidate (struct BPy_BMGeneric *self)
 

Detailed Description

BMesh data structures, used for mesh editing operations that benefit from accessing connectivity information.

Definition in file bmesh_class.h.

Macro Definition Documentation

◆ _BM_GENERIC_TYPE_EDGE_CONST

#define _BM_GENERIC_TYPE_EDGE_CONST   const BMEdge *, const BMEdge_OFlag *

Definition at line 447 of file bmesh_class.h.

◆ _BM_GENERIC_TYPE_EDGE_NONCONST

#define _BM_GENERIC_TYPE_EDGE_NONCONST   BMEdge *, BMEdge_OFlag *

Definition at line 446 of file bmesh_class.h.

◆ _BM_GENERIC_TYPE_ELEM_CONST

#define _BM_GENERIC_TYPE_ELEM_CONST
Value:
const void *, const BMVert *, const BMEdge *, const BMLoop *, const BMFace *, \
const BMVert_OFlag *, const BMEdge_OFlag *, const BMFace_OFlag *, const BMElem *, \
const BMElemF *, const BMHeader *, void *const, BMVert *const, BMEdge *const, \
BMLoop *const, BMFace *const, BMElem *const, BMElemF *const, BMHeader *const

Definition at line 425 of file bmesh_class.h.

◆ _BM_GENERIC_TYPE_ELEM_NONCONST

#define _BM_GENERIC_TYPE_ELEM_NONCONST
Value:
BMElem *, BMElemF *, BMHeader *

Definition at line 421 of file bmesh_class.h.

◆ _BM_GENERIC_TYPE_FACE_CONST

#define _BM_GENERIC_TYPE_FACE_CONST   const BMFace *, const BMFace_OFlag *

Definition at line 454 of file bmesh_class.h.

◆ _BM_GENERIC_TYPE_FACE_NONCONST

#define _BM_GENERIC_TYPE_FACE_NONCONST   BMFace *, BMFace_OFlag *

Definition at line 453 of file bmesh_class.h.

◆ _BM_GENERIC_TYPE_VERT_CONST

#define _BM_GENERIC_TYPE_VERT_CONST   const BMVert *, const BMVert_OFlag *

Definition at line 440 of file bmesh_class.h.

◆ _BM_GENERIC_TYPE_VERT_NONCONST

#define _BM_GENERIC_TYPE_VERT_NONCONST   BMVert *, BMVert_OFlag *

Definition at line 439 of file bmesh_class.h.

◆ BM_ALL

#define BM_ALL   (BM_VERT | BM_EDGE | BM_LOOP | BM_FACE)

Definition at line 410 of file bmesh_class.h.

◆ BM_ALL_NOLOOP

#define BM_ALL_NOLOOP   (BM_VERT | BM_EDGE | BM_FACE)

Definition at line 411 of file bmesh_class.h.

◆ BM_CHECK_TYPE_EDGE

Definition at line 450 of file bmesh_class.h.

◆ BM_CHECK_TYPE_EDGE_CONST

#define BM_CHECK_TYPE_EDGE_CONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_EDGE_CONST)

Definition at line 448 of file bmesh_class.h.

◆ BM_CHECK_TYPE_EDGE_NONCONST

#define BM_CHECK_TYPE_EDGE_NONCONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)

Definition at line 449 of file bmesh_class.h.

◆ BM_CHECK_TYPE_ELEM

Definition at line 435 of file bmesh_class.h.

◆ BM_CHECK_TYPE_ELEM_ASSIGN

#define BM_CHECK_TYPE_ELEM_ASSIGN (   ele)    (BM_CHECK_TYPE_ELEM(ele)), ele

Definition at line 466 of file bmesh_class.h.

◆ BM_CHECK_TYPE_ELEM_CONST

#define BM_CHECK_TYPE_ELEM_CONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPES_CONST)

Definition at line 431 of file bmesh_class.h.

◆ BM_CHECK_TYPE_ELEM_NONCONST

#define BM_CHECK_TYPE_ELEM_NONCONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)

Definition at line 433 of file bmesh_class.h.

◆ BM_CHECK_TYPE_FACE

Definition at line 457 of file bmesh_class.h.

◆ BM_CHECK_TYPE_FACE_CONST

#define BM_CHECK_TYPE_FACE_CONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_FACE_CONST)

Definition at line 455 of file bmesh_class.h.

◆ BM_CHECK_TYPE_FACE_NONCONST

#define BM_CHECK_TYPE_FACE_NONCONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)

Definition at line 456 of file bmesh_class.h.

◆ BM_CHECK_TYPE_VERT

Definition at line 443 of file bmesh_class.h.

◆ BM_CHECK_TYPE_VERT_CONST

#define BM_CHECK_TYPE_VERT_CONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_VERT_CONST)

Definition at line 441 of file bmesh_class.h.

◆ BM_CHECK_TYPE_VERT_NONCONST

#define BM_CHECK_TYPE_VERT_NONCONST (   ele)    CHECK_TYPE_ANY(ele, _BM_GENERIC_TYPE_ELEM_NONCONST)

Definition at line 442 of file bmesh_class.h.

◆ BM_DEFAULT_ITER_STACK_SIZE

#define BM_DEFAULT_ITER_STACK_SIZE   16

size to use for stack arrays dealing with connected mesh data verts of faces, edges of vert - etc. often used with BM_iter_as_arrayN()

Definition at line 645 of file bmesh_class.h.

◆ BM_DEFAULT_NGON_STACK_SIZE

#define BM_DEFAULT_NGON_STACK_SIZE   32

size to use for stack arrays when dealing with NGons, alloc after this limit is reached. this value is rather arbitrary

Definition at line 640 of file bmesh_class.h.

◆ BM_DISK_EDGE_NEXT

#define BM_DISK_EDGE_NEXT (   e,
  v 
)
Value:
CHECK_TYPE_INLINE(v, BMVert *), \
BLI_assert(BM_vert_in_edge(e, v)), \
(((&e->v1_disk_link)[v == e->v2]).next))
#define CHECK_TYPE_INLINE(val, type)
BLI_INLINE bool BM_vert_in_edge(const BMEdge *e, const BMVert *v) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
ATTR_WARN_UNUSED_RESULT const BMVert const BMEdge * e
ATTR_WARN_UNUSED_RESULT const BMVert * v

Definition at line 625 of file bmesh_class.h.

◆ BM_DISK_EDGE_PREV

#define BM_DISK_EDGE_PREV (   e,
  v 
)
Value:
CHECK_TYPE_INLINE(v, BMVert *), \
BLI_assert(BM_vert_in_edge(e, v)), \
(((&e->v1_disk_link)[v == e->v2]).prev))

Definition at line 630 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_BOOL

#define BM_ELEM_CD_GET_BOOL (   ele,
  offset 
)     (BLI_assert(offset != -1), *((bool *)((char *)(ele)->head.data + (offset))))

Definition at line 529 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_FLOAT

#define BM_ELEM_CD_GET_FLOAT (   ele,
  offset 
)     (BLI_assert(offset != -1), *((float *)((char *)(ele)->head.data + (offset))))

Definition at line 553 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_FLOAT2_P

#define BM_ELEM_CD_GET_FLOAT2_P (   ele,
  offset 
)     (BLI_assert(offset != -1), (float(*)[2])((char *)(ele)->head.data + (offset)))

Definition at line 587 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_FLOAT3_P

#define BM_ELEM_CD_GET_FLOAT3_P (   ele,
  offset 
)     (BLI_assert(offset != -1), (float(*)[3])((char *)(ele)->head.data + (offset)))

Definition at line 590 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_FLOAT_AS_UCHAR

#define BM_ELEM_CD_GET_FLOAT_AS_UCHAR (   ele,
  offset 
)     (BLI_assert(offset != -1), (uchar)(BM_ELEM_CD_GET_FLOAT(ele, offset) * 255.0f))

Definition at line 614 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_FLOAT_P

#define BM_ELEM_CD_GET_FLOAT_P (   ele,
  offset 
)     (BLI_assert(offset != -1), (float *)((char *)(ele)->head.data + (offset)))

Definition at line 584 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_INT

#define BM_ELEM_CD_GET_INT (   ele,
  offset 
)     (BLI_assert(offset != -1), *((int *)((char *)(ele)->head.data + (offset))))

Definition at line 518 of file bmesh_class.h.

◆ BM_ELEM_CD_GET_VOID_P

#define BM_ELEM_CD_GET_VOID_P (   ele,
  offset 
)     (BLI_assert(offset != -1), (void *)((char *)(ele)->head.data + (offset)))

Definition at line 541 of file bmesh_class.h.

◆ BM_ELEM_CD_SET_BOOL

#define BM_ELEM_CD_SET_BOOL (   ele,
  offset,
 
)
Value:
{ \
CHECK_TYPE_NONCONST(ele); \
BLI_assert(offset != -1); \
*((bool *)((char *)(ele)->head.data + (offset))) = (f); \
} \
(void)0
SyclQueue void void size_t num_bytes void
ccl_gpu_kernel_postfix ccl_global float int int int int float bool int offset

Definition at line 521 of file bmesh_class.h.

◆ BM_ELEM_CD_SET_FLOAT

#define BM_ELEM_CD_SET_FLOAT (   ele,
  offset,
 
)
Value:
{ \
CHECK_TYPE_NONCONST(ele); \
BLI_assert(offset != -1); \
*((float *)((char *)(ele)->head.data + (offset))) = (f); \
} \
(void)0

Definition at line 545 of file bmesh_class.h.

◆ BM_ELEM_CD_SET_FLOAT2

#define BM_ELEM_CD_SET_FLOAT2 (   ele,
  offset,
 
)
Value:
{ \
CHECK_TYPE_NONCONST(ele); \
BLI_assert(offset != -1); \
((float *)((char *)(ele)->head.data + (offset)))[0] = (f)[0]; \
((float *)((char *)(ele)->head.data + (offset)))[1] = (f)[1]; \
} \
(void)0

Definition at line 595 of file bmesh_class.h.

◆ BM_ELEM_CD_SET_FLOAT3

#define BM_ELEM_CD_SET_FLOAT3 (   ele,
  offset,
 
)
Value:
{ \
CHECK_TYPE_NONCONST(ele); \
BLI_assert(offset != -1); \
((float *)((char *)(ele)->head.data + (offset)))[0] = (f)[0]; \
((float *)((char *)(ele)->head.data + (offset)))[1] = (f)[1]; \
((float *)((char *)(ele)->head.data + (offset)))[2] = (f)[2]; \
} \
(void)0

Definition at line 604 of file bmesh_class.h.

◆ BM_ELEM_CD_SET_INT

#define BM_ELEM_CD_SET_INT (   ele,
  offset,
 
)
Value:
{ \
CHECK_TYPE_NONCONST(ele); \
BLI_assert(offset != -1); \
*((int *)((char *)(ele)->head.data + (offset))) = (f); \
} \
(void)0

Definition at line 510 of file bmesh_class.h.

◆ BM_FACE_FIRST_LOOP

#define BM_FACE_FIRST_LOOP (   p)    ((p)->l_first)

Definition at line 622 of file bmesh_class.h.

◆ BM_LOOP_RADIAL_MAX

#define BM_LOOP_RADIAL_MAX   10000

Definition at line 649 of file bmesh_class.h.

◆ BM_NGON_MAX

#define BM_NGON_MAX   100000

Definition at line 650 of file bmesh_class.h.

◆ BM_OMP_LIMIT

#define BM_OMP_LIMIT   10000

Definition at line 656 of file bmesh_class.h.

Typedef Documentation

◆ BMDiskLink

typedef struct BMDiskLink BMDiskLink

◆ BMEdge

typedef struct BMEdge BMEdge

◆ BMEdge_OFlag

typedef struct BMEdge_OFlag BMEdge_OFlag

◆ BMEdgeFilterFunc

typedef bool(* BMEdgeFilterFunc) (const BMEdge *, void *user_data)

Definition at line 504 of file bmesh_class.h.

◆ BMElem

typedef struct BMElem BMElem

◆ BMElemF

typedef struct BMElemF BMElemF

◆ BMElemFilterFunc

typedef bool(* BMElemFilterFunc) (const BMElem *, void *user_data)

Definition at line 502 of file bmesh_class.h.

◆ BMesh

typedef struct BMesh BMesh

◆ BMFace

typedef struct BMFace BMFace

◆ BMFace_OFlag

typedef struct BMFace_OFlag BMFace_OFlag

◆ BMFaceFilterFunc

typedef bool(* BMFaceFilterFunc) (const BMFace *, void *user_data)

Definition at line 505 of file bmesh_class.h.

◆ BMFlagLayer

typedef struct BMFlagLayer BMFlagLayer

◆ BMHeader

typedef struct BMHeader BMHeader

BMHeader

All mesh elements begin with a BMHeader. This structure hold several types of data

1: The type of the element (vert, edge, loop or face) 2: Persistent "header" flags/markings (smooth, seam, select, hidden, etc) note that this is different from the "tool" flags. 3: Unique ID in the BMesh. 4: some elements for internal record keeping.

◆ BMLoop

typedef struct BMLoop BMLoop

◆ BMLoopFilterFunc

typedef bool(* BMLoopFilterFunc) (const BMLoop *, void *user_data)

Definition at line 506 of file bmesh_class.h.

◆ BMLoopNorEditData

◆ BMLoopNorEditDataArray

◆ BMLoopPairFilterFunc

typedef bool(* BMLoopPairFilterFunc) (const BMLoop *, const BMLoop *, void *user_data)

Definition at line 507 of file bmesh_class.h.

◆ BMVert

typedef struct BMVert BMVert

◆ BMVert_OFlag

typedef struct BMVert_OFlag BMVert_OFlag

◆ BMVertFilterFunc

typedef bool(* BMVertFilterFunc) (const BMVert *, void *user_data)

Definition at line 503 of file bmesh_class.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

BMHeader.htype (char)

Enumerator
BM_VERT 
BM_EDGE 
BM_LOOP 
BM_FACE 

Definition at line 382 of file bmesh_class.h.

◆ anonymous enum

anonymous enum

BMesh.spacearr_dirty

Enumerator
BM_SPACEARR_DIRTY 
BM_SPACEARR_DIRTY_ALL 
BM_SPACEARR_BMO_SET 

Definition at line 414 of file bmesh_class.h.

◆ anonymous enum

anonymous enum

BMHeader.hflag (char)

Enumerator
BM_ELEM_SELECT 
BM_ELEM_HIDDEN 
BM_ELEM_SEAM 
BM_ELEM_SMOOTH 

used for faces and edges, note from the user POV, this is a sharp edge when disabled

BM_ELEM_TAG 

Internal flag, used for ensuring correct normals during multi-resolution interpolation, and any other time when temp tagging is handy. always assume dirty & clear before use.

BM_ELEM_DRAW 
BM_ELEM_TAG_ALT 

Spare tag, assumed dirty, use define in each function to name based on use.

BM_ELEM_INTERNAL_TAG 

For low level internal API tagging, since tools may want to tag verts and not have functions clobber them. Leave cleared!

Definition at line 470 of file bmesh_class.h.

Function Documentation

◆ BLI_STATIC_ASSERT()

BLI_STATIC_ASSERT ( (sizeof(BMHeader)<=16)  ,
"BMHeader size has grown!"   
)

◆ bpy_bm_generic_invalidate()

void bpy_bm_generic_invalidate ( struct BPy_BMGeneric self)