[Bf-blender-cvs] [e936e1a8933] new-object-types: Volumes: expose grid data type in Python API
Brecht Van Lommel
noreply at git.blender.org
Fri Jan 31 12:41:34 CET 2020
Commit: e936e1a89331c550b9e0f066f30f46a854bad88c
Author: Brecht Van Lommel
Date: Fri Jan 31 11:19:36 2020 +0100
Branches: new-object-types
https://developer.blender.org/rBe936e1a89331c550b9e0f066f30f46a854bad88c
Volumes: expose grid data type in Python API
===================================================================
M source/blender/makesrna/intern/rna_volume.c
===================================================================
diff --git a/source/blender/makesrna/intern/rna_volume.c b/source/blender/makesrna/intern/rna_volume.c
index 3f2111d6d21..7c9b558fd73 100644
--- a/source/blender/makesrna/intern/rna_volume.c
+++ b/source/blender/makesrna/intern/rna_volume.c
@@ -34,12 +34,12 @@
#include "DNA_volume_types.h"
+#include "BKE_volume.h"
+
#include "BLI_math_base.h"
#ifdef RNA_RUNTIME
-# include "BKE_volume.h"
-
# include "DEG_depsgraph.h"
# include "WM_types.h"
@@ -69,6 +69,12 @@ static int rna_VolumeGrid_name_length(PointerRNA *ptr)
return strlen(BKE_volume_grid_name(grid));
}
+static int rna_VolumeGrid_data_type_get(PointerRNA *ptr)
+{
+ const VolumeGrid *grid = ptr->data;
+ return BKE_volume_grid_type(grid);
+}
+
static int rna_VolumeGrid_channels_get(PointerRNA *ptr)
{
const VolumeGrid *grid = ptr->data;
@@ -192,18 +198,37 @@ static void rna_def_volume_grid(BlenderRNA *brna)
prop, "rna_VolumeGrid_name_get", "rna_VolumeGrid_name_length", NULL);
RNA_def_property_ui_text(prop, "Name", "Volume grid name");
+ static const EnumPropertyItem data_type_items[] = {
+ {VOLUME_GRID_BOOLEAN, "BOOLEAN", 0, "Boolean", "Boolean"},
+ {VOLUME_GRID_FLOAT, "FLOAT", 0, "Float", "Single precision float"},
+ {VOLUME_GRID_DOUBLE, "DOUBLE", 0, "Double", "Double precision"},
+ {VOLUME_GRID_INT, "INT", 0, "Integer", "32 bit integer"},
+ {VOLUME_GRID_INT64, "INT64", 0, "Integer 64 bit", "64 bit integer"},
+ {VOLUME_GRID_MASK, "MASK", 0, "Mask", "No data, boolean mask of active voxels"},
+ {VOLUME_GRID_STRING, "STRING", 0, "String", "Text string"},
+ {VOLUME_GRID_VECTOR_FLOAT, "VECTOR_FLOAT", 0, "Float Vector", "3D float vector"},
+ {VOLUME_GRID_VECTOR_DOUBLE, "VECTOR_DOUBLE", 0, "Double Vector", "3D double vector"},
+ {VOLUME_GRID_VECTOR_INT, "VECTOR_INT", 0, "Integer Vector", "3D integer vector"},
+ {VOLUME_GRID_UNKNOWN, "UNKNOWN", 0, "Unknown", "Unsupported data type"},
+ };
+
+ prop = RNA_def_property(srna, "data_type", PROP_ENUM, PROP_NONE);
+ RNA_def_property_clear_flag(prop, PROP_EDITABLE);
+ RNA_def_property_enum_funcs(prop, "rna_VolumeGrid_data_type_get", NULL, NULL);
+ RNA_def_property_enum_items(prop, data_type_items);
+ RNA_def_property_ui_text(prop, "Data Type", "Data type of voxel values");
+
prop = RNA_def_property(srna, "channels", PROP_INT, PROP_UNSIGNED);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_int_funcs(prop, "rna_VolumeGrid_channels_get", NULL, NULL);
- RNA_def_property_ui_text(prop, "Channels", "Number of channels in voxel data");
+ RNA_def_property_ui_text(prop, "Channels", "Number of dimensions of the grid data type");
- /* TODO: naming, clarification of what index space is. */
prop = RNA_def_property(srna, "matrix_object", PROP_FLOAT, PROP_MATRIX);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
RNA_def_property_multi_array(prop, 2, rna_matrix_dimsize_4x4);
RNA_def_property_float_funcs(prop, "rna_VolumeGrid_matrix_object_get", NULL, NULL);
RNA_def_property_ui_text(
- prop, "Matrix Object", "Transformation from index space to world space");
+ prop, "Matrix Object", "Transformation matrix from voxel index to object space");
prop = RNA_def_property(srna, "is_loaded", PROP_BOOLEAN, PROP_NONE);
RNA_def_property_clear_flag(prop, PROP_EDITABLE);
More information about the Bf-blender-cvs
mailing list