Source code for gefest.core.opt.postproc.rules_base

from abc import ABCMeta, abstractmethod

from gefest.core.geometry import Polygon, Structure
from gefest.core.geometry.domain import Domain


[docs] class PolygonRule(metaclass=ABCMeta): """Interface of postprocessing rule for polygon. Provides validation and correction functions for spicific error, e.g. 'out of bounds', 'self intersection', 'unclosed polygon'. """
[docs] @staticmethod @abstractmethod def validate( structure: Structure, idx_poly_with_error: int, domain: Domain, ) -> bool: """Checks if there is no error in the spicific polygon in structure. Args: structure (Structure): Structure with error. idx_ (int): Index of polygon with error in structure. Returns: bool: True if polygon has no spicific problem, otherwise False. """ ...
[docs] @staticmethod @abstractmethod def correct( structure: Structure, idx_poly_with_error: int, domain: Domain, ) -> Polygon: """Trys to fix spicific error. The method does not guarantee error correction. Args: structure (Structure): Structure with error. idx_poly_with_error (int): Index of polygon with error in structure. Returns: Polygon """ ...
[docs] class StructureRule(metaclass=ABCMeta): """Interface of postprocessing rule for whole structure. Provides validation and correction functions for spicific error, e.g. 'polygons in structure too close'. """
[docs] @staticmethod @abstractmethod def validate( structure: Structure, domain: Domain, ) -> bool: """Checks if there is no error in the structure. Args: structure (Structure): Structure for validation. Returns: bool: True if structure has no spicific problem, otherwise False. """ ...
[docs] @staticmethod @abstractmethod def correct( structure: Structure, domain: Domain, ) -> Structure: """Trys to fix spicific error. The method does not guarantee error correction. Args: structure (Structure): Structure with error. Returns: Structure """ ...