API Docs for: 1.0.0
Show:

Site3dMath3D Class

Defined in: modules\math3D.js:6
Module: Site3dMath3D

Класс математических методов в 3D пространстве

Methods

checkBoxesByPosList

(
  • posList1
  • posList2
  • options
)
Object static

Метод возвращает информацию о взаимном расположении двух параллелепипедов, которые задаются в виде координат восьми вершин

Parameters:

  • posList1 Number[]

    Координаты вершин первого параллелепипеда

  • posList2 Number[]

    Координаты вершин второго параллелепипеда

  • options Object

    Дополнительные параметры

Returns:

Object:

Объект результата {minDistance, minPos1, minPos2}:

  • minDistance - минимальное расстояние между гранями двух параллелепипедов (если пересекаются, то -1, если совпадают, то 0)
  • minPos1 - позиция линии минимального расстояния на грани первого параллелепипеда
  • minPos2 - позиция линии минимального расстояния на грани второго параллелепипеда

checkBoxesByObject

(
  • box1
  • box2
  • options
)
Object static

Метод возвращает информацию о взаимном расположении двух параллелепипедов (box = {pos: [x, y, z], rot: [x, y, z], size: [x, y, z]})

Parameters:

  • box1 Object

    Первый параллелепипед

  • box2 Object

    Второй параллелепипед

  • options Object

    Дополнительные параметры

Returns:

Object:

Объект результата {minDistance, minPos1, minPos2}:

  • minDistance - минимальное расстояние между гранями двух параллелепипедов (если пересекаются, то -1, если совпадают, то 0)
  • minPos1 - позиция линии минимального расстояния на грани первого параллелепипеда
  • minPos2 - позиция линии минимального расстояния на грани второго параллелепипеда

checkBoxes

(
  • boxes
  • options
)
Object static

Метод возвращает информацию о взаимном расположении двух параллелепипедов (boxes = {box1, box2})

Parameters:

  • boxes Object

    Объект с двумя параллелепипедами

  • options Object

    Дополнительные параметры

Returns:

Object:

Объект результата {minDistance, minPos1, minPos2}:

  • minDistance - минимальное расстояние между гранями двух параллелепипедов (если пересекаются, то -1, если совпадают, то 0)
  • minPos1 - позиция линии минимального расстояния на грани первого параллелепипеда
  • minPos2 - позиция линии минимального расстояния на грани второго параллелепипеда

isPlanesIntersected

(
  • points1
  • points2
)
Boolean static

Метод возвращает истину, если 2 плоскости пересекаются

Parameters:

  • points1 Number[]

    Координаты вершин первой плоскости

  • points2 Number[]

    Координаты вершин второй плоскости

Returns:

Boolean:

Результат пересечения

isPlanesIntersected

(
  • points1
  • points2
)
Boolean static

Метод возвращает истину, если 2 плоскости лежат в одной плоскости

Parameters:

  • points1 Number[]

    Координаты вершин первой плоскости

  • points2 Number[]

    Координаты вершин второй плоскости

Returns:

Boolean:

Результат пересечения

rd

(
  • num
)
Number static

Метод округляет число до указанного числа знаков после запятой

Parameters:

  • num Number

    Округляемое число

Returns:

Number:

Округленное число

distBetweenPoints

(
  • p1
  • p2
)
Number static

Метод возвращает расстояние между двумя точками

Parameters:

  • p1 Number[]

    Координаты первой точки ([x, y, z])

  • p2 Number[]

    Координаты второй точки ([x, y, z], по-умолчанию [0, 0, 0])

Returns:

Number:

Расстояние между двумя точками

getNormalVector

(
  • segment1
  • segment2
)
Number[] static

Метод возвращает радиус-вектор, перпендикулярный двум отрезкам (векторное произведение векторов, полученных из этих отрезков)

Parameters:

  • segment1 Number[]

    Первый отрезок ([[x, y, z], [x, y, z]])

  • segment2 Number[]

    Второй отрезок ([[x, y, z], [x, y, z]])

Returns:

Number[]:

Радиус-вектор (точка конца вектора, идущего из начала координат) ([x, y, z])

getPlaneCoefs

(
  • p1
  • p2
  • p3
)
Number[] static

Метод возвращает коэффициенты плоскости, заданной по трем точкам

Parameters:

  • p1 Number[]

    Первая точка ([x, y, z])

  • p2 Number[]

    Вторая точка ([x, y, z])

  • p3 Number[]

    Третья точка ([x, y, z])

Returns:

Number[]:

Массив коэффициентов плоскости ([A, B, C, D])

segmentToVector

(
  • segment
)
Number[] static

Метод возвращает радиус-вектор, полученный из отрезка

Parameters:

  • segment Number[]

    Отрезок ([[x, y, z], [x, y, z]])

Returns:

Number[]:

Радиус-вектор (точка конца вектора, идущего из начала координат) ([x, y, z])

getProjectionOnVector

(
  • p
  • vec
)
Number[] static

Метод возвращает проекцию точки на прямую, образованную радиус-вектором

Parameters:

  • p Number[]

    Проецируемая точка ([x, y, z])

  • vec Number[]

    Радиус-вектор (точка конца вектора, идущего из начала координат) ([x, y, z])

Returns:

Number[]:

Спроецированная точка ([x, y, z])

getProjectionOnSegment

(
  • p
  • segment
)
Number[] static

Метод возвращает проекцию точки на прямую, образованную отрезком

Parameters:

  • p Number[]

    Проецируемая точка ([x, y, z])

  • segment Number[]

    Отрезок ([[x, y, z], [x, y, z]])

Returns:

Number[]:

Спроецированная точка ([x, y, z])

getPointOnPlane

(
  • p
  • planeCoefs
)
Number[] static

Метод возвращает проекцию точки на плоскость

Parameters:

  • p Number[]

    Проецируемая точка ([x, y, z])

  • planeCoefs Number[]

    Массив коэффициентов плоскости ([A, B, C, D])

Returns:

Number[]:

Спроецированная точка ([x, y, z])

getIPointLines

(
  • segment1
  • segment2
)
Number[] static

Метод возвращает точку пересечения двух непараллельных прямых, образованных отрезками

Parameters:

  • segment1 Number[]

    Первый отрезок ([[x, y, z], [x, y, z]])

  • segment2 Number[]

    Второй отрезок ([[x, y, z], [x, y, z]])

Returns:

Number[]:

Точка пересечения ([x, y, z])

getSegmentsIntersect

(
  • segment1
  • segment2
)
Number[] static

Метод возвращает точки пересечения отрезков

Parameters:

  • segment1 Number[]

    Первый отрезок ([[x, y, z], [x, y, z]])

  • segment2 Number[]

    Второй отрезок ([[x, y, z], [x, y, z]])

Returns:

Number[]:

Массив точек пересечения ([], [[x, y, z]] или [[x, y, z], [x, y, z]])

getCoordOnVector

(
  • p
  • vec
)
Number static

Метод возвращает координату проекции точки на ось, образованную радиус-вектором, по этой оси

Parameters:

  • p Number[]

    Проецируемая точка ([x, y, z])

  • vec Number[]

    Радиус-вектор (точка конца вектора, идущего из начала координат) ([x, y, z])

Returns:

Number:

Координата спроецированной точки

areCollinearVectors

(
  • vec1
  • vec2
)
Boolean static

Метод проверяет коллинеарность радиус-векторов

Parameters:

  • vec1 Number[]

    Первый радиус-вектор (точка конца вектора, идущего из начала координат) ([x, y, z])

  • vec2 Number[]

    Второй радиус-вектор (точка конца вектора, идущего из начала координат) ([x, y, z])

Returns:

Boolean:

Коллинеарность радиус-векторов (true или false)

distBetweenCoords

(
  • x1
  • x2
)
Number static

Метод возвращает расстояние между двумя координатами

Parameters:

  • x1 Number

    Первая координата

  • x2 Number

    Вторая координата

Returns:

Number:

Расстояние между координатами

getMidpoint

(
  • p1
  • p2
)
Number[] static

Метод возвращает среднюю точку между двумя другими

Parameters:

  • p1 Number[]

    Первая точка ([x, y, z])

  • p2 Number[]

    Вторая точка ([x, y, z])

Returns:

Number[]:

Средняя точка ([x, y, z])

areEqualArrays

(
  • arr1
  • arr2
)
Boolean static

Метод проверяет, равны ли одномерные массивы (без учета порядка элементов)

Parameters:

  • arr1 Any

    Первый одномерный массив

  • arr2 Any

    Второй одномерный массив

Returns:

Boolean:

Равенство одномерных массивов (true или false)

firstInSecondArr

(
  • arr1
  • arr2
)
Boolean static

Метод проверяет, входит ли первый одномерный массив во второй (без учета порядка элементов)

Parameters:

  • arr1 Any

    Первый одномерный массив

  • arr2 Any

    Второй одномерный массив

Returns:

Boolean:

Вхождение первого одномерного массива во второй (true или false)

isPointOnSegment

(
  • p
  • segment
  • includeEndpoints
)
Boolean static

Метод проверяет, лежит ли точка на отрезке

Parameters:

  • p Number[]

    Точка ([x, y, z])

  • segment Number[]

    Отрезок ([[x, y, z], [x, y, z]])

  • includeEndpoints Boolean

    Включение в проверку крайних точек отрезка (по-умолчанию false)

Returns:

Boolean:

Нахождение точки на отрезке (true или false)

isPointOnPlane

(
  • point
  • planeCoefs
)
Boolean static

Метод проверяет, лежит ли точка на плоскости

Parameters:

  • point Number[]

    Точка ([x, y, z])

  • planeCoefs Number[]

    Массив коэффициентов плоскости ([A, B, C, D])

Returns:

Boolean:

Нахождение точки на плоскости (true или false)

isPointOnRect

(
  • p
  • rectPoints
)
Boolean static

Метод проверяет, лежит ли точка на прямоугольнике

Parameters:

  • p Number[]

    Точка ([x, y, z])

  • rectPoints Number[]

    Массив точек прямоугольника ([[x, y, z], [x, y, z], [x, y, z], [x, y, z]])

Returns:

Boolean:

Нахождение точки на прямоугольнике (true или false)

isPointOnTriangle

(
  • point
  • triangle
)
Boolean static

Метод проверяет, лежит ли точка на треугольнике

Parameters:

  • point Number[]

    Точка ([x, y, z])

  • triangle Number[]

    Треугольник ([[x, y, z], [x, y, z], [x, y, z]])

Returns:

Boolean:

Нахождение точки на треугольнике (true или false)

areEqualPoints

(
  • p1
  • p2
  • error
)
Boolean static

Метод проверяет равенство двух точек

Parameters:

  • p1 Number[]

    Первая точка ([x, y, z])

  • p2 Number[]

    Вторая точка ([x, y, z], по-умолчанию [0, 0, 0])

  • error Number

    Допустимая погрешность

Returns:

Boolean:

Равенство двух точек (true или false)

removePointsCopies

(
  • pointsArr
)
Number[] static

Метод удаляет копии точек из массива

Parameters:

  • pointsArr Number[]

    Массив точек ([[x, y, z], ...])

Returns:

Number[]:

Массив уникальных точек ([[x, y, z], ...])

getGeometricCenter

(
  • points
)
Number[] static

Метод возвращает геометрический центр многоугольника

Parameters:

  • points Number[]

    Массив точек многоугольника ([[x, y, z], ...])

Returns:

Number[]:

Геометрический центр многоугольника ([x, y, z])

checkModelMatch

(
  • posList1
  • posList2
)
Object | boolean

Метод возвращает информацию о том, есть ли совпадающие стороны у двух параллелепипедов

Parameters:

  • posList1 Number[]

    Координаты вершин первого параллелепипеда

  • posList2 Number[]

    Координаты вершин второго параллелепипеда

Returns:

Object | boolean:

Объект результата {sideIndexes} или false:

  • sideIndexes - Индексы сторон параллелепипедов (первый элемент массива - индексы первого параллелепипеда, а второй - второго)

sizeBox

(
  • box
  • size
  • boxes
)
Object static

Метод возвращает информацию о параллелепипеде после возможного изменения его размеров (параллелепипед находится среди других параллелепипедов)

Parameters:

  • box Number[]

    Координаты вершин параллелепипеда (координата представлена массивом из трех значений x, y, z)

  • size Number[]

    Желаемые размеры параллелепипеда (вдоль локальных осей x, y и z, если одно из значений 0, то данный размер остается не изменным)

  • boxes Number[][]

    Координаты вершин других параллелепипедов

Returns:

Object:

Результат проверки в виде объекта:

  • canFullSize - Истина, если можно применить желаемый размер
  • size - Возможный размер параллелепипеда (может быть меньше желаемого в силу расположения вблизи других параллелепипедов)
  • center - Координаты центра параллелепипеда (может отличаться от центра до применения нового размера в силу необходимости разместиться между других параллелепипедов вдоль осей изменения размеров)

getPosFromTarget

(
  • pos
  • center
)
Number[] static

Метод возвращает положение камеры относительно центра в виде массива из трех значений: [дистанция по оси Z, угол поворота вокруг оси Y, угол поворота вокруг оси X] Последовательность поворотов: сначала вокруг Y, затем вокруг X (при этом камера смотрит на центр и вращается вокруг центра)

Parameters:

  • pos Number[]

    Позиция камеры ([x, y, z])

  • center Number[]

    Центр вращения ([x, y, z])

Returns:

Number[]:

Положение камеры в виде ([distance, angleY, angleX])

getDistanceToMesh

(
  • point
  • mesh
)
MinDistance, minDistancePos static

Метод возвращает расстояние от точки до меша

Parameters:

  • point Number[]

    Координаты точки

  • mesh Mesh

    Меш

Returns:

MinDistance, minDistancePos:

} Расстояние от точки до меша (-1, если точка находится внутри меша) и точка меша

isMeshProjection

(
  • mesh1
  • mesh2
)
Boolean static

Метод возвращает истину, если существует полная проекция первого меша на второй меш

Parameters:

  • mesh1 Object3D

    Первый меш

  • mesh2 Object3D

    Второй меш

Returns:

Boolean:

Результат

getDistanceInfoToModelBound

(
  • pos
  • model
)
MinDistance, minDistancePos static

Метод возвращает информацию о расстоянии от позиции до границ модели

Parameters:

Returns:

MinDistance, minDistancePos:

} Расстояние от точки до меша (-1, если точка находится внутри меша) и позиция модели

getDistanceToModelBound

(
  • pos
  • model
)
Number static

Метод возвращает расстояние от позиции до границ модели

Parameters:

Returns:

Number:

Расстояние от точки до модели (-1, если точка находится внутри модели)

checkIntersect

(
  • model
)
Object

Метод возвращает информацию о взаимном расположении модели с другой моделью

Parameters:

Returns:

Object:

Объект результата {minDistance, minPos1, minPos2}:

  • minDistance - минимальное расстояние между гранями двух параллелепипедов (если пересекаются, то -1, если совпадают, то 0)
  • minPos1 - позиция линии минимального расстояния на грани первого параллелепипеда
  • minPos2 - позиция линии минимального расстояния на грани второго параллелепипеда

checkIntersect

(
  • model
  • options
)
Object | boolean

Метод возвращает информацию о взаимном расположении модели с другой моделью

Parameters:

  • model Site3dModel

    Другая модель

  • options Object

    Дополнительные параметры

Returns:

Object | boolean:

Объект результата {minDistance, minPos1, minPos2} или false:

  • minDistance - минимальное расстояние между гранями границ двух моделей (если пересекаются, то -1, если совпадают, то 0)
  • minPos1 - позиция линии минимального расстояния на грани первой границы
  • minPos2 - позиция линии минимального расстояния на грани второй границы

checkModelMatch

(
  • model
)
Object | boolean

Метод возвращает информацию о том, есть ли совпадающие стороны у границ с другой моделью

Parameters:

Returns:

Object | boolean:

Объект результата {sideIndexes} или false:

  • sideIndexes - Индексы сторон моделей (первый элемент массива - индексы самой модели, а второй - другой модели)

getNoIntersectShiftOnXZ

(
  • models
)
Number[]

Метод возвращает минимальное смещение модели вдоль плоскости XZ, при котором она не пересекается с другими моделями

Parameters:

Returns:

Number[]:

Координаты смещения

isBoundLayOnModel

(
  • model
)
Boolean

Метод возвращает истину, если существует полная проекция границ модели на границу другой модели или на саму модель, если отсутствует граница

Parameters:

Returns:

Boolean:

Результат

checkBound

(
  • bound
)
Object static

Метод возвращает информацию о взаимном расположении границы с другой границей

Parameters:

Returns:

Object:

Объект результата {minDistance, minPos1, minPos2}:

  • minDistance - минимальное расстояние между гранями двух границ (если пересекаются, то -1, если совпадают, то 0)
  • minPos1 - позиция линии минимального расстояния на грани первой границы
  • minPos2 - позиция линии минимального расстояния на грани второй границы

subtractModelBound

(
  • model
)

Метод вычитает из модели геометрию границы другой модели

Parameters:

subtractImportModelPart

(
  • model
  • partName
)

Метод вычитает из плоскости геометрию части импортируемой модели

Parameters:

  • model Site3dImportModel

    Вычитаемая модель

  • partName String

    Имя части модели (по умолчанию bound)