API Docs for:
Show:

Site3dMath3D Class

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

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

Methods

checkBoxesByPosList

(
  • posList1
  • posList2
  • [options]
)
(Site3dModelCheckIntersectResult) static

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

Parameters:

  • posList1 Site3dPoint3D

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

  • posList2 Site3dPoint3D

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

  • [options] Site3dCheckBoxesOptions optional

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

Returns:

(Site3dModelCheckIntersectResult):

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

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

checkBoxesByObject

(
  • box1
  • box2
  • [options]
)
Site3dCheckBoxesResult static

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

Parameters:

  • box1 Site3dBoxObject

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

  • box2 Site3dBoxObject

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

  • [options] Site3dCheckBoxesOptions optional

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

Returns:

Site3dCheckBoxesResult:

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

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

checkBoxes

(
  • boxes
  • [options]
)
Site3dCheckBoxesResult static

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

Parameters:

  • boxes Site3dBoxesPair

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

  • [options] Site3dCheckBoxesOptions optional

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

Returns:

Site3dCheckBoxesResult:

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

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

isPlanesIntersected

(
  • points1
  • points2
)
Boolean static

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

Parameters:

  • points1 Site3dPoint3D

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

  • points2 Site3dPoint3D

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

Returns:

Boolean:

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

isPlanesIntersected

(
  • points1
  • points2
)
Boolean static

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

Parameters:

  • points1 Site3dPoint3D

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

  • points2 Site3dPoint3D

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

Returns:

Boolean:

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

rd

(
  • num
)
Number static

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

Parameters:

  • num Number

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

Returns:

Number:

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

distBetweenPoints

(
  • p1
  • p2
)
Number static

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

Parameters:

  • p1 Site3dPoint3D

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

  • p2 Site3dPoint3D

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

Returns:

Number:

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

getNormalVector

(
  • segment1
  • segment2
)
Site3dPoint3D static

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

Parameters:

  • segment1 Site3dPoint3D

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

  • segment2 Site3dPoint3D

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

Returns:

Site3dPoint3D:

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

getPlaneCoefs

(
  • p1
  • p2
  • p3
)
Number static

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

Parameters:

  • p1 Site3dPoint3D

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

  • p2 Site3dPoint3D

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

  • p3 Site3dPoint3D

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

Returns:

Number:

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

segmentToVector

(
  • segment
)
Site3dPoint3D static

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

Parameters:

  • segment Site3dPoint3D

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

Returns:

Site3dPoint3D:

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

getProjectionOnVector

(
  • p
  • vec
)
Site3dPoint3D static

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

Parameters:

  • p Site3dPoint3D

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

  • vec Site3dPoint3D

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

Returns:

Site3dPoint3D:

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

getProjectionOnSegment

(
  • p
  • segment
)
Site3dPoint3D static

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

Parameters:

  • p Site3dPoint3D

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

  • segment Site3dPoint3D

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

Returns:

Site3dPoint3D:

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

getPointOnPlane

(
  • p
  • planeCoefs
)
Site3dPoint3D static

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

Parameters:

  • p Site3dPoint3D

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

  • planeCoefs Number

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

Returns:

Site3dPoint3D:

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

getIPointLines

(
  • segment1
  • segment2
)
Site3dPoint3D | undefined static

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

Parameters:

  • segment1 Site3dPoint3D

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

  • segment2 Site3dPoint3D

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

Returns:

Site3dPoint3D | undefined:

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

getSegmentsIntersect

(
  • segment1
  • segment2
)
Site3dPoint3D static

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

Parameters:

  • segment1 Site3dPoint3D

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

  • segment2 Site3dPoint3D

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

Returns:

Site3dPoint3D:

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

linesIntersect

(
  • line1
  • line2
  • [options]
)
Site3dPoint3D | null static

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

Parameters:

  • line1 Site3dPoint3D

    Двумерный массив координат отрезка

  • line2 Site3dPoint3D

    Двумерный массив координат отрезка

  • [options] Site3dLinesIntersectOptions optional

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

Returns:

Site3dPoint3D | null:

Точка пересечения или null

getCoordOnVector

(
  • p
  • vec
)
Number static

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

Parameters:

  • p Site3dPoint3D

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

  • vec Site3dPoint3D

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

Returns:

Number:

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

areCollinearVectors

(
  • vec1
  • vec2
)
Boolean static

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

Parameters:

  • vec1 Site3dPoint3D

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

  • vec2 Site3dPoint3D

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

Returns:

Boolean:

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

distBetweenCoords

(
  • x1
  • x2
)
Number static

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

Parameters:

  • x1 Number

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

  • x2 Number

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

Returns:

Number:

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

getMidpoint

(
  • p1
  • p2
)
Site3dPoint3D static

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

Parameters:

  • p1 Site3dPoint3D

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

  • p2 Site3dPoint3D

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

Returns:

Site3dPoint3D:

Средняя точка ([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 Site3dPoint3D

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

  • segment Site3dPoint3D

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

  • includeEndpoints Boolean

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

Returns:

Boolean:

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

isPointOnPlane

(
  • point
  • planeCoefs
)
Boolean static

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

Parameters:

  • point Site3dPoint3D

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

  • planeCoefs Number

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

Returns:

Boolean:

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

isPointOnRect

(
  • p
  • rectPoints
)
Boolean static

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

Parameters:

  • p Site3dPoint3D

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

  • rectPoints Site3dPoint3D

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

Returns:

Boolean:

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

isPointOnTriangle

(
  • point
  • triangle
)
Boolean static

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

Parameters:

  • point Site3dPoint3D

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

  • triangle Site3dPoint3D

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

Returns:

Boolean:

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

areEqualPoints

(
  • p1
  • p2
  • error
)
Boolean static

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

Parameters:

  • p1 Site3dPoint3D

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

  • p2 Site3dPoint3D

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

  • error Number

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

Returns:

Boolean:

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

removePointsCopies

(
  • pointsArr
)
Site3dPoint3D static

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

Parameters:

  • pointsArr Site3dPoint3D

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

Returns:

Site3dPoint3D:

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

getGeometricCenter

(
  • points
)
Site3dPoint3D static

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

Parameters:

  • points Site3dPoint3D

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

Returns:

Site3dPoint3D:

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

checkModelMatch

(
  • posList1
  • posList2
)
(Site3dCheckBoxesMatchResult | false)

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

Parameters:

  • posList1 Site3dPoint3D

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

  • posList2 Site3dPoint3D

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

Returns:

(Site3dCheckBoxesMatchResult | false):

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

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

getPosFromTarget

(
  • pos
  • center
)
Number static

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

Parameters:

  • pos Site3dPoint3D

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

  • center Site3dPoint3D

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

Returns:

Number:

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

getDistanceToMesh

(
  • point
  • mesh
)
MinDistance, minDistancePos static

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

Parameters:

  • point Site3dPoint3D

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

  • mesh Mesh

    Меш

Returns:

MinDistance, minDistancePos:

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

isMeshProjection

(
  • mesh1
  • mesh2
)
Boolean static

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

Parameters:

  • mesh1 Object3D

    Первый меш

  • mesh2 Object3D

    Второй меш

Returns:

Boolean:

Результат

getPolygonBound

(
  • points
)
Min: Site3dPoint3D, max: Site3dPoint3D static

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

Parameters:

  • points Site3dPoint3D

    Координаты вершин многоугольника

Returns:

Min: Site3dPoint3D, max: Site3dPoint3D:

} Результат

getLineCenter

(
  • points
  • }
)
Site3dPoint3D static

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

Parameters:

  • points Site3dPoint3D

    Координаты вершин многоугольника

  • } Min: Site3dPoint3D, max: Site3dPoint3D

    bound Обрамляющий прямоугольник

Returns:

Site3dPoint3D:

Центр полигона

getPolygonMassCenter

(
  • points
)
Site3dPoint3D static

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

Parameters:

  • points Site3dPoint3D

    Координаты точек многоугольника

Returns:

Site3dPoint3D:

Центр полигона

getSegmentInsidePolygon

(
  • points
)
Site3dPoint3D | null static

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

Parameters:

  • points Site3dPoint3D

    Координаты вершин многоугольника

Returns:

Site3dPoint3D | null:

Координаты отрезка

getPolygonFromPoints

(
  • points
)
Site3dPoint3D static

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

Parameters:

  • points Site3dPoint3D

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

Returns:

Site3dPoint3D:

Координаты точек многоугольника

getDistanceInfoToModelBound

(
  • pos
  • model
)
MinDistance, minDistancePos static

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

Parameters:

  • pos Site3dPoint3D

    Позиция

  • model Site3dModel

    Модель

Returns:

MinDistance, minDistancePos:

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

getDistanceToModelBound

(
  • pos
  • model
)
Number static

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

Parameters:

  • pos Site3dPoint3D

    Позиция

  • model Site3dModel

    Модель

Returns:

Number:

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

checkIntersect

(
  • model
)
Site3dModelCheckIntersectResult

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

Parameters:

Returns:

Site3dModelCheckIntersectResult:

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

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

checkIntersect

(
  • model
  • [options]
)
Site3dModelCheckIntersectResult

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

Parameters:

  • model Site3dModel

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

  • [options] Site3dModelCheckIntersectOptions optional

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

Returns:

Site3dModelCheckIntersectResult:

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

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

checkModelMatch

(
  • model
)
Site3dCheckBoxesMatchResult | false

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

Parameters:

Returns:

Site3dCheckBoxesMatchResult | false:

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

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

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)