Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2014-07-20 11:21:05 +0400
committerTamito Kajiyama <rd6t-kjym@asahi-net.or.jp>2014-08-12 05:10:42 +0400
commit45af7690201ab9dea706e006c98daf33a9a1bb8f (patch)
tree7ac0474c1c1c858f017da0c9597a268afbc918c8 /source/blender/freestyle/intern
parente457dfec32410fb65dcec2300041cb9fe26c9ec8 (diff)
Freestyle: Properly reconnect links from a UV Along Stroke node to a UV Map node.
Diffstat (limited to 'source/blender/freestyle/intern')
-rw-r--r--source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp26
1 files changed, 19 insertions, 7 deletions
diff --git a/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp b/source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
index 5d4a2adad81..d0ab6b1a606 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);