This repository has been archived on 2023-10-09. You can view files and clone it, but cannot push or open issues or pull requests.
Files
blender-archive/release/scripts/startup/nodes/function_nodes/vector.py

72 lines
2.3 KiB
Python

import bpy
from bpy.props import *
from .. base import FunctionNode
from .. node_builder import NodeBuilder
class VectorFromValueNode(bpy.types.Node, FunctionNode):
bl_idname = "fn_VectorFromValueNode"
bl_label = "Vector from Value"
use_list__value: NodeBuilder.VectorizedProperty()
def declaration(self, builder: NodeBuilder):
builder.vectorized_input("value", "use_list__value", "Value", "Values", "Float")
builder.vectorized_output("vector", ["use_list__value"], "Vector", "Vectors", "Vector")
class CombineVectorNode(bpy.types.Node, FunctionNode):
bl_idname = "fn_CombineVectorNode"
bl_label = "Combine Vector"
use_list__x: NodeBuilder.VectorizedProperty()
use_list__y: NodeBuilder.VectorizedProperty()
use_list__z: NodeBuilder.VectorizedProperty()
def declaration(self, builder):
builder.vectorized_input(
"x", "use_list__x",
"X", "X", "Float")
builder.vectorized_input(
"y", "use_list__y",
"Y", "Y", "Float")
builder.vectorized_input(
"z", "use_list__z",
"Z", "Z", "Float")
builder.vectorized_output(
"vector", ["use_list__x", "use_list__y", "use_list__z"],
"Vector", "Vectors", "Vector")
class SeparateVectorNode(bpy.types.Node, FunctionNode):
bl_idname = "fn_SeparateVectorNode"
bl_label = "Separate Vector"
use_list__vector: NodeBuilder.VectorizedProperty()
def declaration(self, builder: NodeBuilder):
builder.vectorized_input(
"vector", "use_list__vector",
"Vector", "Vectors", "Vector")
builder.vectorized_output(
"x", ["use_list__vector"],
"X", "X", "Float")
builder.vectorized_output(
"y", ["use_list__vector"],
"Y", "Y", "Float")
builder.vectorized_output(
"z", ["use_list__vector"],
"Z", "Z", "Float")
class FindNonClosePointsNode(bpy.types.Node, FunctionNode):
bl_idname = "fn_FindNonClosePointsNode"
bl_label = "Find Non Close Point"
def declaration(self, builder: NodeBuilder):
builder.fixed_input("points", "Points", "Vector List")
builder.fixed_input("min_distance", "Min Distance", "Float", default=0.1)
builder.fixed_output("indices", "Indices", "Integer List")