mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-09 17:31:45 +00:00
Geolocation utilities now support converting either X axis or Y axis to an angle
This commit is contained in:
@@ -145,7 +145,7 @@ class SetNorthOffset(bpy.types.Operator):
|
||||
|
||||
def execute(self, context):
|
||||
context.scene.sun_pos_properties.north_offset = -radians(
|
||||
ifcopenshell.util.geolocation.xy2angle(
|
||||
ifcopenshell.util.geolocation.xaxis2angle(
|
||||
context.scene.BIMGeoreferenceProperties.map_conversion.get("XAxisAbscissa").float_value,
|
||||
context.scene.BIMGeoreferenceProperties.map_conversion.get("XAxisOrdinate").float_value,
|
||||
)
|
||||
|
||||
@@ -94,6 +94,16 @@ def global2local(matrix, eastings, northings, orthogonal_height, x_axis_abscissa
|
||||
)
|
||||
|
||||
|
||||
# Used for converting the X and Y vectors of the X Axis in IFC geolocation
|
||||
def xy2angle(x, y):
|
||||
# Used for converting the X and Y vectors of the X Axis in IFC grid north geolocation
|
||||
def xaxis2angle(x, y):
|
||||
return math.degrees(math.atan2(y, x))
|
||||
|
||||
|
||||
# Used for converting the X and Y vectors of the Y Axis in IFC true north geolocation
|
||||
def yaxis2angle(x, y):
|
||||
angle = math.degrees(math.atan2(y, x)) - 90
|
||||
if angle < -180:
|
||||
angle += 360
|
||||
elif angle > 180:
|
||||
angle -= 360
|
||||
return angle
|
||||
|
||||
Reference in New Issue
Block a user