Commit: 0e9ccb3c124496b173b83c7fc94b3080af8abfac
Author: Kévin Dietrich
Date:   Wed Jan 27 12:53:54 2016 +0100
Branches: openvdb
https://developer.blender.org/rB0e9ccb3c124496b173b83c7fc94b3080af8abfac

Merge branch 'master' into openvdb

Conflicts:
        source/blender/makesrna/intern/rna_nodetree.c

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



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

diff --cc intern/cycles/blender/blender_shader.cpp
index 496ffb6,a06a609..2d65720
--- a/intern/cycles/blender/blender_shader.cpp
+++ b/intern/cycles/blender/blender_shader.cpp
@@@ -824,35 -816,25 +816,53 @@@ static ShaderNode *add_node(Scene *scen
                                EXTENSION_CLIP);
                }
                node = point_density;
+ 
+               /* Transformation form world space to texture space.
+                *
+                * NOTE: Do this after the texture is cached, this is because 
getting
+                * min/max will need to access this cache.
+                */
+               BL::Object b_ob(b_point_density_node.object());
+               if(b_ob) {
+                       float3 loc, size;
+                       point_density_texture_space(b_scene,
+                                                   b_point_density_node,
+                                                   settings,
+                                                   loc,
+                                                   size);
+                       point_density->tfm =
+                               transform_translate(-loc) * 
transform_scale(size) *
+                               
transform_inverse(get_transform(b_ob.matrix_world()));
+               }
        }
 +      else if(b_node.is_a(&RNA_ShaderNodeOpenVDB)) {
 +              BL::ShaderNodeOpenVDB b_vdb_node(b_node);
 +              OpenVDBNode *vdb_node = new OpenVDBNode();
 +              vdb_node->filename = b_vdb_node.filename();
 +              vdb_node->sampling = b_vdb_node.sampling();
 +
 +              /* TODO(kevin) */
 +              if(b_vdb_node.source() == 
BL::ShaderNodeOpenVDB::source_SEQUENCE) {
 +                      string filename = b_vdb_node.filename();
 +                      string basename = filename.substr(0, filename.size() - 
8);
 +                      stringstream ss;
 +                      ss << b_scene.frame_current();
 +                      string frame = ss.str();
 +                      frame.insert(frame.begin(), 4 - frame.size(), '0');
 +
 +                      vdb_node->filename = ustring::format("%s%s.vdb", 
basename, frame);
 +              }
 +
 +              BL::Node::outputs_iterator b_output;
 +
 +              for(b_vdb_node.outputs.begin(b_output); b_output != 
b_vdb_node.outputs.end(); ++b_output) {
 +                      
vdb_node->output_names.push_back(ustring(b_output->name()));
 +                      
vdb_node->add_output(vdb_node->output_names.back().c_str(),
 +                                           convert_socket_type(*b_output));
 +              }
 +
 +              node = vdb_node;
 +      }
  
        if(node)
                graph->add(node);
diff --cc source/blender/makesrna/intern/rna_nodetree.c
index 6075c7a,f06492e..61e174e
--- a/source/blender/makesrna/intern/rna_nodetree.c
+++ b/source/blender/makesrna/intern/rna_nodetree.c
@@@ -3100,18 -3100,22 +3100,34 @@@ void rna_ShaderNodePointDensity_density
        BKE_texture_pointdensity_free_data(pd);
  }
  
+ void rna_ShaderNodePointDensity_density_minmax(bNode *self,
+                                                Scene *scene,
+                                                int settings,
+                                                float r_min[3],
+                                                float r_max[3])
+ {
+       NodeShaderTexPointDensity *shader_point_density = self->storage;
+       PointDensity *pd = &shader_point_density->pd;
+       if (scene == NULL) {
+               zero_v3(r_min);
+               zero_v3(r_max);
+               return;
+       }
+       RE_point_density_minmax(scene, pd, settings == 1, r_min, r_max);
+ }
+ 
 +static void rna_ShaderNodeOpenVDB_update(Main *bmain, Scene *scene, 
PointerRNA *ptr)
 +{
 +      bNodeTree *ntree = (bNodeTree *)ptr->id.data;
 +      bNode *node = (bNode *)ptr->data;
 +
 +      ntreeUpdateOpenVDBNode(bmain, ntree, node);
 +      ntreeUpdateTree(bmain, ntree);
 +      WM_main_add_notifier(NC_NODE | NA_EDITED, ntree);
 +
 +      UNUSED_VARS(scene);
 +}
 +
  #else
  
  static EnumPropertyItem prop_image_layer_items[] = {

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to