Draft: subelement mode ignored nesting (#8319)
This commit is contained in:
@@ -169,6 +169,7 @@ def move_vertex(object, vertex_index, vector):
|
||||
Needed for SubObjects modifiers.
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
vector = object.getGlobalPlacement().inverse().Rotation.multVec(vector)
|
||||
points = object.Points
|
||||
points[vertex_index] = points[vertex_index].add(vector)
|
||||
object.Points = points
|
||||
@@ -182,11 +183,11 @@ def move_edge(object, edge_index, vector):
|
||||
Needed for SubObjects modifiers.
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
moveVertex(object, edge_index, vector)
|
||||
move_vertex(object, edge_index, vector)
|
||||
if utils.isClosedEdge(edge_index, object):
|
||||
moveVertex(object, 0, vector)
|
||||
move_vertex(object, 0, vector)
|
||||
else:
|
||||
moveVertex(object, edge_index+1, vector)
|
||||
move_vertex(object, edge_index+1, vector)
|
||||
|
||||
|
||||
moveEdge = move_edge
|
||||
@@ -211,11 +212,11 @@ def copy_moved_edge(object, edge_index, vector):
|
||||
Needed for SubObjects modifiers.
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
vertex1 = object.Placement.multVec(object.Points[edge_index]).add(vector)
|
||||
vertex1 = object.getGlobalPlacement().multVec(object.Points[edge_index]).add(vector)
|
||||
if utils.isClosedEdge(edge_index, object):
|
||||
vertex2 = object.Placement.multVec(object.Points[0]).add(vector)
|
||||
vertex2 = object.getGlobalPlacement().multVec(object.Points[0]).add(vector)
|
||||
else:
|
||||
vertex2 = object.Placement.multVec(object.Points[edge_index+1]).add(vector)
|
||||
vertex2 = object.getGlobalPlacement().multVec(object.Points[edge_index+1]).add(vector)
|
||||
return make_line.make_line(vertex1, vertex2)
|
||||
|
||||
## @}
|
||||
|
||||
@@ -174,9 +174,9 @@ def rotate_vertex(object, vertex_index, angle, center, axis):
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
points = object.Points
|
||||
points[vertex_index] = object.Placement.inverse().multVec(
|
||||
points[vertex_index] = object.getGlobalPlacement().inverse().multVec(
|
||||
rotate_vector_from_center(
|
||||
object.Placement.multVec(points[vertex_index]),
|
||||
object.getGlobalPlacement().multVec(points[vertex_index]),
|
||||
angle, axis, center))
|
||||
object.Points = points
|
||||
|
||||
@@ -202,11 +202,11 @@ def rotate_edge(object, edge_index, angle, center, axis):
|
||||
Needed for SubObjects modifiers.
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
rotateVertex(object, edge_index, angle, center, axis)
|
||||
rotate_vertex(object, edge_index, angle, center, axis)
|
||||
if utils.isClosedEdge(edge_index, object):
|
||||
rotateVertex(object, 0, angle, center, axis)
|
||||
rotate_vertex(object, 0, angle, center, axis)
|
||||
else:
|
||||
rotateVertex(object, edge_index+1, angle, center, axis)
|
||||
rotate_vertex(object, edge_index+1, angle, center, axis)
|
||||
|
||||
|
||||
rotateEdge = rotate_edge
|
||||
@@ -233,15 +233,15 @@ def copy_rotated_edge(object, edge_index, angle, center, axis):
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
vertex1 = rotate_vector_from_center(
|
||||
object.Placement.multVec(object.Points[edge_index]),
|
||||
object.getGlobalPlacement().multVec(object.Points[edge_index]),
|
||||
angle, axis, center)
|
||||
if utils.isClosedEdge(edge_index, object):
|
||||
vertex2 = rotate_vector_from_center(
|
||||
object.Placement.multVec(object.Points[0]),
|
||||
object.getGlobalPlacement().multVec(object.Points[0]),
|
||||
angle, axis, center)
|
||||
else:
|
||||
vertex2 = rotate_vector_from_center(
|
||||
object.Placement.multVec(object.Points[edge_index+1]),
|
||||
object.getGlobalPlacement().multVec(object.Points[edge_index+1]),
|
||||
angle, axis, center)
|
||||
return make_line.make_line(vertex1, vertex2)
|
||||
|
||||
|
||||
@@ -147,9 +147,9 @@ def scale_vertex(obj, vertex_index, scale, center):
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
points = obj.Points
|
||||
points[vertex_index] = obj.Placement.inverse().multVec(
|
||||
points[vertex_index] = obj.getGlobalPlacement().inverse().multVec(
|
||||
scale_vector_from_center(
|
||||
obj.Placement.multVec(points[vertex_index]),
|
||||
obj.getGlobalPlacement().multVec(points[vertex_index]),
|
||||
scale, center))
|
||||
obj.Points = points
|
||||
|
||||
@@ -189,15 +189,15 @@ def copy_scaled_edge(obj, edge_index, scale, center):
|
||||
Implemented by Dion Moult during 0.19 dev cycle (works only with Draft Wire).
|
||||
"""
|
||||
vertex1 = scale_vector_from_center(
|
||||
obj.Placement.multVec(obj.Points[edge_index]),
|
||||
obj.getGlobalPlacement().multVec(obj.Points[edge_index]),
|
||||
scale, center)
|
||||
if utils.is_closed_edge(edge_index, obj):
|
||||
vertex2 = scale_vector_from_center(
|
||||
obj.Placement.multVec(obj.Points[0]),
|
||||
obj.getGlobalPlacement().multVec(obj.Points[0]),
|
||||
scale, center)
|
||||
else:
|
||||
vertex2 = scale_vector_from_center(
|
||||
obj.Placement.multVec(obj.Points[edge_index+1]),
|
||||
obj.getGlobalPlacement().multVec(obj.Points[edge_index+1]),
|
||||
scale, center)
|
||||
return make_line.make_line(vertex1, vertex2)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user