39 if (u <= 0 ||
v <= 0 ||
w <= 0) {
47 if (u <= 0 ||
v <= 0 ||
w <= 0) {
50 return (((((u - 1) *
v) + ((
v - 1) * u)) *
w) + ((
w - 1) * (u *
v)));
59 const int u = lt->
pntsu;
77 const int u = lt->
pntsu;
142 rdata->
dvert =
nullptr;
168 if (rdata->loose_verts) {
191 return &rdata->
bp[vert_idx];
223 if (cache ==
nullptr) {
254 memset(cache, 0,
sizeof(*cache));
283 if (cache ==
nullptr) {
328 if (cache->
pos ==
nullptr) {
343 for (
int i = 0; i < vert_len; i++) {
348 const float no_active_weight = 666.0f;
364 if (cache->
edges ==
nullptr) {
367 int edge_len_real = 0;
372#define LATT_INDEX(u, v, w) ((((w) * rdata->dims.v_len + (v)) * rdata->dims.u_len) + (u))
378 for (
int u = 0; u < rdata->
dims.
u_len; u++) {
429 if (
format.attr_len == 0) {
439 for (
int i = 0; i < vert_len; i++) {
444 if (i == rdata->
actbp) {
@ BKE_LATTICE_BATCH_DIRTY_SELECT
@ BKE_LATTICE_BATCH_DIRTY_ALL
#define UNUSED_VARS_NDEBUG(...)
blender::gpu::Batch * GPU_batch_create_ex(GPUPrimType primitive_type, blender::gpu::VertBuf *vertex_buf, blender::gpu::IndexBuf *index_buf, eGPUBatchFlag owns_flag)
#define GPU_batch_create(primitive_type, vertex_buf, index_buf)
#define GPU_BATCH_DISCARD_SAFE(batch)
#define GPU_INDEXBUF_DISCARD_SAFE(elem)
void GPU_indexbuf_init(GPUIndexBufBuilder *, GPUPrimType, uint prim_len, uint vertex_len)
blender::gpu::IndexBuf * GPU_indexbuf_build(GPUIndexBufBuilder *)
void GPU_indexbuf_add_line_verts(GPUIndexBufBuilder *, uint v1, uint v2)
#define GPU_vertbuf_create_with_format(format)
void GPU_vertbuf_attr_set(blender::gpu::VertBuf *, uint a_idx, uint v_idx, const void *data)
#define GPU_VERTBUF_DISCARD_SAFE(verts)
void GPU_vertbuf_data_alloc(blender::gpu::VertBuf &verts, uint v_len)
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
CCL_NAMESPACE_BEGIN struct Options options
#define LATT_INDEX(u, v, w)
struct @620::@623 attr_id
void MEM_freeN(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
blender::gpu::Batch * DRW_lattice_batch_cache_get_all_verts(Lattice *lt)
void DRW_lattice_batch_cache_validate(Lattice *lt)
static int edge_len_calc(int u, int v, int w)
blender::gpu::Batch * DRW_lattice_batch_cache_get_all_edges(Lattice *lt, bool use_weight, int actdef)
void DRW_lattice_batch_cache_dirty_tag(Lattice *lt, int mode)
blender::gpu::Batch * DRW_lattice_batch_cache_get_edit_verts(Lattice *lt)
void DRW_lattice_batch_cache_free(Lattice *lt)
static void lattice_batch_cache_init(Lattice *lt)
static void lattice_batch_cache_clear(Lattice *lt)
static gpu::IndexBuf * lattice_batch_cache_get_edges(LatticeRenderData *rdata, LatticeBatchCache *cache)
static int lattice_render_data_edges_len_get(const LatticeRenderData *rdata)
static const BPoint * lattice_render_data_vert_bpoint(const LatticeRenderData *rdata, const int vert_idx)
static LatticeBatchCache * lattice_batch_cache_get(Lattice *lt)
static int lattice_render_data_verts_len_get(const LatticeRenderData *rdata)
static LatticeRenderData * lattice_render_data_create(Lattice *lt, const int types)
static void lattice_batch_cache_create_overlay_batches(Lattice *lt)
static bool lattice_batch_cache_valid(Lattice *lt)
static void lattice_render_data_free(LatticeRenderData *rdata)
static gpu::VertBuf * lattice_batch_cache_get_pos(LatticeRenderData *rdata, LatticeBatchCache *cache, bool use_weight, const int actdef)
static int lattice_render_verts_len_get(Lattice *lt)
static int lattice_render_edges_len_get(Lattice *lt)
static int vert_len_calc(int u, int v, int w)
struct MDeformVert * dvert
struct EditLatt * editlatt
gpu::Batch * overlay_verts
struct blender::draw::LatticeBatchCache::@263 dims
struct blender::draw::LatticeRenderData::@262 dims
const MDeformVert * dvert