fix offset when altering first point

fix #2
This commit is contained in:
themancalledjakob 2024-10-31 19:31:45 +01:00
parent 65710b05ee
commit dfd08de27d

View file

@ -678,6 +678,11 @@ def set_text_on_curve(text_properties, recursive=True):
if len(text_properties.text) != len(text_properties.glyphs): if len(text_properties.text) != len(text_properties.glyphs):
regenerate = True regenerate = True
# blender bug
# https://projects.blender.org/blender/blender/issues/100661
if mom.data.use_path:
regenerate = True
# if we regenerate.... delete objects # if we regenerate.... delete objects
if regenerate: if regenerate:
completely_delete_objects(glyph_objects) completely_delete_objects(glyph_objects)
@ -749,7 +754,12 @@ def set_text_on_curve(text_properties, recursive=True):
location, tangent, spline_index = calc_point_on_bezier_curve(mom, advance, True, True) location, tangent, spline_index = calc_point_on_bezier_curve(mom, advance, True, True)
if spline_index != previous_spline_index: if spline_index != previous_spline_index:
is_newline = True is_newline = True
ob.location = mom.matrix_world @ (location + text_properties.translation)
if regenerate:
ob.location = mom.matrix_world @ (location + text_properties.translation)
else:
ob.location = (location + text_properties.translation)
if not text_properties.ignore_orientation: if not text_properties.ignore_orientation:
mask = [0] mask = [0]
input_rotations = [mathutils.Vector((0.0, 0.0, 0.0))] input_rotations = [mathutils.Vector((0.0, 0.0, 0.0))]
@ -765,7 +775,10 @@ def set_text_on_curve(text_properties, recursive=True):
ob.rotation_mode = 'QUATERNION' ob.rotation_mode = 'QUATERNION'
q = mathutils.Quaternion() q = mathutils.Quaternion()
q.rotate(text_properties.orientation) q.rotate(text_properties.orientation)
ob.rotation_quaternion = (mom.matrix_world @ motor[0] @ q.to_matrix().to_4x4()).to_quaternion() if regenerate:
ob.rotation_quaternion = (mom.matrix_world @ motor[0] @ q.to_matrix().to_4x4()).to_quaternion()
else:
ob.rotation_quaternion = (motor[0] @ q.to_matrix().to_4x4()).to_quaternion()
else: else:
q = mathutils.Quaternion() q = mathutils.Quaternion()
q.rotate(text_properties.orientation) q.rotate(text_properties.orientation)
@ -812,6 +825,8 @@ def set_text_on_curve(text_properties, recursive=True):
if regenerate: if regenerate:
mom.select_set(True) mom.select_set(True)
# https://projects.blender.org/blender/blender/issues/100661
mom.data.use_path = False
mom[f"{utils.prefix()}_type"] = "textobject" mom[f"{utils.prefix()}_type"] = "textobject"
mom[f"{utils.prefix()}_linked_textobject"] = text_properties.text_id mom[f"{utils.prefix()}_linked_textobject"] = text_properties.text_id
mom[f"{utils.prefix()}_font_name"] = text_properties.font_name mom[f"{utils.prefix()}_font_name"] = text_properties.font_name