Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 19 additions & 6 deletions nodes/inputs/ScCircle.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@ class ScCircle(Node, ScInputNode):
in_type: EnumProperty(items=[("NOTHING", "Nothing", ""), ("NGON", "Ngon", ""), ("TRIFAN", "Triangle Fan", "")], default="NOTHING", update=ScNode.update_value)
in_vertices: IntProperty(default=32, min=3, max=10000000, update=ScNode.update_value)
in_radius: FloatProperty(default=1.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)

def init(self, context):
super().init(context)
self.inputs.new("ScNodeSocketBool", "Generate UVs").init("in_uv")
self.inputs.new("ScNodeSocketString", "Fill Type").init("in_type")
self.inputs.new("ScNodeSocketNumber", "Vertices").init("in_vertices", True)
self.inputs.new("ScNodeSocketNumber", "Radius").init("in_radius", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)

def error_condition(self):
return (
Expand All @@ -30,9 +32,20 @@ def error_condition(self):
)

def functionality(self):
bpy.ops.mesh.primitive_circle_add(
vertices = int(self.inputs["Vertices"].default_value),
radius = self.inputs["Radius"].default_value,
fill_type = self.inputs["Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_circle_add(
vertices = int(self.inputs["Vertices"].default_value),
radius = self.inputs["Radius"].default_value,
fill_type = self.inputs["Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_circle_add(
vertices = int(self.inputs["Vertices"].default_value),
radius = self.inputs["Radius"].default_value,
fill_type = self.inputs["Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
31 changes: 23 additions & 8 deletions nodes/inputs/ScCone.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ class ScCone(Node, ScInputNode):
in_radius1: FloatProperty(default=1.0, min=0.0, update=ScNode.update_value)
in_radius2: FloatProperty(min=0.0, update=ScNode.update_value)
in_depth: FloatProperty(default=2.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)

def init(self, context):
super().init(context)
Expand All @@ -24,6 +25,7 @@ def init(self, context):
self.inputs.new("ScNodeSocketNumber", "Radius 1").init("in_radius1", True)
self.inputs.new("ScNodeSocketNumber", "Radius 2").init("in_radius2")
self.inputs.new("ScNodeSocketNumber", "Depth").init("in_depth", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)

def error_condition(self):
return (
Expand All @@ -36,11 +38,24 @@ def error_condition(self):
)

def functionality(self):
bpy.ops.mesh.primitive_cone_add(
vertices = int(self.inputs["Vertices"].default_value),
radius1 = self.inputs["Radius 1"].default_value,
radius2 = self.inputs["Radius 2"].default_value,
depth = self.inputs["Depth"].default_value,
end_fill_type = self.inputs["Base Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_cone_add(
vertices = int(self.inputs["Vertices"].default_value),
radius1 = self.inputs["Radius 1"].default_value,
radius2 = self.inputs["Radius 2"].default_value,
depth = self.inputs["Depth"].default_value,
end_fill_type = self.inputs["Base Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_cone_add(
vertices = int(self.inputs["Vertices"].default_value),
radius1 = self.inputs["Radius 1"].default_value,
radius2 = self.inputs["Radius 2"].default_value,
depth = self.inputs["Depth"].default_value,
end_fill_type = self.inputs["Base Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
23 changes: 17 additions & 6 deletions nodes/inputs/ScCube.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import bpy
import bpy

from bpy.props import FloatProperty, BoolProperty
from bpy.types import Node
Expand All @@ -11,20 +11,31 @@ class ScCube(Node, ScInputNode):

in_uv: BoolProperty(default=True, update=ScNode.update_value)
in_size: FloatProperty(default=2.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)#默认世界原点为否 World Origin default=False

def init(self, context):
super().init(context)
self.inputs.new("ScNodeSocketBool", "Generate UVs").init("in_uv")
self.inputs.new("ScNodeSocketNumber", "Size").init("in_size", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)#默认原点原点为否,在节点显示 display in node

def error_condition(self):
return (
super().error_condition()
or self.inputs["Size"].default_value <= 0
)

#是否是在原点创建物体,不是默认则在游标创建物体 Whether the object is created at the origin, at the cursor by default
def functionality(self):
bpy.ops.mesh.primitive_cube_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_cube_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_cube_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
)
28 changes: 21 additions & 7 deletions nodes/inputs/ScCylinder.py
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ class ScCylinder(Node, ScInputNode):
in_vertices: IntProperty(default=32, min=3, max=10000000, update=ScNode.update_value)
in_radius: FloatProperty(default=1.0, min=0.0, update=ScNode.update_value)
in_depth: FloatProperty(default=2.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)

def init(self, context):
super().init(context)
Expand All @@ -22,6 +23,7 @@ def init(self, context):
self.inputs.new("ScNodeSocketNumber", "Vertices").init("in_vertices", True)
self.inputs.new("ScNodeSocketNumber", "Radius").init("in_radius", True)
self.inputs.new("ScNodeSocketNumber", "Depth").init("in_depth", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)

def error_condition(self):
return (
Expand All @@ -33,10 +35,22 @@ def error_condition(self):
)

def functionality(self):
bpy.ops.mesh.primitive_cylinder_add(
vertices = int(self.inputs["Vertices"].default_value),
radius = self.inputs["Radius"].default_value,
depth = self.inputs["Depth"].default_value,
end_fill_type = self.inputs["Cap Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_cylinder_add(
vertices = int(self.inputs["Vertices"].default_value),
radius = self.inputs["Radius"].default_value,
depth = self.inputs["Depth"].default_value,
end_fill_type = self.inputs["Cap Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_cylinder_add(
vertices = int(self.inputs["Vertices"].default_value),
radius = self.inputs["Radius"].default_value,
depth = self.inputs["Depth"].default_value,
end_fill_type = self.inputs["Cap Fill Type"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
25 changes: 19 additions & 6 deletions nodes/inputs/ScGrid.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,13 +13,15 @@ class ScGrid(Node, ScInputNode):
in_x: IntProperty(default=10, min=2, max=10000000, update=ScNode.update_value)
in_y: IntProperty(default=10, min=2, max=10000000, update=ScNode.update_value)
in_size: FloatProperty(default=2.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)

def init(self, context):
super().init(context)
self.inputs.new("ScNodeSocketBool", "Generate UVs").init("in_uv")
self.inputs.new("ScNodeSocketNumber", "X Subdivisions").init("in_x", True)
self.inputs.new("ScNodeSocketNumber", "Y Subdivisions").init("in_y", True)
self.inputs.new("ScNodeSocketNumber", "Size").init("in_size", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)

def error_condition(self):
return (
Expand All @@ -30,9 +32,20 @@ def error_condition(self):
)

def functionality(self):
bpy.ops.mesh.primitive_grid_add(
x_subdivisions = int(self.inputs["X Subdivisions"].default_value),
y_subdivisions = int(self.inputs["Y Subdivisions"].default_value),
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_grid_add(
x_subdivisions = int(self.inputs["X Subdivisions"].default_value),
y_subdivisions = int(self.inputs["Y Subdivisions"].default_value),
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_grid_add(
x_subdivisions = int(self.inputs["X Subdivisions"].default_value),
y_subdivisions = int(self.inputs["Y Subdivisions"].default_value),
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
24 changes: 18 additions & 6 deletions nodes/inputs/ScIcoSphere.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,14 @@ class ScIcoSphere(Node, ScInputNode):
in_uv: BoolProperty(default=True, update=ScNode.update_value)
in_subdivision: IntProperty(default=2, min=1, max=10, update=ScNode.update_value)
in_radius: FloatProperty(default=1.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)

def init(self, context):
super().init(context)
self.inputs.new("ScNodeSocketBool", "Generate UVs").init("in_uv")
self.inputs.new("ScNodeSocketNumber", "Subdivisions").init("in_subdivision", True)
self.inputs.new("ScNodeSocketNumber", "Radius").init("in_radius", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)

def error_condition(self):
return (
Expand All @@ -26,9 +28,19 @@ def error_condition(self):
or self.inputs["Radius"].default_value < 0
)

def functionality(self):
bpy.ops.mesh.primitive_ico_sphere_add(
subdivisions = int(self.inputs["Subdivisions"].default_value),
radius = self.inputs["Radius"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
def functionality(self):
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_ico_sphere_add(
subdivisions = int(self.inputs["Subdivisions"].default_value),
radius = self.inputs["Radius"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_ico_sphere_add(
subdivisions = int(self.inputs["Subdivisions"].default_value),
radius = self.inputs["Radius"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
19 changes: 15 additions & 4 deletions nodes/inputs/ScMonkey.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ class ScMonkey(Node, ScInputNode):

in_uv: BoolProperty(default=True, update=ScNode.update_value)
in_size: FloatProperty(default=2.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)

def init(self, context):
super().init(context)
self.inputs.new("ScNodeSocketBool", "Generate UVs").init("in_uv")
self.inputs.new("ScNodeSocketNumber", "Size").init("in_size", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)

def error_condition(self):
return (
Expand All @@ -24,7 +26,16 @@ def error_condition(self):
)

def functionality(self):
bpy.ops.mesh.primitive_monkey_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_monkey_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_monkey_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
20 changes: 16 additions & 4 deletions nodes/inputs/ScPlane.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,14 @@ class ScPlane(Node, ScInputNode):

in_uv: BoolProperty(default=True, update=ScNode.update_value)
in_size: FloatProperty(default=2.0, min=0.0, update=ScNode.update_value)
in_WorldOrigin: BoolProperty(default=False, update=ScNode.update_value)

def init(self, context):
super().init(context)
self.inputs.new("ScNodeSocketBool", "Generate UVs").init("in_uv")
self.inputs.new("ScNodeSocketNumber", "Size").init("in_size", True)
self.inputs.new("ScNodeSocketBool", "World Origin").init("in_WorldOrigin",True)


def error_condition(self):
return (
Expand All @@ -24,7 +27,16 @@ def error_condition(self):
)

def functionality(self):
bpy.ops.mesh.primitive_plane_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
if (self.inputs["World Origin"].default_value):
bpy.ops.mesh.primitive_plane_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value,
align='WORLD',
location=(0.0, 0.0, 0.0),
rotation=(0.0, 0.0, 0.0)
)
else:
bpy.ops.mesh.primitive_plane_add(
size = self.inputs["Size"].default_value,
calc_uvs = self.inputs["Generate UVs"].default_value
)
Loading