26# include <fmt/format.h>
42static void rna_LatticePoint_co_get(
PointerRNA *
ptr,
float *values)
46 int index = bp - lt->def;
51 values[0] = lt->fu + u * lt->du;
52 values[1] = lt->fv +
v * lt->dv;
53 values[2] = lt->fw +
w * lt->dw;
75 int tot = lt->pntsu * lt->pntsv * lt->pntsw;
77 if (lt->editlatt && lt->editlatt->latt->def) {
79 iter, (
void *)lt->editlatt->latt->def,
sizeof(
BPoint), tot, 0,
nullptr);
91 ID *
id =
ptr->owner_id;
103 ID *
id =
ptr->owner_id;
108 lt_em->
typeu = lt->typeu;
109 lt_em->
typev = lt->typev;
110 lt_em->
typew = lt->typew;
111 lt_em->
flag = lt->flag;
123 int newu, newv, neww;
126 newu = (lt->opntsu > 0) ? lt->opntsu : lt->pntsu;
127 newv = (lt->opntsv > 0) ? lt->opntsv : lt->pntsv;
128 neww = (lt->opntsw > 0) ? lt->opntsw : lt->pntsw;
131 for (ob =
static_cast<Object *
>(bmain->objects.first); ob;
134 if (ob->
data == lt) {
151 rna_Lattice_update_data(bmain, scene,
ptr);
154static void rna_Lattice_use_outside_set(
PointerRNA *
ptr,
bool value)
179static int rna_Lattice_size_editable(
const PointerRNA *
ptr,
const char ** )
186static void rna_Lattice_points_u_set(
PointerRNA *
ptr,
int value)
190 lt->
opntsu = std::clamp(value, 1, 64);
193static void rna_Lattice_points_v_set(
PointerRNA *
ptr,
int value)
197 lt->
opntsv = std::clamp(value, 1, 64);
200static void rna_Lattice_points_w_set(
PointerRNA *
ptr,
int value)
204 lt->
opntsw = std::clamp(value, 1, 64);
207static void rna_Lattice_vg_name_set(
PointerRNA *
ptr,
const char *value)
218static std::optional<std::string> rna_LatticePoint_path(
const PointerRNA *
ptr)
222 const BPoint *points =
nullptr;
231 if (points &&
point) {
235 if ((
point >= (
void *)points) && (
point < (
void *)(points + tot))) {
238 return fmt::format(
"points[{}]", pt_index);
274 "Original undeformed location used to calculate the strength of the deform effect "
275 "(edit/animate the Deformed Location instead)");
291 "rna_LatticePoint_groups_begin",
292 "rna_iterator_array_next",
293 "rna_iterator_array_end",
294 "rna_iterator_array_get",
301 prop,
"Groups",
"Weights for the vertex groups this point is member of");
311 srna,
"Lattice",
"Lattice data-block defining a grid for deforming other objects");
320 prop,
"U",
"Points in U direction (cannot be changed when there are shape keys)");
330 prop,
"V",
"Points in V direction (cannot be changed when there are shape keys)");
340 prop,
"W",
"Points in W direction (cannot be changed when there are shape keys)");
366 prop,
"Outside",
"Only display and take into account the outer vertices");
372 prop,
"Vertex Group",
"Vertex group to apply the influence of the lattice");
385 "rna_Lattice_points_begin",
386 "rna_iterator_array_next",
387 "rna_iterator_array_end",
388 "rna_iterator_array_get",
void outside_lattice(Lattice *lt)
void BKE_lattice_index_to_uvw(const Lattice *lt, int index, int *r_u, int *r_v, int *r_w)
void BKE_lattice_resize(Lattice *lt, int u_new, int v_new, int w_new, Object *lt_ob)
#define STRNCPY(dst, src)
void DEG_id_tag_update(ID *id, unsigned int flags)
Object is a sort of wrapper for general info.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Gabor Generate Gabor noise Gradient Generate interpolated color and intensity values based on the input vector Magic Generate a psychedelic color texture Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
@ PROPOVERRIDE_OVERRIDABLE_LIBRARY
ATTR_WARN_UNUSED_RESULT const BMVert * v
SIMD_FORCE_INLINE const btScalar & w() const
Return the w value.
draw_view push_constant(Type::INT, "radiance_src") .push_constant(Type capture_info_buf storage_buf(1, Qualifier::READ, "ObjectBounds", "bounds_buf[]") .push_constant(Type draw_view int
void rna_iterator_array_begin(CollectionPropertyIterator *iter, void *ptr, int itemsize, int length, bool free_ptr, IteratorSkipFunc skip)
void rna_def_animdata_common(StructRNA *srna)
void RNA_def_property_pointer_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_struct_path_func(StructRNA *srna, const char *path)
void RNA_def_property_boolean_sdna(PropertyRNA *prop, const char *structname, const char *propname, int64_t bit)
void RNA_def_property_string_funcs(PropertyRNA *prop, const char *get, const char *length, const char *set)
void RNA_def_property_float_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_property_ui_text(PropertyRNA *prop, const char *name, const char *description)
void RNA_def_property_string_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_collection_funcs(PropertyRNA *prop, const char *begin, const char *next, const char *end, const char *get, const char *length, const char *lookupint, const char *lookupstring, const char *assignint)
void RNA_def_struct_ui_text(StructRNA *srna, const char *name, const char *description)
void RNA_def_property_boolean_funcs(PropertyRNA *prop, const char *get, const char *set)
void RNA_def_property_enum_items(PropertyRNA *prop, const EnumPropertyItem *item)
void RNA_def_struct_sdna(StructRNA *srna, const char *structname)
void RNA_def_property_array(PropertyRNA *prop, int length)
void RNA_def_property_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_property_editable_func(PropertyRNA *prop, const char *editable)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
void RNA_def_property_enum_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_funcs(PropertyRNA *prop, const char *get, const char *set, const char *range)
void RNA_def_struct_ui_icon(StructRNA *srna, int icon)
void RNA_def_property_float_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_property_override_flag(PropertyRNA *prop, PropertyOverrideFlag flag)
void RNA_api_lattice(StructRNA *srna)
const EnumPropertyItem rna_enum_keyblock_type_items[]
static void rna_def_lattice(BlenderRNA *brna)
void RNA_def_lattice(BlenderRNA *brna)
static void rna_def_latticepoint(BlenderRNA *brna)
struct EditLatt * editlatt
void WM_main_add_notifier(uint type, void *reference)