[Bf-blender-cvs] [2ca63aa] cycles-ptex-08: RNA updates for Ptex

Nicholas Bishop noreply at git.blender.org
Tue Jan 20 13:56:59 CET 2015


Commit: 2ca63aa6b974876c829caa343f21804305a05f45
Author: Nicholas Bishop
Date:   Mon Jan 19 16:01:13 2015 +0100
Branches: cycles-ptex-08
https://developer.blender.org/rB2ca63aa6b974876c829caa343f21804305a05f45

RNA updates for Ptex

===================================================================

M	source/blender/makesrna/RNA_access.h
M	source/blender/makesrna/intern/rna_mesh.c

===================================================================

diff --git a/source/blender/makesrna/RNA_access.h b/source/blender/makesrna/RNA_access.h
index 34c2e5a..9e8b2bb 100644
--- a/source/blender/makesrna/RNA_access.h
+++ b/source/blender/makesrna/RNA_access.h
@@ -460,6 +460,8 @@ extern StructRNA RNA_Property;
 extern StructRNA RNA_PropertyGroup;
 extern StructRNA RNA_PropertyGroupItem;
 extern StructRNA RNA_PropertySensor;
+extern StructRNA RNA_PtexLoop;
+extern StructRNA RNA_PtexTessFace;
 extern StructRNA RNA_PythonConstraint;
 extern StructRNA RNA_PythonController;
 extern StructRNA RNA_QuickTimeSettings;
diff --git a/source/blender/makesrna/intern/rna_mesh.c b/source/blender/makesrna/intern/rna_mesh.c
index 3d6eab2..80db7470 100644
--- a/source/blender/makesrna/intern/rna_mesh.c
+++ b/source/blender/makesrna/intern/rna_mesh.c
@@ -833,6 +833,20 @@ static int rna_MeshUVLoopLayer_data_length(PointerRNA *ptr)
 	return (me->edit_btmesh) ? 0 : me->totloop;
 }
 
+static void rna_PtexTessFace_corner_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)
+{
+	MPtexTessFace *ptex_tess_face = ptr->data;
+	const int length = 4;
+	const bool free_ptr = false;
+	rna_iterator_array_begin(iter, ptex_tess_face->corners, sizeof(MPtexLoop),
+							 length, free_ptr, NULL);
+}
+
+static int rna_PtexTessFace_corner_length(PointerRNA *UNUSED(ptr))
+{
+	return 4;
+}
+
 /* face uv_textures */
 
 DEFINE_CUSTOMDATA_LAYER_COLLECTION(tessface_uv_texture, fdata, CD_MTFACE)
@@ -1257,6 +1271,17 @@ static int rna_MeshTessFace_index_get(PointerRNA *ptr)
 	return (int)(face - me->mface);
 }
 
+static PointerRNA rna_MeshTessFace_ptex_tess_face_get(PointerRNA *ptr)
+{
+	Mesh *me = rna_mesh(ptr);
+	PointerRNA rptr;
+	MPtexTessFace * const ptf = CustomData_get(&me->fdata,
+											   rna_MeshTessFace_index_get(ptr),
+											   CD_PTEX_TESSFACE);
+	RNA_pointer_create(&me->id, &RNA_PtexTessFace, ptf, &rptr);
+	return rptr;
+}
+
 static int rna_MeshPolygon_index_get(PointerRNA *ptr)
 {
 	Mesh *me = rna_mesh(ptr);
@@ -1869,6 +1894,28 @@ static void rna_def_medge(BlenderRNA *brna)
 	RNA_def_property_ui_text(prop, "Index", "Index of this edge");
 }
 
+static void rna_def_mptex(BlenderRNA *brna)
+{
+	StructRNA *srna;
+	PropertyRNA *prop;
+
+	srna = RNA_def_struct(brna, "PtexLoop", NULL);
+	RNA_def_struct_sdna(srna, "MPtexLoop");
+	RNA_def_property(srna, "uv", PROP_FLOAT, PROP_XYZ);
+	RNA_def_property(srna, "id", PROP_INT, PROP_NONE);
+
+	srna = RNA_def_struct(brna, "PtexTessFace", NULL);
+	RNA_def_struct_sdna(srna, "MPtexTessFace");
+	prop = RNA_def_property(srna, "corners", PROP_COLLECTION, PROP_NONE);
+	RNA_def_property_struct_type(prop, "PtexLoop");
+	RNA_def_property_collection_funcs(prop, "rna_PtexTessFace_corner_begin",
+									  "rna_iterator_array_next",
+	                                  "rna_iterator_array_end",
+									  "rna_iterator_array_get",
+	                                  "rna_PtexTessFace_corner_length",
+									  NULL, NULL, NULL);
+}
+
 static void rna_def_mface(BlenderRNA *brna)
 {
 	StructRNA *srna;
@@ -1944,6 +1991,11 @@ static void rna_def_mface(BlenderRNA *brna)
 	RNA_def_property_clear_flag(prop, PROP_EDITABLE);
 	RNA_def_property_int_funcs(prop, "rna_MeshTessFace_index_get", NULL, NULL);
 	RNA_def_property_ui_text(prop, "Index", "Index of this face");
+
+	prop = RNA_def_property(srna, "ptex_tess_face", PROP_POINTER, PROP_NONE);
+	RNA_def_property_struct_type(prop, "PtexTessFace");
+	RNA_def_property_pointer_funcs(prop, "rna_MeshTessFace_ptex_tess_face_get", NULL, NULL, NULL);
+	RNA_def_property_ui_text(prop, "PtexTessFace", "");
 }
 
 
@@ -3428,6 +3480,7 @@ void RNA_def_mesh(BlenderRNA *brna)
 	rna_def_mcol(brna);
 	rna_def_mloopcol(brna);
 	rna_def_mproperties(brna);
+	rna_def_mptex(brna);
 }
 
 #endif




More information about the Bf-blender-cvs mailing list