Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenloader/intern/versioning_cycles.c
| Show First 20 Lines • Show All 807 Lines • ▼ Show 20 Lines | if (node->type == SH_NODE_MAPPING && node->storage) { | ||||
| bNodeSocket *sockLocation = nodeFindSocket(node, SOCK_IN, "Location"); | bNodeSocket *sockLocation = nodeFindSocket(node, SOCK_IN, "Location"); | ||||
| copy_v3_v3(cycles_node_socket_vector_value(sockLocation), mapping->loc); | copy_v3_v3(cycles_node_socket_vector_value(sockLocation), mapping->loc); | ||||
| bNodeSocket *sockRotation = nodeFindSocket(node, SOCK_IN, "Rotation"); | bNodeSocket *sockRotation = nodeFindSocket(node, SOCK_IN, "Rotation"); | ||||
| copy_v3_v3(cycles_node_socket_vector_value(sockRotation), mapping->rot); | copy_v3_v3(cycles_node_socket_vector_value(sockRotation), mapping->rot); | ||||
| bNodeSocket *sockScale = nodeFindSocket(node, SOCK_IN, "Scale"); | bNodeSocket *sockScale = nodeFindSocket(node, SOCK_IN, "Scale"); | ||||
| copy_v3_v3(cycles_node_socket_vector_value(sockScale), mapping->size); | copy_v3_v3(cycles_node_socket_vector_value(sockScale), mapping->size); | ||||
| bNode *maximumNode = NULL; | bNode *maximumNode = NULL; | ||||
| if (mapping->flag & TEXMAP_CLIP_MAX) { | if (mapping->flag & TEXMAP_CLIP_MIN) { | ||||
| maximumNode = nodeAddStaticNode(NULL, ntree, SH_NODE_VECTOR_MATH); | maximumNode = nodeAddStaticNode(NULL, ntree, SH_NODE_VECTOR_MATH); | ||||
| maximumNode->custom1 = NODE_VECTOR_MATH_MAXIMUM; | maximumNode->custom1 = NODE_VECTOR_MATH_MAXIMUM; | ||||
| if (mapping->flag & TEXMAP_CLIP_MIN) { | if (mapping->flag & TEXMAP_CLIP_MAX) { | ||||
| maximumNode->locx = node->locx + (node->width + 20.0f) * 2.0f; | maximumNode->locx = node->locx + (node->width + 20.0f) * 2.0f; | ||||
| } | } | ||||
| else { | else { | ||||
| maximumNode->locx = node->locx + node->width + 20.0f; | maximumNode->locx = node->locx + node->width + 20.0f; | ||||
| } | } | ||||
| maximumNode->locy = node->locy; | maximumNode->locy = node->locy; | ||||
| bNodeSocket *sockMaximumB = BLI_findlink(&maximumNode->inputs, 1); | bNodeSocket *sockMaximumB = BLI_findlink(&maximumNode->inputs, 1); | ||||
| copy_v3_v3(cycles_node_socket_vector_value(sockMaximumB), mapping->max); | copy_v3_v3(cycles_node_socket_vector_value(sockMaximumB), mapping->min); | ||||
| bNodeSocket *sockMappingResult = nodeFindSocket(node, SOCK_OUT, "Vector"); | bNodeSocket *sockMappingResult = nodeFindSocket(node, SOCK_OUT, "Vector"); | ||||
| LISTBASE_FOREACH_BACKWARD_MUTABLE (bNodeLink *, link, &ntree->links) { | LISTBASE_FOREACH_BACKWARD_MUTABLE (bNodeLink *, link, &ntree->links) { | ||||
| if (link->fromsock == sockMappingResult) { | if (link->fromsock == sockMappingResult) { | ||||
| bNodeSocket *sockMaximumResult = nodeFindSocket(maximumNode, SOCK_OUT, "Vector"); | bNodeSocket *sockMaximumResult = nodeFindSocket(maximumNode, SOCK_OUT, "Vector"); | ||||
| nodeAddLink(ntree, maximumNode, sockMaximumResult, link->tonode, link->tosock); | nodeAddLink(ntree, maximumNode, sockMaximumResult, link->tonode, link->tosock); | ||||
| nodeRemLink(ntree, link); | nodeRemLink(ntree, link); | ||||
| } | } | ||||
| } | } | ||||
| if (!(mapping->flag & TEXMAP_CLIP_MIN)) { | if (!(mapping->flag & TEXMAP_CLIP_MAX)) { | ||||
| bNodeSocket *sockMaximumA = BLI_findlink(&maximumNode->inputs, 0); | bNodeSocket *sockMaximumA = BLI_findlink(&maximumNode->inputs, 0); | ||||
| nodeAddLink(ntree, node, sockMappingResult, maximumNode, sockMaximumA); | nodeAddLink(ntree, node, sockMappingResult, maximumNode, sockMaximumA); | ||||
| } | } | ||||
| need_update = true; | need_update = true; | ||||
| } | } | ||||
| bNode *minimumNode = NULL; | bNode *minimumNode = NULL; | ||||
| if (mapping->flag & TEXMAP_CLIP_MIN) { | if (mapping->flag & TEXMAP_CLIP_MAX) { | ||||
| minimumNode = nodeAddStaticNode(NULL, ntree, SH_NODE_VECTOR_MATH); | minimumNode = nodeAddStaticNode(NULL, ntree, SH_NODE_VECTOR_MATH); | ||||
| minimumNode->custom1 = NODE_VECTOR_MATH_MINIMUM; | minimumNode->custom1 = NODE_VECTOR_MATH_MINIMUM; | ||||
| minimumNode->locx = node->locx + node->width + 20.0f; | minimumNode->locx = node->locx + node->width + 20.0f; | ||||
| minimumNode->locy = node->locy; | minimumNode->locy = node->locy; | ||||
| bNodeSocket *sockMinimumB = BLI_findlink(&minimumNode->inputs, 1); | bNodeSocket *sockMinimumB = BLI_findlink(&minimumNode->inputs, 1); | ||||
| copy_v3_v3(cycles_node_socket_vector_value(sockMinimumB), mapping->min); | copy_v3_v3(cycles_node_socket_vector_value(sockMinimumB), mapping->max); | ||||
| bNodeSocket *sockMinimumResult = nodeFindSocket(minimumNode, SOCK_OUT, "Vector"); | bNodeSocket *sockMinimumResult = nodeFindSocket(minimumNode, SOCK_OUT, "Vector"); | ||||
| bNodeSocket *sockMappingResult = nodeFindSocket(node, SOCK_OUT, "Vector"); | bNodeSocket *sockMappingResult = nodeFindSocket(node, SOCK_OUT, "Vector"); | ||||
| if (maximumNode) { | if (maximumNode) { | ||||
| bNodeSocket *sockMaximumA = BLI_findlink(&maximumNode->inputs, 0); | bNodeSocket *sockMaximumA = BLI_findlink(&maximumNode->inputs, 0); | ||||
| nodeAddLink(ntree, minimumNode, sockMinimumResult, maximumNode, sockMaximumA); | nodeAddLink(ntree, minimumNode, sockMinimumResult, maximumNode, sockMaximumA); | ||||
| } | } | ||||
| Show All 12 Lines | if (node->type == SH_NODE_MAPPING && node->storage) { | ||||
| } | } | ||||
| MEM_freeN(node->storage); | MEM_freeN(node->storage); | ||||
| node->storage = NULL; | node->storage = NULL; | ||||
| AnimData *animData = BKE_animdata_from_id(&ntree->id); | AnimData *animData = BKE_animdata_from_id(&ntree->id); | ||||
| if (animData && animData->action) { | if (animData && animData->action) { | ||||
| char *nodePath = BLI_sprintfN("nodes[\"%s\"]", node->name); | char *nodePath = BLI_sprintfN("nodes[\"%s\"]", node->name); | ||||
| for (FCurve *fcu = animData->action->curves.first; fcu; fcu = fcu->next) { | for (FCurve *fcu = animData->action->curves.first; fcu; fcu = fcu->next) { | ||||
| if (STRPREFIX(fcu->rna_path, nodePath) && | if (STRPREFIX(fcu->rna_path, nodePath) && | ||||
| !BLI_str_endswith(fcu->rna_path, "default_value")) { | !BLI_str_endswith(fcu->rna_path, "default_value")) { | ||||
| char *old_fcu_rna_path = fcu->rna_path; | char *old_fcu_rna_path = fcu->rna_path; | ||||
| if (BLI_str_endswith(old_fcu_rna_path, "translation")) { | if (BLI_str_endswith(old_fcu_rna_path, "translation")) { | ||||
| fcu->rna_path = BLI_sprintfN("%s.%s", nodePath, "inputs[1].default_value"); | fcu->rna_path = BLI_sprintfN("%s.%s", nodePath, "inputs[1].default_value"); | ||||
| } | } | ||||
| else if (BLI_str_endswith(old_fcu_rna_path, "rotation")) { | else if (BLI_str_endswith(old_fcu_rna_path, "rotation")) { | ||||
| fcu->rna_path = BLI_sprintfN("%s.%s", nodePath, "inputs[2].default_value"); | fcu->rna_path = BLI_sprintfN("%s.%s", nodePath, "inputs[2].default_value"); | ||||
| } | } | ||||
| else if (BLI_str_endswith(old_fcu_rna_path, "scale")) { | else if (BLI_str_endswith(old_fcu_rna_path, "scale")) { | ||||
| fcu->rna_path = BLI_sprintfN("%s.%s", nodePath, "inputs[3].default_value"); | fcu->rna_path = BLI_sprintfN("%s.%s", nodePath, "inputs[3].default_value"); | ||||
| } | } | ||||
| else if (minimumNode && BLI_str_endswith(old_fcu_rna_path, "min")) { | else if (minimumNode && BLI_str_endswith(old_fcu_rna_path, "max")) { | ||||
| fcu->rna_path = BLI_sprintfN( | fcu->rna_path = BLI_sprintfN( | ||||
| "nodes[\"%s\"].%s", minimumNode->name, "inputs[1].default_value"); | "nodes[\"%s\"].%s", minimumNode->name, "inputs[1].default_value"); | ||||
| } | } | ||||
| else if (maximumNode && BLI_str_endswith(old_fcu_rna_path, "max")) { | else if (maximumNode && BLI_str_endswith(old_fcu_rna_path, "min")) { | ||||
| fcu->rna_path = BLI_sprintfN( | fcu->rna_path = BLI_sprintfN( | ||||
| "nodes[\"%s\"].%s", maximumNode->name, "inputs[1].default_value"); | "nodes[\"%s\"].%s", maximumNode->name, "inputs[1].default_value"); | ||||
| } | } | ||||
| if (fcu->rna_path != old_fcu_rna_path) { | if (fcu->rna_path != old_fcu_rna_path) { | ||||
| MEM_freeN(old_fcu_rna_path); | MEM_freeN(old_fcu_rna_path); | ||||
| } | } | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 503 Lines • Show Last 20 Lines | |||||