02_calc

Last modified by Bimit Administrator on 25.12.2025, 09:31

Интерфейс строительного калькулятора предоставляет базовые функции расчета
В нем доступны следующий функции:

  • area - подсчет площади прямоугольной фигуры, заданной длинами сторон
  • volume - подсчет объема параллелепипеда, заданной длинами сторон (ДЛИНАxШИРИНАxВЫСОТА)
  • areaBox - подсчет площади поверхности стен прямоугольной комнаты, заданной длинами сторон и высотой
  • volumeBox - подсчет объема стен коробки, заданной длинами сторон (по внешней стороне), высотой и толщиной стен
  • located - метод определения вхождения одного элемента в область другого (GeometryElement space, GeometryElement obj)
  • intersect - метод определения пересечения области одного элемента в область другого (GeometryElement space, GeometryElement obj)
  • distance - определение расстояния между двумя элементами
  • distanceFast - определение расстояния между двумя элементами
  • getElementBounds - получение граничного бокса по элементу и по списку вершин
  • length - получение расстояния между двумя точками в пространстве
  • getOrientedBoundingBox - получение ориентированного, минимального, граничного бокса элемента
  • getElementConvexHull - получение геометрии выпуклой оболочки элемента
  • trunc - округление значение
  • manhattanDistance - расчет расстояния Манхэттена между двумя геометрическими элементами
  • deepInclusion - точная проверка того, что один элемент включен в другой элемент
  • createOrientedBox - создание OBB на основе заданного элемента и в заданном направлении
  • distance2D - расчёт двумерного расстояния между элементами в плоскости XY, 0 если пересекаются
  • distance2DHorizontal - расчёт минимального двумерного расстояния между элементами в плоскости XY
  • distance2DWithOffSet - расчет двумерного расстояния между элементами со смещением элементов
  • isExtendedAABBIntersectNeighbours - проверка пересечения aabb элемента с его соседями + с учетом допустимого пространства length, width, height по направлению dir
  • isValveBelongToPipe - проверка принадлежности одного элемента другому
  • getOBBLongestAxis - возвращает индекс самой длинной стороны obb(X=1, Y=2, Z=3)

area - подсчет площади прямоугольной фигуры, заданной длинами сторон

  • calc.area(double length, double width) 

Пример использования:

// area
def area = calc.area(6,6)

// console.info(area) -> “INFO: 36.0”

volume - подсчет объема параллелепипеда, заданной длинами сторон (ДЛИНАxШИРИНАxВЫСОТА)

  • calc.volume(double length, double width, double height) 

Пример использования:

// volume
def vol= calc.volume(6,0.5,3)

// console.info(vol) -> “INFO: 9.0”

areaBox - подсчет площади поверхности стен прямоугольной комнаты, заданной длинами сторон и высотой

  • calc.areaBox(double length, double width, double height) 

Пример использования:

// areaBox
def area = calc.areaBox(6,6,3)

// console.info(area) -> “INFO: 72.0”

volumeBox - подсчет объема стен коробки, заданной длинами сторон (по внешней стороне), высотой и толщиной стен

  • calc.volumeBox(double length, double width, double height, double widthWall) 

Пример использования:

// volumeBox
def vol= calc.volumeBox(6,6,3,0.5)

// console.info(vol) -> “INFO: 33.0”

located - метод определения вхождения одного элемента в область другого

  • calc.located(GeometryElement space, GeometryElement obj)  - метод определения вхождения одного элемента в область другого

Пример использования:

intersect - метод определения пересечения области одного элемента в область другого

  • calc.intersect(Bounds bounds1, Bounds bounds2)  - определение пересечения 2 боксов по границам 1 и 2 бокса
  • calc.intersect(double gap, Bounds bounds1, Bounds bounds2)  - определение пересечения 2 боксов по границам 1 и 2 бокса с увеличением границ одного из элементов
  • calc.intersect(double gapX, double gapY, double gapZ, Bounds bounds1, Bounds bounds2)  - определение пересечения 2 боксов по границам 1 и 2 бокса с увеличением границ одного из элементов отдельно по осям
  • calc.intersect(GeometryElement element1, GeometryElement element2)  - метод определения пересечения 2 элементов через их граничных боксов
  • calc.intersect(double gapX, double gapY, double gapZ,  GeometryElement element1, GeometryElement element2)  - определение пересечения 2 элементов через их граничных боксов
  • calc.intersect(double gap,  GeometryElement element1, GeometryElement element2)  - определение пересечения 2 элементов через их граничных боксов
  • calc.intersect(GeometryObject element1, GeometryObject element2)  - определение пересечения 2 элементов

Пример использования:

distance - определение расстояния между двумя элементами

  • calc.distance(GeometryObject data1, GeometryObject data2) 

Пример использования:

distanceFast - определение расстояния между двумя элементами

  • calc.distanceFast(GeometryObject data1, GeometryObject data2) 

Пример использования:

getElementBounds - получение граничного бокса по элементу и по списку вершин

  • calc.getElementBounds(GeometryObject geometry)  - получение граничного бокса по элементу
  • calc.getElementBounds(double vertices[])  - получение граничного бокса по списку вершин

Пример использования:

length - получение расстояния между двумя точками в пространстве

  • calc.length(Vector3f p1, Vector3f p2) 

Пример использования:

getOrientedBoundingBox - получение ориентированного, минимального, граничного бокса элемента

  • calc.getOrientedBoundingBox(UUID elementUuid)  - получение ориентированного, минимального, граничного бокса элемента по его идентификатору
  • calc.getOrientedBoundingBox(GeometryElement element)  - получение ориентированного, минимального, граничного бокса элемента по элементу
  • calc.getOrientedBoundingBox(Element element)  - получение ориентированного, минимального, граничного бокса элемента по элементу

Пример использования:

getElementConvexHull - получение геометрии выпуклой оболочки элемента

  • calc.getElementConvexHull(UUID elementUuid)  - получение геометрии выпуклой оболочки элемента по идентификатору
  • calc.getElementConvexHull(GeometryElement element)  - получение геометрии выпуклой оболочки элемента по элементу
  • calc.getElementConvexHull(Element element)  - получение геометрии выпуклой оболочки элемента по элементу

Пример использования:

trunc - округление значение

  • calc.trunc(double value, int length)  - округление значение
  • calc.trunc(double value)  - округление значение до 3го знака после запятой

Пример использования:

manhattanDistance - расчет расстояния Манхэттена между двумя геометрическими элементами

  • calc.manhattanDistance(GeometryObject data1, GeometryObject data2)  - расчет расстояния Манхэттена между двумя геометрическими элементами

Пример использования:

deepInclusion - точная проверка того, что один элемент включен в другой элемент

  • calc.deepInclusion(GeometryElement elementContent, GeometryElement elementContainer)  - точная проверка того, что один элемент включен в другой элемент

Пример использования:

createOrientedBox - создание OBB на основе заданного элемента и в заданном направлении

  • calc.createOrientedBox(Vector3f center, Vector3f direction, double width, double depth, double height)  - создание OBB на основе заданного элемента и в заданном направлении

Пример использования:

distance2D - расчёт двумерного расстояния между элементами в плоскости XY, 0 если пересекаются

  • calc.distance2D(GeometryObject data1, GeometryObject data2)  - расчёт двумерного расстояния между элементами в плоскости XY, 0 если пересекаются

Пример использования:

distance2DHorizontal - расчёт минимального двумерного расстояния между элементами в плоскости XY

  • calc.distance2DHorizontal(GeometryObject data1, GeometryObject data2)  - расчёт минимального двумерного расстояния между элементами в плоскости XY

Пример использования:

distance2DWithOffSet - расчёт двумерного расстояния между элементами со смещением элементов

  • calc.distance2DWithOffSet(GeometryObject data1, GeometryObject data2, double offSetValue)  - расчёт двумерного расстояния между элементами со смещением элементов

Пример использования:

isExtendedAABBIntersectNeighbours - проверка пересечения aabb элемента с его соседями + с учетом допустимого пространства length, width, height по направлению dir

  • calc.isExtendedAABBIntersectNeighbours(GeometryElement element, Set<GeometryElement> neighbours, double[] dir, final double length, final double width, final double height)  - проверка пересечения aabb элемента с его соседями + с учетом допустимого пространства length, width, height по направлению dir

Пример использования:

isValveBelongToPipe - проверка принадлежности одного элемента другому

  • calc.isValveBelongToPipe(GeometryElement valve, GeometryElement pipe)  - проверка принадлежности одного элемента другому

Пример использования:

getOBBLongestAxis - возвращает индекс самой длинной стороны obb(X=1, Y=2, Z=3)

  • calc.getOBBLongestAxis(GeometryElement element)  - возвращает индекс самой длинной стороны obb(X=1, Y=2, Z=3)

Пример использования: