28 {
VOLUME_GRID_MASK,
"MASK", 0,
"Mask",
"No data, boolean mask of active voxels"},
35 "Points (Unsupported)",
36 "Points grid, currently unsupported by volume objects"},
77 rna_Volume_update_filepath(bmain,
scene,
ptr);
81 static void rna_Volume_velocity_grid_set(
PointerRNA *
ptr,
const char *value)
92 static void rna_VolumeGrid_name_get(
PointerRNA *
ptr,
char *value)
116 static void rna_VolumeGrid_matrix_object_get(
PointerRNA *
ptr,
float *value)
128 static bool rna_VolumeGrid_load(
ID *
id,
VolumeGrid *grid)
133 static void rna_VolumeGrid_unload(
ID *
id,
VolumeGrid *grid)
176 static void rna_VolumeGrids_active_index_range(
193 static void rna_VolumeGrids_active_index_set(
PointerRNA *
ptr,
int value)
209 static void rna_VolumeGrids_error_message_get(
PointerRNA *
ptr,
char *value)
215 static int rna_VolumeGrids_error_message_length(
PointerRNA *
ptr)
222 static void rna_VolumeGrids_frame_filepath_get(
PointerRNA *
ptr,
char *value)
228 static int rna_VolumeGrids_frame_filepath_length(
PointerRNA *
ptr)
234 static bool rna_Volume_load(
Volume *volume,
Main *bmain)
239 static bool rna_Volume_save(
Volume *volume,
Main *bmain,
ReportList *reports,
const char *filepath)
258 prop,
"rna_VolumeGrid_name_get",
"rna_VolumeGrid_name_length",
NULL);
278 prop,
"Matrix Object",
"Transformation matrix from voxel index to object space");
292 parm =
RNA_def_boolean(func,
"success", 0,
"",
"True if grid tree was successfully loaded");
298 func,
"Unload grid tree and voxel data from memory, leaving only metadata");
313 "rna_VolumeGrids_active_index_get",
314 "rna_VolumeGrids_active_index_set",
315 "rna_VolumeGrids_active_index_range");
322 prop,
"rna_VolumeGrids_error_message_get",
"rna_VolumeGrids_error_message_length",
NULL);
324 prop,
"Error Message",
"If loading grids failed, error message with details");
336 "Frame number that volume grids will be loaded at, based on scene time "
337 "and volume parameters");
342 prop,
"rna_VolumeGrids_frame_filepath_get",
"rna_VolumeGrids_frame_filepath_length",
NULL);
346 "Volume file used for loading the volume at the current frame. Empty "
347 "if the volume has not be loaded or the frame only exists in memory");
356 parm =
RNA_def_boolean(func,
"success", 0,
"",
"True if grid list was successfully loaded");
367 parm =
RNA_def_boolean(func,
"success", 0,
"",
"True if grid list was successfully loaded");
394 "Display single bounding box for the entire grid"},
399 "Display bounding boxes for nodes in the volume tree"},
404 "Display points for nodes in the volume tree"},
413 "Display one box or point for each intermediate tree node"},
418 "Display box for each leaf node containing 8x8 voxels"},
428 "Smoothed high quality interpolation, but slower"},
438 "Adjust slice direction according to the view direction"},
458 prop,
"Interpolation",
"Interpolation method to use for volumes in solid mode");
499 "Specify volume data precision. Lower values reduce memory consumption "
500 "at the cost of detail");
508 "Keep volume opacity and detail the same regardless of object scale"},
513 "Specify volume step size and density in world space"},
520 prop,
"Space",
"Specify volume density and step size in object or world space");
529 "Distance between volume samples. Lower values render more detail at "
530 "the cost of performance. If set to zero, the step size is "
531 "automatically determined based on voxel size");
541 "Value under which voxels are considered empty space to optimize rendering");
568 prop,
"Sequence",
"Whether the cache is separated in a series of files");
575 prop,
"Start Frame",
"Global starting frame of the sequence, assuming first has a #1");
586 prop,
"Offset",
"Offset the number of the frame to use in the animation");
595 "Repeat the start frame before, and the end frame after the frame range"},
601 "Repeat the frames, reversing the playback direction every other cycle"},
616 "rna_Volume_grids_begin",
617 "rna_Volume_grids_next",
618 "rna_Volume_grids_end",
619 "rna_Volume_grids_get",
620 "rna_Volume_grids_length",
654 "Name of the velocity field, or the base name if the velocity is split into multiple grids");
662 "Define how the velocity vectors are interpreted with regard to time, 'frame' means "
663 "the delta time is 1 frame, 'second' means the delta time is 1 / FPS");
677 "Name of the grid for the X axis component of the velocity field if it "
678 "was split into multiple grids");
685 "Name of the grid for the Y axis component of the velocity field if it "
686 "was split into multiple grids");
693 "Name of the grid for the Z axis component of the velocity field if it "
694 "was split into multiple grids");
const VolumeGrid * BKE_volume_grid_get_for_read(const struct Volume *volume, int grid_index)
VolumeGridType BKE_volume_grid_type(const struct VolumeGrid *grid)
@ VOLUME_GRID_VECTOR_FLOAT
@ VOLUME_GRID_VECTOR_DOUBLE
void BKE_volume_grid_transform_matrix(const struct VolumeGrid *grid, float mat[4][4])
void BKE_volume_unload(struct Volume *volume)
bool BKE_volume_save(const struct Volume *volume, const struct Main *bmain, struct ReportList *reports, const char *filepath)
const char * BKE_volume_grids_frame_filepath(const struct Volume *volume)
int BKE_volume_grid_channels(const struct VolumeGrid *grid)
void BKE_volume_grid_unload(const struct Volume *volume, const struct VolumeGrid *grid)
bool BKE_volume_grid_is_loaded(const struct VolumeGrid *grid)
const char * BKE_volume_grid_name(const struct VolumeGrid *grid)
int BKE_volume_num_grids(const struct Volume *volume)
const char * BKE_volume_grids_error_msg(const struct Volume *volume)
bool BKE_volume_is_loaded(const struct Volume *volume)
bool BKE_volume_set_velocity_grid_by_name(struct Volume *volume, const char *base_name)
bool BKE_volume_grid_load(const struct Volume *volume, const struct VolumeGrid *grid)
bool BKE_volume_load(const struct Volume *volume, const struct Main *bmain)
MINLINE int max_ii(int a, int b)
MINLINE int clamp_i(int value, int min, int max)
char * BLI_strdup(const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL() ATTR_MALLOC
void DEG_id_tag_update(struct ID *id, int flag)
void DEG_relations_tag_update(struct Main *bmain)
@ ID_RECALC_COPY_ON_WRITE
@ VOLUME_WIREFRAME_POINTS
@ VOLUME_WIREFRAME_BOUNDS
@ VOLUME_DISPLAY_INTERP_CLOSEST
@ VOLUME_DISPLAY_INTERP_LINEAR
@ VOLUME_DISPLAY_INTERP_CUBIC
@ VOLUME_AXIS_SLICE_SINGLE
@ VOLUME_SEQUENCE_PING_PONG
@ VOLUME_PRECISION_VARIABLE
@ VOLUME_WIREFRAME_COARSE
PointerRNA rna_pointer_inherit_refine(PointerRNA *ptr, StructRNA *type, void *data)
void rna_def_animdata_common(StructRNA *srna)
const EnumPropertyItem rna_enum_velocity_unit_items[]
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)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
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_function_return(FunctionRNA *func, PropertyRNA *ret)
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)
PropertyRNA * RNA_def_string_file_path(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
FunctionRNA * RNA_def_function(StructRNA *srna, const char *identifier, const char *call)
void RNA_def_property_srna(PropertyRNA *prop, const char *type)
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_multi_array(PropertyRNA *prop, int dimension, const int length[])
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_range(PropertyRNA *prop, double min, double max)
void RNA_def_property_struct_type(PropertyRNA *prop, const char *type)
void RNA_def_property_collection_sdna(PropertyRNA *prop, const char *structname, const char *propname, const char *lengthpropname)
void RNA_def_function_ui_description(FunctionRNA *func, const char *description)
void RNA_def_property_update(PropertyRNA *prop, int noteflag, const char *func)
const int rna_matrix_dimsize_4x4[]
void RNA_def_property_enum_funcs(PropertyRNA *prop, const char *get, const char *set, const char *item)
PropertyRNA * RNA_def_property(StructOrFunctionRNA *cont_, const char *identifier, int type, int subtype)
void RNA_def_struct_name_property(struct StructRNA *srna, struct PropertyRNA *prop)
void RNA_def_function_flag(FunctionRNA *func, int flag)
void RNA_def_property_clear_flag(PropertyRNA *prop, PropertyFlag flag)
StructRNA * RNA_def_struct(BlenderRNA *brna, const char *identifier, const char *from)
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_ui_range(PropertyRNA *prop, double min, double max, double step, int precision)
void RNA_def_property_int_sdna(PropertyRNA *prop, const char *structname, const char *propname)
void RNA_def_parameter_flags(PropertyRNA *prop, PropertyFlag flag_property, ParameterFlag flag_parameter)
static const EnumPropertyItem space_items[]
static void rna_def_volume_display(BlenderRNA *brna)
static void rna_def_volume(BlenderRNA *brna)
const EnumPropertyItem rna_enum_volume_grid_data_type_items[]
static void rna_def_volume_render(BlenderRNA *brna)
static void rna_def_volume_grids(BlenderRNA *brna, PropertyRNA *cprop)
static void rna_def_volume_grid(BlenderRNA *brna)
void RNA_def_volume(BlenderRNA *brna)
union CollectionPropertyIterator::@1147 internal
void WM_main_add_notifier(unsigned int type, void *reference)
void WM_reportf(eReportType type, const char *format,...)