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
195 changes: 195 additions & 0 deletions pymeos/main/_generated/trgeometry_methods.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,195 @@
# 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 rgeo \
# --mixin-out pymeos/main/_generated/rgeo_methods.py
# ============================================================================
#
# Wired into pymeos.main.TRgeometry via TRgeometryRegularMixin. 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 TRgeometry 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 ..tpoint import TPoint

if TYPE_CHECKING:
from ..trgeometry import TRgeometry


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

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

MEOS Functions:
always_eq_geo_trgeo, always_eq_trgeo_geo, always_eq_trgeo_trgeo
"""
from ..trgeometry import TRgeometry

if isinstance(other, shpb.BaseGeometry):
result = always_eq_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TRgeometry):
result = always_eq_trgeo_trgeo(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_geo_trgeo, always_ne_trgeo_geo, always_ne_trgeo_trgeo
"""
from ..trgeometry import TRgeometry

if isinstance(other, shpb.BaseGeometry):
result = always_ne_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TRgeometry):
result = always_ne_trgeo_trgeo(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return result > 0

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

MEOS Functions:
tdistance_trgeo_geo, tdistance_trgeo_tpoint, tdistance_trgeo_trgeo
"""
from ..trgeometry import TRgeometry

if isinstance(other, shpb.BaseGeometry):
result = tdistance_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TPoint):
result = tdistance_trgeo_tpoint(self._inner, other._inner)
elif isinstance(other, TRgeometry):
result = tdistance_trgeo_trgeo(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_geo_trgeo, ever_eq_trgeo_geo, ever_eq_trgeo_trgeo
"""
from ..trgeometry import TRgeometry

if isinstance(other, shpb.BaseGeometry):
result = ever_eq_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TRgeometry):
result = ever_eq_trgeo_trgeo(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_geo_trgeo, ever_ne_trgeo_geo, ever_ne_trgeo_trgeo
"""
from ..trgeometry import TRgeometry

if isinstance(other, shpb.BaseGeometry):
result = ever_ne_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TRgeometry):
result = ever_ne_trgeo_trgeo(self._inner, other._inner)
else:
raise TypeError(f"Operation not supported with type " f"{other.__class__}")
return result > 0

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

MEOS Functions:
nad_stbox_trgeo, nad_trgeo_geo, nad_trgeo_stbox, nad_trgeo_tpoint, nad_trgeo_trgeo
"""
from ..trgeometry import TRgeometry
from ...boxes import STBox

if isinstance(other, shpb.BaseGeometry):
result = nad_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TPoint):
result = nad_trgeo_tpoint(self._inner, other._inner)
elif isinstance(other, TRgeometry):
result = nad_trgeo_trgeo(self._inner, other._inner)
elif isinstance(other, STBox):
result = nad_trgeo_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_trgeo_geo, nai_trgeo_tpoint, nai_trgeo_trgeo
"""
from ..trgeometry import TRgeometry

if isinstance(other, shpb.BaseGeometry):
result = nai_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TPoint):
result = nai_trgeo_tpoint(self._inner, other._inner)
elif isinstance(other, TRgeometry):
result = nai_trgeo_trgeo(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_trgeo_geo, shortestline_trgeo_tpoint, shortestline_trgeo_trgeo
"""
from ..trgeometry import TRgeometry

if isinstance(other, shpb.BaseGeometry):
result = shortestline_trgeo_geo(self._inner, geometry_to_gserialized(other))
elif isinstance(other, TPoint):
result = shortestline_trgeo_tpoint(self._inner, other._inner)
elif isinstance(other, TRgeometry):
result = shortestline_trgeo_trgeo(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_geo_trgeo, teq_trgeo_geo
"""
if isinstance(other, shpb.BaseGeometry):
result = teq_trgeo_geo(self._inner, geometry_to_gserialized(other))
else:
return super().temporal_equal(other)
return Temporal._factory(result)

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

MEOS Functions:
tne_geo_trgeo, tne_trgeo_geo
"""
if isinstance(other, shpb.BaseGeometry):
result = tne_trgeo_geo(self._inner, geometry_to_gserialized(other))
else:
return super().temporal_not_equal(other)
return Temporal._factory(result)
Loading