[Bf-blender-cvs] [ea41f668a72] cycles_procedural_api: use getters and setters for the shader nodes

Kévin Dietrich noreply at git.blender.org
Tue Sep 22 14:14:44 CEST 2020


Commit: ea41f668a72555fd7afb38e4a8723018667ada1b
Author: Kévin Dietrich
Date:   Thu Sep 10 15:40:53 2020 +0200
Branches: cycles_procedural_api
https://developer.blender.org/rBea41f668a72555fd7afb38e4a8723018667ada1b

use getters and setters for the shader nodes

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

M	intern/cycles/blender/blender_shader.cpp
M	intern/cycles/graph/node.h
M	intern/cycles/render/graph.cpp
M	intern/cycles/render/image.cpp
M	intern/cycles/render/image.h
M	intern/cycles/render/light.cpp
M	intern/cycles/render/nodes.cpp
M	intern/cycles/render/nodes.h
M	intern/cycles/render/shader.cpp

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

diff --git a/intern/cycles/blender/blender_shader.cpp b/intern/cycles/blender/blender_shader.cpp
index 3f783366c11..fcfdbf2e71b 100644
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@ -194,19 +194,19 @@ static void set_default_value(ShaderInput *input,
   }
 }
 
-static void get_tex_mapping(TextureMapping *mapping, BL::TexMapping &b_mapping)
+static void get_tex_mapping(TextureNode *mapping, BL::TexMapping &b_mapping)
 {
   if (!b_mapping)
     return;
 
-  mapping->translation = get_float3(b_mapping.translation());
-  mapping->rotation = get_float3(b_mapping.rotation());
-  mapping->scale = get_float3(b_mapping.scale());
-  mapping->type = (TextureMapping::Type)b_mapping.vector_type();
+  mapping->set_tex_mapping_translation(get_float3(b_mapping.translation()));
+  mapping->set_tex_mapping_rotation(get_float3(b_mapping.rotation()));
+  mapping->set_tex_mapping_scale(get_float3(b_mapping.scale()));
+  mapping->set_tex_mapping_type((TextureMapping::Type)b_mapping.vector_type());
 
-  mapping->x_mapping = (TextureMapping::Mapping)b_mapping.mapping_x();
-  mapping->y_mapping = (TextureMapping::Mapping)b_mapping.mapping_y();
-  mapping->z_mapping = (TextureMapping::Mapping)b_mapping.mapping_z();
+  mapping->set_tex_mapping_x_mapping((TextureMapping::Mapping)b_mapping.mapping_x());
+  mapping->set_tex_mapping_y_mapping((TextureMapping::Mapping)b_mapping.mapping_y());
+  mapping->set_tex_mapping_z_mapping((TextureMapping::Mapping)b_mapping.mapping_z());
 }
 
 static ShaderNode *add_node(Scene *scene,
@@ -225,34 +225,48 @@ static ShaderNode *add_node(Scene *scene,
     BL::ShaderNodeRGBCurve b_curve_node(b_node);
     BL::CurveMapping mapping(b_curve_node.mapping());
     RGBCurvesNode *curves = graph->create_node<RGBCurvesNode>();
-    curvemapping_color_to_array(mapping, curves->curves, RAMP_TABLE_SIZE, true);
-    curvemapping_minmax(mapping, true, &curves->min_x, &curves->max_x);
+    array<float3> curve_mapping_curves;
+    float min_x, max_x;
+    curvemapping_color_to_array(mapping, curve_mapping_curves, RAMP_TABLE_SIZE, true);
+    curvemapping_minmax(mapping, true, &min_x, &max_x);
+    curves->set_min_x(min_x);
+    curves->set_max_x(max_x);
+    curves->set_curves(curve_mapping_curves);
     node = curves;
   }
   if (b_node.is_a(&RNA_ShaderNodeVectorCurve)) {
     BL::ShaderNodeVectorCurve b_curve_node(b_node);
     BL::CurveMapping mapping(b_curve_node.mapping());
     VectorCurvesNode *curves = graph->create_node<VectorCurvesNode>();
-    curvemapping_color_to_array(mapping, curves->curves, RAMP_TABLE_SIZE, false);
-    curvemapping_minmax(mapping, false, &curves->min_x, &curves->max_x);
+    array<float3> curve_mapping_curves;
+    float min_x, max_x;
+    curvemapping_color_to_array(mapping, curve_mapping_curves, RAMP_TABLE_SIZE, false);
+    curvemapping_minmax(mapping, false, &min_x, &max_x);
+    curves->set_min_x(min_x);
+    curves->set_max_x(max_x);
+    curves->set_curves(curve_mapping_curves);
     node = curves;
   }
   else if (b_node.is_a(&RNA_ShaderNodeValToRGB)) {
     RGBRampNode *ramp = graph->create_node<RGBRampNode>();
     BL::ShaderNodeValToRGB b_ramp_node(b_node);
     BL::ColorRamp b_color_ramp(b_ramp_node.color_ramp());
-    colorramp_to_array(b_color_ramp, ramp->ramp, ramp->ramp_alpha, RAMP_TABLE_SIZE);
-    ramp->interpolate = b_color_ramp.interpolation() != BL::ColorRamp::interpolation_CONSTANT;
+    array<float3> ramp_values;
+    array<float> ramp_alpha;
+    colorramp_to_array(b_color_ramp, ramp_values, ramp_alpha, RAMP_TABLE_SIZE);
+    ramp->set_ramp(ramp_values);
+    ramp->set_ramp_alpha(ramp_alpha);
+    ramp->set_interpolate(b_color_ramp.interpolation() != BL::ColorRamp::interpolation_CONSTANT);
     node = ramp;
   }
   else if (b_node.is_a(&RNA_ShaderNodeRGB)) {
     ColorNode *color = graph->create_node<ColorNode>();
-    color->value = get_node_output_rgba(b_node, "Color");
+    color->set_value(get_node_output_rgba(b_node, "Color"));
     node = color;
   }
   else if (b_node.is_a(&RNA_ShaderNodeValue)) {
     ValueNode *value = graph->create_node<ValueNode>();
-    value->value = get_node_output_value(b_node, "Value");
+    value->set_value(get_node_output_value(b_node, "Value"));
     node = value;
   }
   else if (b_node.is_a(&RNA_ShaderNodeCameraData)) {
@@ -270,8 +284,8 @@ static ShaderNode *add_node(Scene *scene,
   else if (b_node.is_a(&RNA_ShaderNodeMixRGB)) {
     BL::ShaderNodeMixRGB b_mix_node(b_node);
     MixNode *mix = graph->create_node<MixNode>();
-    mix->type = (NodeMix)b_mix_node.blend_type();
-    mix->use_clamp = b_mix_node.use_clamp();
+    mix->set_mix_type((NodeMix)b_mix_node.blend_type());
+    mix->set_use_clamp(b_mix_node.use_clamp());
     node = mix;
   }
   else if (b_node.is_a(&RNA_ShaderNodeSeparateRGB)) {
@@ -301,43 +315,43 @@ static ShaderNode *add_node(Scene *scene,
   else if (b_node.is_a(&RNA_ShaderNodeMapRange)) {
     BL::ShaderNodeMapRange b_map_range_node(b_node);
     MapRangeNode *map_range_node = graph->create_node<MapRangeNode>();
-    map_range_node->clamp = b_map_range_node.clamp();
-    map_range_node->type = (NodeMapRangeType)b_map_range_node.interpolation_type();
+    map_range_node->set_clamp(b_map_range_node.clamp());
+    map_range_node->set_range_type((NodeMapRangeType)b_map_range_node.interpolation_type());
     node = map_range_node;
   }
   else if (b_node.is_a(&RNA_ShaderNodeClamp)) {
     BL::ShaderNodeClamp b_clamp_node(b_node);
     ClampNode *clamp_node = graph->create_node<ClampNode>();
-    clamp_node->type = (NodeClampType)b_clamp_node.clamp_type();
+    clamp_node->set_clamp_type((NodeClampType)b_clamp_node.clamp_type());
     node = clamp_node;
   }
   else if (b_node.is_a(&RNA_ShaderNodeMath)) {
     BL::ShaderNodeMath b_math_node(b_node);
     MathNode *math_node = graph->create_node<MathNode>();
-    math_node->type = (NodeMathType)b_math_node.operation();
-    math_node->use_clamp = b_math_node.use_clamp();
+    math_node->set_math_type((NodeMathType)b_math_node.operation());
+    math_node->set_use_clamp(b_math_node.use_clamp());
     node = math_node;
   }
   else if (b_node.is_a(&RNA_ShaderNodeVectorMath)) {
     BL::ShaderNodeVectorMath b_vector_math_node(b_node);
     VectorMathNode *vector_math_node = graph->create_node<VectorMathNode>();
-    vector_math_node->type = (NodeVectorMathType)b_vector_math_node.operation();
+    vector_math_node->set_math_type((NodeVectorMathType)b_vector_math_node.operation());
     node = vector_math_node;
   }
   else if (b_node.is_a(&RNA_ShaderNodeVectorRotate)) {
     BL::ShaderNodeVectorRotate b_vector_rotate_node(b_node);
     VectorRotateNode *vector_rotate_node = graph->create_node<VectorRotateNode>();
-    vector_rotate_node->type = (NodeVectorRotateType)b_vector_rotate_node.rotation_type();
-    vector_rotate_node->invert = b_vector_rotate_node.invert();
+    vector_rotate_node->set_rotate_type((NodeVectorRotateType)b_vector_rotate_node.rotation_type());
+    vector_rotate_node->set_invert(b_vector_rotate_node.invert());
     node = vector_rotate_node;
   }
   else if (b_node.is_a(&RNA_ShaderNodeVectorTransform)) {
     BL::ShaderNodeVectorTransform b_vector_transform_node(b_node);
     VectorTransformNode *vtransform = graph->create_node<VectorTransformNode>();
-    vtransform->type = (NodeVectorTransformType)b_vector_transform_node.vector_type();
-    vtransform->convert_from = (NodeVectorTransformConvertSpace)
-                                   b_vector_transform_node.convert_from();
-    vtransform->convert_to = (NodeVectorTransformConvertSpace)b_vector_transform_node.convert_to();
+    vtransform->set_transform_type((NodeVectorTransformType)b_vector_transform_node.vector_type());
+    vtransform->set_convert_from((NodeVectorTransformConvertSpace)
+                                   b_vector_transform_node.convert_from());
+    vtransform->set_convert_to((NodeVectorTransformConvertSpace)b_vector_transform_node.convert_to());
     node = vtransform;
   }
   else if (b_node.is_a(&RNA_ShaderNodeNormal)) {
@@ -345,13 +359,13 @@ static ShaderNode *add_node(Scene *scene,
     b_node.outputs.begin(out_it);
 
     NormalNode *norm = graph->create_node<NormalNode>();
-    norm->direction = get_node_output_vector(b_node, "Normal");
+    norm->set_direction(get_node_output_vector(b_node, "Normal"));
     node = norm;
   }
   else if (b_node.is_a(&RNA_ShaderNodeMapping)) {
     BL::ShaderNodeMapping b_mapping_node(b_node);
     MappingNode *mapping = graph->create_node<MappingNode>();
-    mapping->type = (NodeMappingType)b_mapping_node.vector_type();
+    mapping->set_mapping_type((NodeMappingType)b_mapping_node.vector_type());
     node = mapping;
   }
   else if (b_node.is_a(&RNA_ShaderNodeFresnel)) {
@@ -369,7 +383,7 @@ static ShaderNode *add_node(Scene *scene,
   else if (b_node.is_a(&RNA_ShaderNodeAttribute)) {
     BL::ShaderNodeAttribute b_attr_node(b_node);
     AttributeNode *attr = graph->create_node<AttributeNode>();
-    attr->attribute = b_attr_node.attribute_name();
+    attr->set_attribute(ustring(b_attr_node.attribute_name()));
     node = attr;
   }
   else if (b_node.is_a(&RNA_ShaderNodeBackground)) {
@@ -384,16 +398,16 @@ static ShaderNode *add_node(Scene *scene,
 
     switch (b_aniso_node.distribution()) {
       case BL::ShaderNodeBsdfAnisotropic::distribution_BECKMANN:
-        aniso->distribution = CLOSURE_BSDF_MICROFACET_BECKMANN_ID;
+        aniso->set_distribution(CLOSURE_BSDF_MICROFACET_BECKMANN_ID);
         break;
       case BL::ShaderNodeBsdfAnisotropic::distribution_GGX:
-        aniso->distribution = CLOSURE_BSDF_MICROFACET_GGX_ID;
+        aniso->set_distribution(CLOSURE_BSDF_MICROFACET_GGX_ID);
         break;
       case BL::ShaderNodeBsdfAnisotropic::distribution_MULTI_GGX:
-        aniso->distribution = CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID;
+        aniso->set_distribution(CLOSURE_BSDF_MICROFACET_MULTI_GGX_ID);
         break;
       case BL::ShaderNodeBsdfAnisotropic::distribution_ASHIKHMIN_SHIRLEY:
-        aniso->distribution = CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID;
+        aniso->set_distribution(CLOSURE_BSDF_ASHIKHMIN_SHIRLEY_ID);
         break;
     }
 
@@ -409,16 +423,16 @@ static ShaderNode *add_

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list