Blender V4.3
lattice.cc File Reference
#include <cmath>
#include <cstdio>
#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
 

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, float(*vert_coords)[3])
 
float(* BKE_lattice_vert_coords_alloc (const Lattice *lt, int *r_vert_len))[3]
 
void BKE_lattice_vert_coords_apply_with_mat4 (Lattice *lt, const float(*vert_coords)[3], const float mat[4][4])
 
void BKE_lattice_vert_coords_apply (Lattice *lt, const float(*vert_coords)[3])
 
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 25 of file lattice.cc.

Function Documentation

◆ BKE_lattice_active_point_get()

◆ BKE_lattice_add()

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

Definition at line 388 of file lattice.cc.

References BKE_id_new(), and ID_LT.

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 716 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()

◆ 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 203 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()

float(* BKE_lattice_vert_coords_alloc ( const Lattice * lt,
int * r_vert_len ))[3]

◆ BKE_lattice_vert_coords_apply()

void BKE_lattice_vert_coords_apply ( Lattice * lt,
const float(*) vert_coords[3] )

◆ BKE_lattice_vert_coords_apply_with_mat4()

void BKE_lattice_vert_coords_apply_with_mat4 ( Lattice * lt,
const float(*) vert_coords[3],
const float mat[4][4] )

◆ BKE_lattice_vert_coords_get()

void BKE_lattice_vert_coords_get ( const Lattice * lt,
float(*) vert_coords[3] )

◆ calc_lat_fudu()

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

Definition at line 257 of file lattice.cc.

References flag, and LT_GRID.

Referenced by BKE_lattice_resize(), and blo_do_versions_pre250().

◆ latt_bp()

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

Definition at line 397 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()

static void lattice_copy_data ( Main * bmain,
std::optional< Library * > owner_library,
ID * id_dst,
const ID * id_src,
const int flag )
static

◆ lattice_foreach_id()

◆ lattice_free_data()

◆ lattice_init_data()

static 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 707 of file lattice.cc.

Referenced by BKE_lattice_batch_cache_dirty_tag(), and DRW_engines_register().

◆ BKE_lattice_batch_cache_free_cb

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

Definition at line 708 of file lattice.cc.

Referenced by BKE_lattice_batch_cache_free(), and DRW_engines_register().

◆ IDType_ID_LT

IDTypeInfo IDType_ID_LT
Initial value:
= {
sizeof(Lattice),
"Lattice",
N_("lattices"),
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
nullptr,
}
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
Definition BKE_idtype.hh:39
#define BLT_I18NCONTEXT_ID_LATTICE
#define FILTER_ID_LT
Definition DNA_ID.h:1174
@ INDEX_ID_LT
Definition DNA_ID.h:1299
#define FILTER_ID_KE
Definition DNA_ID.h:1199
@ ID_LT
struct Lattice Lattice
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:59
static void lattice_blend_write(BlendWriter *writer, ID *id, const void *id_address)
Definition lattice.cc:133
static void lattice_free_data(ID *id)
Definition lattice.cc:92
static void lattice_blend_read_data(BlendDataReader *reader, ID *id)
Definition lattice.cc:152
static void lattice_init_data(ID *id)
Definition lattice.cc:47
static void lattice_foreach_id(ID *id, LibraryForeachIDData *data)
Definition lattice.cc:121
#define N_(msgid)

Definition at line 165 of file lattice.cc.