Я мог бы воспроизвести поведение с AnyLogic 8.4.
Похоже, что функция contains () не делает различий между закрытыми и незамкнутыми элементами Wall
и только проверяет, содержится ли позиция непосредственно в строках, а не в закрытой области, даже если закрыта опция отмечена. Для типа Wall
внутренне единственная разница между открытым и закрытым - атрибут WallFillingType
установлен в WALL_FILL_HATCHING
. Мне интересно, что это не реализовано, так как я знаю, что функция contains()
для PolygonalNode
(что похоже на Wall
) учитывает закрытую область, а не только сами строки.
Напротив, класс RectangularWall
имеет функцию contains()
, которая учитывает закрытую область, как вы уже отметили в своем вопросе.
Мое единственное предложение - написать собственную функцию contains()
, извлекая сегменты (getSegment(index)
) и их координаты, создавая экземпляр Java Polygon с теми же координатами и используя уже существующие contains()
функция этого Polygon
.