94 dst.
runtime = MEM_new<bke::CurvesGeometryRuntime>(__func__);
96 dst.
runtime->type_counts =
src.runtime->type_counts;
117 for (
int i = 0; i <
curves->totcol; i++) {
138 &
curves->geometry.point_data,
140 curves->geometry.point_num,
144 &
curves->geometry.curve_data,
146 curves->geometry.curve_num,
174 curves->geometry.runtime = MEM_new<blender::bke::CurvesGeometryRuntime>(__func__);
186 for (
int a = 0;
a <
curves->totcol;
a++) {
195 for (
int a = 0;
a <
curves->totcol;
a++) {
248 ob->
runtime.
bb = MEM_cnew<BoundBox>(__func__);
302 for (; md; md = md->
next) {
336 if (curves_eval ==
nullptr) {
343 object->runtime.geometry_set_eval =
new GeometrySet(std::move(geometry_set));
353 if (
curves->batch_cache) {
360 if (
curves->batch_cache) {
371 curves.resize(points_num, curves_num);
379 curves.offsets_for_write().last() = points_num;
403 if (
src.surface_uv_map !=
nullptr) {
413 if (surface_ob !=
nullptr) {
426 if (this->
positions->size() != point_num) {
void BKE_animdata_free(struct ID *id, bool do_id_user)
void BKE_animdata_blend_read_data(struct BlendDataReader *reader, struct AnimData *adt)
void BKE_animdata_blend_write(struct BlendWriter *writer, struct AnimData *adt)
Low-level operations for curves.
CustomData interface, see also DNA_customdata_types.h.
void CustomData_blend_read(struct BlendDataReader *reader, struct CustomData *data, int count)
void CustomData_copy(const struct CustomData *source, struct CustomData *dest, eCustomDataMask mask, eCDAllocType alloctype, int totelem)
@ IDTYPE_FLAGS_APPEND_IS_REUSABLE
@ LIB_ID_COPY_CD_REFERENCE
struct ID * BKE_id_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, int flag)
void * BKE_id_new_nomain(short type, const char *name)
void BKE_id_blend_write(struct BlendWriter *writer, struct ID *id)
void * BKE_id_new(struct Main *bmain, short type, const char *name)
#define BKE_LIB_FOREACHID_PROCESS_IDSUPER(_data, _id_super, _cb_flag)
const ModifierTypeInfo * BKE_modifier_get_info(ModifierType type)
bool BKE_modifier_is_enabled(const struct Scene *scene, struct ModifierData *md, int required_mode)
struct ModifierData * BKE_modifiers_get_virtual_modifierlist(const struct Object *ob, struct VirtualModifierData *data)
void BKE_modifiers_clear_errors(struct Object *ob)
General operations, lookup, etc. for blender objects.
void BKE_boundbox_init_from_minmax(struct BoundBox *bb, const float min[3], const float max[3])
void BKE_object_free_derived_caches(struct Object *ob)
void BKE_object_eval_assign_data(struct Object *object, struct ID *data, bool is_owned)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
#define BLO_read_data_address(reader, ptr_p)
void BLO_write_int32_array(BlendWriter *writer, uint num, const int32_t *data_ptr)
void BLO_read_int32_array(BlendDataReader *reader, int array_size, int32_t **ptr_p)
#define BLO_write_id_struct(writer, struct_name, id_address, id)
void BLO_write_string(BlendWriter *writer, const char *data_ptr)
#define BLO_read_id_address(reader, lib, id_ptr_p)
#define BLO_expand(expander, id)
void BLO_read_pointer_array(BlendDataReader *reader, void **ptr_p)
void BLO_write_pointer_array(BlendWriter *writer, uint num, const void *data_ptr)
#define BLT_I18NCONTEXT_ID_CURVES
struct Depsgraph Depsgraph
eEvaluationMode DEG_get_mode(const Depsgraph *graph)
struct Object * DEG_get_original_object(struct Object *object)
#define DNA_struct_default_get(struct_name)
Object is a sort of wrapper for general info.
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum type
Read Guarded memory(de)allocation.
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to curves
std::unique_ptr< blender::bke::CurvesEditHints > curves_edit_hints_
constexpr void copy_from(Span< T > values)
const Curves & curves_id_orig
std::optional< Array< float3 > > positions
std::optional< Array< float3x3 > > deform_mats
void update_curve_types()
static CurvesGeometry & wrap(::CurvesGeometry &dna_struct)
void BKE_curves_batch_cache_dirty_tag(Curves *curves, int mode)
static void curves_copy_data(Main *UNUSED(bmain), ID *id_dst, const ID *id_src, const int flag)
static void curves_blend_read_lib(BlendLibReader *reader, ID *id)
void BKE_curves_data_update(struct Depsgraph *depsgraph, struct Scene *scene, Object *object)
static void curves_blend_read_data(BlendDataReader *reader, ID *id)
bool BKE_curves_customdata_required(const Curves *UNUSED(curves), const char *name)
BoundBox * BKE_curves_boundbox_get(Object *ob)
static const char * ATTR_POSITION
static void curves_init_data(ID *id)
static void curves_foreach_id(ID *id, LibraryForeachIDData *data)
static void curves_evaluate_modifiers(struct Depsgraph *depsgraph, struct Scene *scene, Object *object, GeometrySet &geometry_set)
void(* BKE_curves_batch_cache_free_cb)(Curves *curves)
void BKE_curves_batch_cache_free(Curves *curves)
Curves * BKE_curves_copy_for_eval(Curves *curves_src, bool reference)
static void curves_blend_read_expand(BlendExpander *expander, ID *id)
static void curves_blend_write(BlendWriter *writer, ID *id, const void *id_address)
void(* BKE_curves_batch_cache_dirty_tag_cb)(Curves *curves, int mode)
void * BKE_curves_add(Main *bmain, const char *name)
static void curves_free_data(ID *id)
void CustomData_blend_write(BlendWriter *writer, CustomData *data, Span< CustomDataLayer > layers_to_write, int count, eCustomDataMask cddata_mask, ID *id)
void CustomData_blend_write_prepare(CustomData &data, Vector< CustomDataLayer, 16 > &layers_to_write)
const Depsgraph * depsgraph
SyclQueue void void * src
SyclQueue void void size_t num_bytes void
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void *(* MEM_dupallocN)(const void *vmemh)
void curves_copy_parameters(const Curves &src, Curves &dst)
Curves * curves_new_nomain_single(int points_num, CurveType type)
Curves * curves_new_nomain(int points_num, int curves_num)
vec_base< float, 3 > float3
CurvesGeometryRuntimeHandle * runtime
int attributes_active_index
GeometryComponent & get_component_for_write(GeometryComponentType component_type)
static GeometrySet create_with_curves(Curves *curves, GeometryOwnershipType ownership=GeometryOwnershipType::Owned)
const Curves * get_curves_for_read() const
struct ModifierData * next
void(* modifyGeometrySet)(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct GeometrySet *geometry_set)
float4x4 inverted() const
float4x4 transposed() const