[Bf-blender-cvs] [45af769] master: Freestyle: Properly reconnect links from a UV Along Stroke node to a UV Map node.

Tamito Kajiyama noreply at git.blender.org
Tue Aug 12 03:18:11 CEST 2014


Commit: 45af7690201ab9dea706e006c98daf33a9a1bb8f
Author: Tamito Kajiyama
Date:   Sun Jul 20 16:21:05 2014 +0900
Branches: master
https://developer.blender.org/rB45af7690201ab9dea706e006c98daf33a9a1bb8f

Freestyle: Properly reconnect links from a UV Along Stroke node to a UV Map node.

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

M	source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp

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

diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
index 5d4a2ad..d0ab6b1 100644
--- a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
+++ b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
@@ -346,21 +346,33 @@ Material* BlenderStrokeRenderer::GetStrokeShader(bContext *C, Main *bmain, bNode
 		outsock = (bNodeSocket *)BLI_findlink(&output_linestyle->inputs, 3); // Alpha Fac
 #endif
 
-#if 0
 		for (bNode *node = (bNode *)ntree->nodes.first; node; node = node->next) {
-			if (node->type == SH_NODE_TEX_IMAGE) {
+			if (node->type == SH_NODE_UVALONGSTROKE) {
+				// UV output of the UV Along Stroke node
+				bNodeSocket *sock = (bNodeSocket *)BLI_findlink(&node->outputs, 0);
+
+				// add new UV Map node
 				bNode *input_uvmap = nodeAddStaticNode(C, ntree, SH_NODE_UVMAP);
 				input_uvmap->locx = node->locx - 200.0f;
 				input_uvmap->locy = node->locy;
 				NodeShaderUVMap *storage = (NodeShaderUVMap *)input_uvmap->storage;
-				BLI_strncpy(storage->uv_map, "along_stroke_tips", sizeof(storage->uv_map));
-
+				if (node->custom1 & 1) { // use_tips
+					BLI_strncpy(storage->uv_map, "along_stroke_tips", sizeof(storage->uv_map));
+				}
+				else {
+					BLI_strncpy(storage->uv_map, "along_stroke", sizeof(storage->uv_map));
+				}
 				fromsock = (bNodeSocket *)BLI_findlink(&input_uvmap->outputs, 0); // UV
-				tosock = (bNodeSocket *)BLI_findlink(&node->inputs, 0); // Vector
-				nodeAddLink(ntree, input_uvmap, fromsock, node, tosock);
+
+				// replace links from the UV Along Stroke node by links from the UV Map node
+				for (bNodeLink *link = (bNodeLink *)ntree->links.first; link; link = link->next) {
+					if (link->fromnode == node && link->fromsock == sock) {
+						nodeAddLink(ntree, input_uvmap, fromsock, link->tonode, link->tosock);
+					}
+				}
+				nodeRemSocketLinks(ntree, sock);
 			}
 		}
-#endif
 	}
 
 	nodeSetActive(ntree, shader_mix);




More information about the Bf-blender-cvs mailing list