Blender V5.0
lattice.cc File Reference
#include <cmath>
#include <cstdlib>
#include <cstring>
#include "MEM_guardedalloc.h"
#include "BLI_bitmap.h"
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "BLT_translation.hh"
#include "DNA_curve_types.h"
#include "DNA_defaults.h"
#include "DNA_key_types.h"
#include "DNA_lattice_types.h"
#include "DNA_meshdata_types.h"
#include "DNA_object_types.h"
#include "BKE_curve.hh"
#include "BKE_deform.hh"
#include "BKE_displist.h"
#include "BKE_idtype.hh"
#include "BKE_lattice.hh"
#include "BKE_lib_id.hh"
#include "BKE_lib_query.hh"
#include "BKE_modifier.hh"
#include "BKE_object.hh"
#include "BKE_object_types.hh"
#include "BLO_read_write.hh"

Go to the source code of this file.

Macros

#define DNA_DEPRECATED_ALLOW

Typedefs

using float3
using float4x4

Functions

static void lattice_init_data (ID *id)
static void lattice_copy_data (Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, const int flag)
static void lattice_free_data (ID *id)
static void lattice_foreach_id (ID *id, LibraryForeachIDData *data)
static void lattice_blend_write (BlendWriter *writer, ID *id, const void *id_address)
static void lattice_blend_read_data (BlendDataReader *reader, ID *id)
int BKE_lattice_index_from_uvw (const Lattice *lt, const int u, const int v, const int w)
void BKE_lattice_index_to_uvw (const Lattice *lt, const int index, int *r_u, int *r_v, int *r_w)
int BKE_lattice_index_flip (const Lattice *lt, const int index, const bool flip_u, const bool flip_v, const bool flip_w)
void BKE_lattice_bitmap_from_flag (const Lattice *lt, BLI_bitmap *bitmap, const uint8_t flag, const bool clear, const bool respecthide)
void calc_lat_fudu (int flag, int res, float *r_fu, float *r_du)
void BKE_lattice_resize (Lattice *lt, int u_new, int v_new, int w_new, Object *lt_ob)
LatticeBKE_lattice_add (Main *bmain, const char *name)
static BPointlatt_bp (Lattice *lt, int u, int v, int w)
void outside_lattice (Lattice *lt)
void BKE_lattice_vert_coords_get (const Lattice *lt, MutableSpan< float3 > vert_coords)
Array< float3BKE_lattice_vert_coords_alloc (const Lattice *lt)
void BKE_lattice_vert_coords_apply_with_mat4 (Lattice *lt, const Span< float3 > vert_coords, const float4x4 &transform)
void BKE_lattice_vert_coords_apply (Lattice *lt, const Span< float3 > vert_coords)
void BKE_lattice_modifiers_calc (Depsgraph *depsgraph, Scene *scene, Object *ob)
MDeformVertBKE_lattice_deform_verts_get (const Object *oblatt)
BPointBKE_lattice_active_point_get (Lattice *lt)
void BKE_lattice_center_median (Lattice *lt, float cent[3])
std::optional< blender::Bounds< blender::float3 > > BKE_lattice_minmax (const Lattice *lt)
void BKE_lattice_transform (Lattice *lt, const float mat[4][4], bool do_keys)
void BKE_lattice_translate (Lattice *lt, const float offset[3], bool do_keys)
bool BKE_lattice_is_any_selected (const Lattice *lt)
void BKE_lattice_eval_geometry (Depsgraph *, Lattice *)
void BKE_lattice_batch_cache_dirty_tag (Lattice *lt, int mode)
void BKE_lattice_batch_cache_free (Lattice *lt)

Variables

IDTypeInfo IDType_ID_LT
void(* BKE_lattice_batch_cache_dirty_tag_cb )(Lattice *lt, int mode) = nullptr
void(* BKE_lattice_batch_cache_free_cb )(Lattice *lt) = nullptr

Macro Definition Documentation

◆ DNA_DEPRECATED_ALLOW

#define DNA_DEPRECATED_ALLOW

Definition at line 24 of file lattice.cc.

Typedef Documentation

◆ float3

Definition at line 619 of file BLI_math_vector_types.hh.

◆ float4x4

Definition at line 1012 of file BLI_math_matrix_types.hh.

Function Documentation

◆ BKE_lattice_active_point_get()

◆ BKE_lattice_add()

Lattice * BKE_lattice_add ( Main * bmain,
const char * name )

Definition at line 387 of file lattice.cc.

References BKE_id_new(), and name.

Referenced by BKE_object_obdata_add_from_type().

◆ BKE_lattice_batch_cache_dirty_tag()

void BKE_lattice_batch_cache_dirty_tag ( Lattice * lt,
int mode )

◆ BKE_lattice_batch_cache_free()

void BKE_lattice_batch_cache_free ( Lattice * lt)

Definition at line 710 of file lattice.cc.

References Lattice::batch_cache, and BKE_lattice_batch_cache_free_cb.

Referenced by lattice_free_data().

◆ BKE_lattice_bitmap_from_flag()

void BKE_lattice_bitmap_from_flag ( const Lattice * lt,
BLI_bitmap * bitmap,
const uint8_t flag,
const bool clear,
const bool respecthide )

◆ BKE_lattice_center_median()

void BKE_lattice_center_median ( Lattice * lt,
float cent[3] )

◆ BKE_lattice_deform_verts_get()

MDeformVert * BKE_lattice_deform_verts_get ( const Object * oblatt)

◆ BKE_lattice_eval_geometry()

void BKE_lattice_eval_geometry ( Depsgraph * depsgraph,
Lattice * latt )

◆ BKE_lattice_index_flip()

int BKE_lattice_index_flip ( const Lattice * lt,
const int index,
const bool flip_u,
const bool flip_v,
const bool flip_w )

◆ BKE_lattice_index_from_uvw()

int BKE_lattice_index_from_uvw ( const Lattice * lt,
const int u,
const int v,
const int w )

◆ BKE_lattice_index_to_uvw()

void BKE_lattice_index_to_uvw ( const Lattice * lt,
const int index,
int * r_u,
int * r_v,
int * r_w )

Definition at line 202 of file lattice.cc.

References Lattice::pntsu, and Lattice::pntsv.

Referenced by BKE_lattice_index_flip().

◆ BKE_lattice_is_any_selected()

bool BKE_lattice_is_any_selected ( const Lattice * lt)

◆ BKE_lattice_minmax()

◆ BKE_lattice_modifiers_calc()

◆ BKE_lattice_resize()

◆ BKE_lattice_transform()

void BKE_lattice_transform ( Lattice * lt,
const float mat[4][4],
bool do_keys )

◆ BKE_lattice_translate()

void BKE_lattice_translate ( Lattice * lt,
const float offset[3],
bool do_keys )

◆ BKE_lattice_vert_coords_alloc()

◆ BKE_lattice_vert_coords_apply()

void BKE_lattice_vert_coords_apply ( Lattice * lt,
const Span< float3 > vert_coords )

◆ BKE_lattice_vert_coords_apply_with_mat4()

void BKE_lattice_vert_coords_apply_with_mat4 ( Lattice * lt,
const Span< float3 > vert_coords,
const float4x4 & transform )

◆ BKE_lattice_vert_coords_get()

void BKE_lattice_vert_coords_get ( const Lattice * lt,
MutableSpan< float3 > vert_coords )

Definition at line 480 of file lattice.cc.

References Lattice::def, i, Lattice::pntsu, Lattice::pntsv, Lattice::pntsw, and BPoint::vec.

Referenced by BKE_lattice_vert_coords_alloc().

◆ calc_lat_fudu()

void calc_lat_fudu ( int flag,
int res,
float * r_fu,
float * r_du )

Definition at line 256 of file lattice.cc.

References flag, and LT_GRID.

Referenced by BKE_lattice_resize(), and blo_do_versions_pre250().

◆ latt_bp()

BPoint * latt_bp ( Lattice * lt,
int u,
int v,
int w )
static

Definition at line 396 of file lattice.cc.

References BKE_lattice_index_from_uvw(), Lattice::def, v, and w().

Referenced by outside_lattice().

◆ lattice_blend_read_data()

◆ lattice_blend_write()

◆ lattice_copy_data()

◆ lattice_foreach_id()

void lattice_foreach_id ( ID * id,
LibraryForeachIDData * data )
static

Definition at line 125 of file lattice.cc.

References BKE_LIB_FOREACHID_PROCESS_IDSUPER, data, IDWALK_CB_USER, and Lattice::key.

◆ lattice_free_data()

◆ lattice_init_data()

void lattice_init_data ( ID * id)
static

◆ outside_lattice()

Variable Documentation

◆ BKE_lattice_batch_cache_dirty_tag_cb

void(* BKE_lattice_batch_cache_dirty_tag_cb) (Lattice *lt, int mode) ( Lattice * lt,
int mode ) = nullptr

Definition at line 701 of file lattice.cc.

Referenced by BKE_lattice_batch_cache_dirty_tag(), and DRW_module_init().

◆ BKE_lattice_batch_cache_free_cb

void(* BKE_lattice_batch_cache_free_cb) (Lattice *lt) ( Lattice * lt) = nullptr

Definition at line 702 of file lattice.cc.

Referenced by BKE_lattice_batch_cache_free(), and DRW_module_init().

◆ IDType_ID_LT

IDTypeInfo IDType_ID_LT
Initial value:
= {
Lattice::id_type,
sizeof(Lattice),
"Lattice",
N_("lattices"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:47
#define BLT_I18NCONTEXT_ID_LATTICE
#define FILTER_ID_LT
Definition DNA_ID.h:1207
@ INDEX_ID_LT
Definition DNA_ID.h:1331
#define FILTER_ID_KE
Definition DNA_ID.h:1232
static void lattice_copy_data(Main *bmain, std::optional< Library * > owner_library, ID *id_dst, const ID *id_src, const int flag)
Definition lattice.cc:64
static void lattice_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition lattice.cc:131
static void lattice_free_data(ID *id)
Definition lattice.cc:96
static void lattice_blend_read_data(BlendDataReader *reader, ID *id)
Definition lattice.cc:150
static void lattice_init_data(ID *id)
Definition lattice.cc:52
static void lattice_foreach_id(ID *id, LibraryForeachIDData *data)
Definition lattice.cc:125
#define N_(msgid)

Definition at line 163 of file lattice.cc.