Skip to content
Open
Show file tree
Hide file tree
Changes from all 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
235 changes: 235 additions & 0 deletions pymeos/main/_generated/tpose_methods.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,235 @@
# Copyright (c) 2016-2026, Université libre de Bruxelles and PyMEOS
# contributors. Licensed under the PostgreSQL License (see LICENSE).
#
# ============================================================================
# GENERATED by tools/oo_codegen/codegen.py -- DO NOT EDIT.
# Regenerate:
# python3 tools/oo_codegen/codegen.py --mixin pose \
# --mixin-out pymeos/main/_generated/pose_methods.py
# ============================================================================
#
# Wired into pymeos.main.TPose via TPoseRegularMixin. Every method
# dispatches by argument type to the EXACT pymeos_cffi backing the
# hand-written method used -- same native call, same transforms, same
# result, never reimplemented: identical by construction.
"""Generated regular OO methods for the TPose family."""
from __future__ import annotations

from typing import TYPE_CHECKING

import shapely.geometry.base as shpb
from pymeos_cffi import *

from ...temporal import Temporal
from ...collections.pose import Pose

if TYPE_CHECKING:
from ..tpose import TPose


class TPoseRegularMixin:
"""Generated regular families (comparison, spatial relationship,
distance, restriction) for :class:`TPose`."""

def always_equal(self, other):
"""Generated regular ``always_equal``.

MEOS Functions:
always_eq_pose_tpose, always_eq_tpose_pose, always_eq_tpose_tpose
"""
from ..tpose import TPose

if isinstance(other, Pose):
result = always_eq_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = always_eq_tpose_tpose(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return result > 0

def always_not_equal(self, other):
"""Generated regular ``always_not_equal``.

MEOS Functions:
always_ne_pose_tpose, always_ne_tpose_pose, always_ne_tpose_tpose
"""
from ..tpose import TPose

if isinstance(other, Pose):
result = always_ne_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = always_ne_tpose_tpose(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return result > 0

def at(self, other):
"""Generated regular ``at``.

MEOS Functions:
tpose_at_geom, tpose_at_pose, tpose_at_stbox
"""
from ...boxes import STBox

if isinstance(other, shpb.BaseGeometry):
result = tpose_at_geom(self._inner, geo_to_gserialized(other, False))
elif isinstance(other, Pose):
result = tpose_at_pose(self._inner, other._inner)
elif isinstance(other, STBox):
result = tpose_at_stbox(self._inner, other._inner, True)
else:
return super().at(other)
return Temporal._factory(result)

def distance(self, other):
"""Generated regular ``distance``.

MEOS Functions:
tdistance_tpose_point, tdistance_tpose_pose, tdistance_tpose_tpose
"""
from ..tpose import TPose

if isinstance(other, shpb.BaseGeometry):
result = tdistance_tpose_point(
self._inner, geo_to_gserialized(other, False)
)
elif isinstance(other, Pose):
result = tdistance_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = tdistance_tpose_tpose(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return Temporal._factory(result)

def ever_equal(self, other):
"""Generated regular ``ever_equal``.

MEOS Functions:
ever_eq_pose_tpose, ever_eq_tpose_pose, ever_eq_tpose_tpose
"""
from ..tpose import TPose

if isinstance(other, Pose):
result = ever_eq_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = ever_eq_tpose_tpose(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return result > 0

def ever_not_equal(self, other):
"""Generated regular ``ever_not_equal``.

MEOS Functions:
ever_ne_pose_tpose, ever_ne_tpose_pose, ever_ne_tpose_tpose
"""
from ..tpose import TPose

if isinstance(other, Pose):
result = ever_ne_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = ever_ne_tpose_tpose(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return result > 0

def minus(self, other):
"""Generated regular ``minus``.

MEOS Functions:
tpose_minus_geom, tpose_minus_pose, tpose_minus_stbox
"""
from ...boxes import STBox

if isinstance(other, shpb.BaseGeometry):
result = tpose_minus_geom(self._inner, geo_to_gserialized(other, False))
elif isinstance(other, Pose):
result = tpose_minus_pose(self._inner, other._inner)
elif isinstance(other, STBox):
result = tpose_minus_stbox(self._inner, other._inner, True)
else:
return super().minus(other)
return Temporal._factory(result)

def nearest_approach_distance(self, other):
"""Generated regular ``nearest_approach_distance``.

MEOS Functions:
nad_tpose_geo, nad_tpose_pose, nad_tpose_stbox, nad_tpose_tpose
"""
from ..tpose import TPose
from ...boxes import STBox

if isinstance(other, shpb.BaseGeometry):
result = nad_tpose_geo(self._inner, geo_to_gserialized(other, False))
elif isinstance(other, Pose):
result = nad_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = nad_tpose_tpose(self._inner, other._inner)
elif isinstance(other, STBox):
result = nad_tpose_stbox(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return result

def nearest_approach_instant(self, other):
"""Generated regular ``nearest_approach_instant``.

MEOS Functions:
nai_tpose_geo, nai_tpose_pose, nai_tpose_tpose
"""
from ..tpose import TPose

if isinstance(other, shpb.BaseGeometry):
result = nai_tpose_geo(self._inner, geo_to_gserialized(other, False))
elif isinstance(other, Pose):
result = nai_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = nai_tpose_tpose(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return Temporal._factory(result)

def shortest_line(self, other):
"""Generated regular ``shortest_line``.

MEOS Functions:
shortestline_tpose_geo, shortestline_tpose_pose, shortestline_tpose_tpose
"""
from ..tpose import TPose

if isinstance(other, shpb.BaseGeometry):
result = shortestline_tpose_geo(
self._inner, geo_to_gserialized(other, False)
)
elif isinstance(other, Pose):
result = shortestline_tpose_pose(self._inner, other._inner)
elif isinstance(other, TPose):
result = shortestline_tpose_tpose(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return gserialized_to_shapely_geometry(result, 10)

def temporal_equal(self, other):
"""Generated regular ``temporal_equal``.

MEOS Functions:
teq_pose_tpose, teq_tpose_pose
"""
if isinstance(other, Pose):
result = teq_tpose_pose(self._inner, other._inner)
else:
return super().temporal_equal(other)
return Temporal._factory(result)

def temporal_not_equal(self, other):
"""Generated regular ``temporal_not_equal``.

MEOS Functions:
tne_pose_tpose, tne_tpose_pose
"""
if isinstance(other, Pose):
result = tne_tpose_pose(self._inner, other._inner)
else:
return super().temporal_not_equal(other)
return Temporal._factory(result)
Loading