Spec-Zone.ru › OpenJDK 8

Класс QuadCurve2D

  • java.lang.Object
    • java.awt.geom.QuadCurve2D
Все реализованные интерфейсы:
Shape, Cloneable
Непосредственные известные подклассы:
QuadCurve2D.Double, QuadCurve2D.Float

public abstract class QuadCurve2D
extends Object
implements Shape, Cloneable

Класс QuadCurve2D определяет сегмент квадратичной параметрической кривой в (x,y) системе координат.

Этот класс является только абстрактным суперклассом для всех объектов, хранящих сегмент 2D квадратичной кривой. Фактическое представление координат оставляется подклассу.

С:
1.2

Вложенные классы

Модификатор и тип Класс и описание
static class  QuadCurve2D.Double

Сегмент квадратичной параметрической кривой, заданный с double координатами.

static class  QuadCurve2D.Float

Сегмент квадратичной параметрической кривой, заданный с float координатами.

Конструкторы

Модификатор Конструктор и описание
protected QuadCurve2D()

Это абстрактный класс, который нельзя создать напрямую.

Методы

Модификатор и тип Метод и описание
Object clone()

Создает новый объект того же класса и с тем же содержимым, что и этот объект.

boolean contains(double x, double y)

Проверяет, находятся ли указанные координаты внутри границ Shape, как описано в определении внутренней точки.

boolean contains(double x, double y, double w, double h)

Проверяет, полностью ли внутренняя область Shape содержит указанный прямоугольник.

boolean contains(Point2D p)

Проверяет, находится ли указанная точка Point2D внутри границ Shape, как описано в определении внутренней точки.

boolean contains(Rectangle2D r)

Проверяет, полностью ли внутренняя область Shape содержит указанный Rectangle2D.

Rectangle getBounds()

Возвращает целое число Rectangle, которое полностью охватывает Shape.

abstract Point2D getCtrlPt()

Возвращает точку управления.

abstract double getCtrlX()

Возвращает X-координату точки управления с точностью double.

abstract double getCtrlY()

Возвращает Y-координату точки управления с точностью double.

double getFlatness()

Возвращает сглаженность, или максимальное расстояние точки управления от прямой, соединяющей конечные точки, этого QuadCurve2D.

static double getFlatness(double[] coords, int offset)

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

static double getFlatness(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

Возвращает сглаженность, или максимальное расстояние точки управления от прямой, соединяющей конечные точки, квадратичной кривой, заданной указанными точками управления.

double getFlatnessSq()

Возвращает квадрат сглаженности, или максимального расстояния точки управления от прямой, соединяющей конечные точки, этого QuadCurve2D.

static double getFlatnessSq(double[] coords, int offset)

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

static double getFlatnessSq(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

Возвращает квадрат сглаженности, или максимального расстояния точки управления от прямой, соединяющей конечные точки, квадратичной кривой, заданной указанными точками управления.

abstract Point2D getP1()

Возвращает начальную точку.

abstract Point2D getP2()

Возвращает конечную точку.

PathIterator getPathIterator(AffineTransform at)

Возвращает объект итерации, определяющий границу формы этого QuadCurve2D.

PathIterator getPathIterator(AffineTransform at, double flatness)

Возвращает объект итерации, определяющий границу сглаженной формы этого QuadCurve2D.

abstract double getX1()

Возвращает X-координату начальной точки с точностью double.

abstract double getX2()

Возвращает X-координату конечной точки с точностью double.

abstract double getY1()

Возвращает Y-координату начальной точки с точностью double.

abstract double getY2()

Возвращает Y-координату конечной точки с точностью double.

boolean intersects(double x, double y, double w, double h)

Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного прямоугольника.

boolean intersects(Rectangle2D r)

Проверяет, пересекается ли внутренняя область Shape с внутренней областью указанного Rectangle2D.

void setCurve(double[] coords, int offset)

Устанавливает положение конечных точек и точки управления этого QuadCurve2D по координатам double в указанном смещении в указанном массиве.

abstract void setCurve(double x1, double y1, double ctrlx, double ctrly, double x2, double y2)

Устанавливает положение конечных точек и точки управления этой кривой по указанным координатам double.

void setCurve(Point2D[] pts, int offset)

Устанавливает положение конечных точек и точек управления этого QuadCurve2D по координатам объектов Point2D в указанном смещении в указанном массиве.

void setCurve(Point2D p1, Point2D cp, Point2D p2)

Устанавливает положение конечных точек и точки управления этого QuadCurve2D по указанным координатам Point2D.

void setCurve(QuadCurve2D c)

Устанавливает положение конечных точек и точки управления этого QuadCurve2D таким же, как у указанного QuadCurve2D.

static int solveQuadratic(double[] eqn)

Решает квадратичное уравнение, коэффициенты которого находятся в массиве eqn, и помещает действительные корни обратно в тот же массив, возвращая число корней.

static int solveQuadratic(double[] eqn, double[] res)

Решает квадратичное уравнение, коэффициенты которого находятся в массиве eqn, и помещает действительные корни в массив res, возвращая число корней.

static void subdivide(double[] src, int srcoff, double[] left, int leftoff, double[] right, int rightoff)

Делит квадратичную кривую, заданную координатами, хранящимися в массиве src по индексам srcoff до srcoff + 5, и помещает полученные две разбитые кривые в два массива результатов по соответствующим индексам.

void subdivide(QuadCurve2D left, QuadCurve2D right)

Делит этот QuadCurve2D и помещает полученные две разбитые кривые в массивы left и right параметров кривых.

static void subdivide(QuadCurve2D src, QuadCurve2D left, QuadCurve2D right)

Делит квадратичную кривую, заданную параметром src, и помещает полученные две разбитые кривые в массивы left и right параметров кривых.

Методы, унаследованные от класса java.lang.Object

equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Методы, унаследованные от интерфейса java.awt.Shape

getBounds2D

Конструкторы

QuadCurve2D

protected QuadCurve2D()

Это абстрактный класс, который нельзя создать напрямую. Доступны подклассы с конкретной реализацией типа для создания экземпляров и предоставляют ряд форматов для хранения информации, необходимой для удовлетворения различных методов доступа ниже.

С момента:
1.2
См. также:
QuadCurve2D.Float, QuadCurve2D.Double

Методы

getX1

public abstract double getX1()

Возвращает координату X начальной точки в double с точностью.

Возвращает:
координату X начальной точки.
С момента:
1.2

getY1

public abstract double getY1()

Возвращает координату Y начальной точки в double с точностью.

Возвращает:
координату Y начальной точки.
С момента:
1.2

getP1

public abstract Point2D getP1()

Возвращает начальную точку.

Возвращает:
объект Point2D, представляющий начальную точку этой QuadCurve2D.
С момента:
1.2

getCtrlX

public abstract double getCtrlX()

Возвращает координату X контрольной точки с double точностью.

Возвращает:
координату X контрольной точки
С момента:
1.2

getCtrlY

public abstract double getCtrlY()

Возвращает координату Y контрольной точки с double точностью.

Возвращает:
координату Y контрольной точки.
С момента:
1.2

getCtrlPt

public abstract Point2D getCtrlPt()

Возвращает контрольную точку.

Возвращает:
объект Point2D, представляющий контрольную точку этой Point2D.
С момента:
1.2

getX2

public abstract double getX2()

Возвращает координату X конечной точки с double точностью.

Возвращает:
координату x конечной точки.
С момента:
1.2

getY2

public abstract double getY2()

Возвращает координату Y конечной точки с double точностью.

Возвращает:
координату Y конечной точки.
С момента:
1.2

getP2

public abstract Point2D getP2()

Возвращает конечную точку.

Возвращает:
объект Point , представляющий конечную точку этой Point2D.
С момента:
1.2

setCurve

public abstract void setCurve(double x1,
                              double y1,
                              double ctrlx,
                              double ctrly,
                              double x2,
                              double y2)

Устанавливает положение конечных точек и контрольной точки этой кривой в указанные double координаты.

Параметры:
x1 - координата X начальной точки
y1 - координата Y начальной точки
ctrlx - координата X контрольной точки
ctrly - координата Y контрольной точки
x2 - координата X конечной точки
y2 - координата Y конечной точки
С момента:
1.2

setCurve

public void setCurve(double[] coords,
                     int offset)

Устанавливает положение конечных точек и контрольных точек этой QuadCurve2D в double координаты в указанном смещении в указанном массиве.

Параметры:
coords - массив, содержащий значения координат
offset - индекс в массиве, с которого начинать извлечение значений координат и назначение их этой QuadCurve2D
С момента:
1.2

setCurve

public void setCurve(Point2D p1,
                     Point2D cp,
                     Point2D p2)

Устанавливает положение конечных точек и контрольной точки этой QuadCurve2D в указанные Point2D координаты.

Параметры:
p1 - начальная точка
cp - контрольная точка
p2 - конечная точка
С момента:
1.2

setCurve

public void setCurve(Point2D[] pts,
                     int offset)

Устанавливает положение конечных точек и контрольных точек этой QuadCurve2D в координаты объектов Point2D в указанном смещении в указанном массиве.

Параметры:
pts - массив, содержащий объекты Point2D, определяющие значения координат
offset - индекс в pts , с которого начинать извлечение значений координат и назначение их этой QuadCurve2D
С момента:
1.2

setCurve

public void setCurve(QuadCurve2D c)

Устанавливает положение конечных точек и контрольной точки этой QuadCurve2D в соответствии с теми же значениями, что и в указанном QuadCurve2D.

Параметры:
c - указанный QuadCurve2D
С момента:
1.2

getFlatnessSq

public static double getFlatnessSq(double x1,
                                   double y1,
                                   double ctrlx,
                                   double ctrly,
                                   double x2,
                                   double y2)

Возвращает квадрат отклонения, или максимальное расстояние контрольной точки от прямой, соединяющей конечные точки, квадратичной кривой, заданной указанными контрольными точками.

Параметры:
x1 - координата X начальной точки
y1 - координата Y начальной точки
ctrlx - координата X контрольной точки
ctrly - координата Y контрольной точки
x2 - координата X конечной точки
y2 - координата Y конечной точки
Возвращает:
квадрат отклонения квадратичной кривой, определенной указанными координатами.
С момента:
1.2

getFlatness

public static double getFlatness(double x1,
                                 double y1,
                                 double ctrlx,
                                 double ctrly,
                                 double x2,
                                 double y2)

Возвращает отклонение, или максимальное расстояние контрольной точки от прямой, соединяющей конечные точки, квадратичной кривой, заданной указанными контрольными точками.

Параметры:
x1 - координата X начальной точки
y1 - координата Y начальной точки
ctrlx - координата X контрольной точки
ctrly - координата Y контрольной точки
x2 - координата X конечной точки
y2 - координата Y конечной точки
Возвращает:
отклонение квадратичной кривой, определенной указанными координатами.
С момента:
1.2

getFlatnessSq

public static double getFlatnessSq(double[] coords,
                                   int offset)

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

Параметры:
coords - массив, содержащий значения координат
offset - индекс в coords с которого начинать получение значений из массива
Возвращает:
отклонение квадратичной кривой, определенной значениями в указанном массиве по указанному индексу.
С момента:
1.2

getFlatness

public static double getFlatness(double[] coords,
                                 int offset)

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

Параметры:
coords - массив, содержащий значения координат
offset - индекс в coords , с которого начинать извлечение значений координат
Возвращает:
отклонение квадратичной кривой, определенной указанным массивом по указанному смещению.
С момента:
1.2

getFlatnessSq

public double getFlatnessSq()

Возвращает квадрат отклонения, или максимальное расстояние контрольной точки от прямой, соединяющей конечные точки, этой QuadCurve2D.

Возвращает:
квадрат отклонения этой QuadCurve2D.
С момента:
1.2

getFlatness

public double getFlatness()

Возвращает отклонение, или максимальное расстояние контрольной точки от прямой, соединяющей конечные точки, этой QuadCurve2D.

Возвращает:
отклонение этой QuadCurve2D.
С момента:
1.2

subdivide

public void subdivide(QuadCurve2D left,
                      QuadCurve2D right)

Делит эту QuadCurve2D и сохраняет полученные две разделенные кривые в параметрах кривых left и right. Любой или оба из объектов left и right могут быть такими же, как эта QuadCurve2D или null.

Параметры:
left - объект QuadCurve2D для хранения левой или первой половины разделенной кривой
right - объект QuadCurve2D для хранения правой или второй половины разделенной кривой
С момента:
1.2

subdivide

public static void subdivide(QuadCurve2D src,
                             QuadCurve2D left,
                             QuadCurve2D right)

Делит квадратичную кривую, заданную параметром src, и сохраняет полученные две разделенные кривые в параметрах кривых left и right . Любой или оба из объектов left и right могут быть такими же, как объект src или null.

Параметры:
src - квадратичная кривая для деления
left - объект QuadCurve2D для хранения левой или первой половины разделенной кривой
right - объект QuadCurve2D для хранения правой или второй половины разделенной кривой
С момента:
1.2

subdivide

public static void subdivide(double[] src,
                             int srcoff,
                             double[] left,
                             int leftoff,
                             double[] right,
                             int rightoff)

Разделяет квадратную кривую, заданную координатами, хранящимися в массиве src по индексам от srcoff до srcoff + 5, и сохраняет полученные две разделенные кривые в двух массивах результатов по соответствующим индексам. Массивы left и right могут быть пустыми или ссылаться на один и тот же массив и смещение, как массив src. Обратите внимание, что последняя точка в первой разделенной кривой совпадает с первой точкой второй разделенной кривой. Таким образом, можно передать один и тот же массив для left и right и использовать смещения такие, что rightoff равно leftoff + 4, чтобы избежать выделения дополнительного места для этой общей точки.

Параметры:
src - массив, содержащий координаты исходной кривой
srcoff - смещение в массиве начала 6 координат исходной кривой
left - массив для хранения координат первой половины разделенной кривой
leftoff - смещение в массиве начала 6 координат левой части
right - массив для хранения координат второй половины разделенной кривой
rightoff - смещение в массиве начала 6 координат правой части
С:
1.2

solveQuadratic

public static int solveQuadratic(double[] eqn)

Решает квадратное уравнение, коэффициенты которого находятся в массиве eqn, и помещает действительные корни в тот же массив, возвращая количество корней. Решаемое квадратное уравнение представлено уравнением:

eqn = {C, B, A};
     ax^2 + bx + c = 0
Значение -1 используется для различения постоянного уравнения, которое может быть всегда 0 или никогда не 0, от уравнения, у которого нет нулей.

Параметры:
eqn - массив, содержащий коэффициенты квадратного уравнения
Возвращает:
количество корней или -1, если уравнение является постоянным
С:
1.2

solveQuadratic

public static int solveQuadratic(double[] eqn,
                                 double[] res)

Решает квадратное уравнение, коэффициенты которого находятся в массиве eqn, и помещает действительные корни в массив res, возвращая количество корней. Решаемое квадратное уравнение представлено уравнением:

eqn = {C, B, A};
     ax^2 + bx + c = 0
Значение -1 используется для различения постоянного уравнения, которое может быть всегда 0 или никогда не 0, от уравнения, у которого нет нулей.

Параметры:
eqn - указанный массив коэффициентов для решения квадратного уравнения
res - массив, содержащий действительные корни, полученные в результате решения квадратного уравнения
Возвращает:
количество корней или -1 если уравнение является постоянным.
С:
1.3

contains

public boolean contains(double x,
                        double y)

Проверяет, находятся ли заданные координаты внутри границы Shape, как описано в определении принадлежности.

Определено в:
contains в интерфейсе Shape
Параметры:
x - заданная координата X для проверки
y - заданная координата Y для проверки
Возвращает:
true если заданные координаты находятся внутри границы Shape; false в противном случае.
С:
1.2

contains

public boolean contains(Point2D p)

Проверяет, находится ли заданная Point2D внутри границы Shape, как описано в определении принадлежности.

Определено в:
contains в интерфейсе Shape
Параметры:
p - заданная Point2D для проверки
Возвращает:
true если заданная Point2D находится внутри границы Shape; false в противном случае.
С:
1.2

intersects

public boolean intersects(double x,
                          double y,
                          double w,
                          double h)

Проверяет, пересекается ли внутренняя область Shape с внутренней областью заданного прямоугольника. Прямоугольник считается пересекающим Shape если любая точка содержится как во внутренней области Shape, так и в заданном прямоугольнике.

Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true когда:

  • высока вероятность пересечения заданного прямоугольника и Shape, но
  • вычисления для точного определения этого пересечения слишком дорогостоящие.
Это означает, что для некоторых Shapes этот метод может вернуть true, даже если прямоугольник не пересекает Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape, и поэтому может быть использован, если требуется более точный ответ.
Определено в:
intersects в интерфейсе Shape
Параметры:
x - координата X верхнего левого угла заданного прямоугольника
y - координата Y верхнего левого угла заданного прямоугольника
w - ширина заданного прямоугольника
h - высота заданного прямоугольника
Возвращает:
true если внутренние области Shape и прямоугольника пересекаются или обе области с высокой вероятностью пересекаются, и вычисления пересечения слишком дороги; false в противном случае.
С:
1.2
См. также:
Area

intersects

public boolean intersects(Rectangle2D r)

Проверяет, пересекается ли внутренняя область Shape с внутренней областью заданного Rectangle2D. Метод Shape.intersects() позволяет реализации Shape консервативно возвращать true когда:

  • есть высокая вероятность пересечения Rectangle2D и Shape, но
  • вычисления для точного определения этого пересечения слишком дорогостоящие.
Это означает, что для некоторых Shapes этот метод может вернуть true, даже если Rectangle2D не пересекает Shape. Класс Area выполняет более точные вычисления геометрического пересечения, чем большинство объектов Shape, и поэтому может быть использован, если требуется более точный ответ.
Определено в:
intersects в интерфейсе Shape
Параметры:
r - заданный Rectangle2D
Возвращает:
true если внутренние области Shape и заданного Rectangle2D пересекаются или обе области с высокой вероятностью пересекаются, и вычисления пересечения слишком дороги; false в противном случае.
С:
1.2
См. также:
Shape.intersects(double, double, double, double)

contains

public boolean contains(double x,
                        double y,
                        double w,
                        double h)

Проверяет, полностью ли внутренняя область Shape содержит заданный прямоугольник. Все координаты, лежащие внутри прямоугольника, должны лежать внутри Shape для того, чтобы весь прямоугольник считался содержащимся в Shape.

Метод Shape.contains() позволяет реализации Shape консервативно возвращать false когда:

  • метод intersect возвращает true и
  • вычисления для определения, содержит ли Shape полностью прямоугольник, слишком дорогостоящие.
Это означает, что для некоторых Shapes этот метод может вернуть false, даже если Shape содержит прямоугольник. Класс Area выполняет более точные геометрические вычисления, чем большинство объектов Shape, и поэтому может быть использован, если требуется более точный ответ.
Определено в:
contains в интерфейсе Shape
Параметры:
x - координата X верхнего левого угла заданного прямоугольника
y - координата Y верхнего левого угла заданного прямоугольника
w - ширина заданного прямоугольника
h - высота заданного прямоугольника
Возвращает:
true если внутренняя область Shape полностью содержит заданный прямоугольник; false в противном случае, или если Shape содержит прямоугольник и метод intersects возвращает true и вычисления включения слишком дороги.
С:
1.2
См. также:
Area, Shape.intersects(double, double, double, double)

contains

public boolean contains(Rectangle2D r)

Проверяет, полностью ли внутренняя часть Shape содержит указанную Rectangle2D. Метод Shape.contains() позволяет реализации Shape консервативно возвращать false в случае:

  • метод intersect возвращает true и
  • вычисления, определяющие, полностью ли Shape содержит Rectangle2D, слишком дорогостоящи.
Это означает, что для некоторых Shapes этот метод может возвращать false, даже если Shape содержит Rectangle2D. Класс Area выполняет более точные геометрические вычисления, чем большинство объектов Shape и поэтому может быть использован, если требуется более точный ответ.

Определено в:
contains в интерфейсе Shape
Параметры:
r - Указанная Rectangle2D
Возвращает:
true если внутренняя часть Shape полностью содержит Rectangle2D; false в противном случае или, если Shape содержит Rectangle2D и метод intersects возвращает true, а вычисления включения слишком дорогостоящи.
С тех пор:
1.2
См. также:
Shape.contains(double, double, double, double)

getBounds

public Rectangle getBounds()

Возвращает целое Rectangle, которое полностью охватывает Shape. Обратите внимание, что нет гарантии, что возвращаемый Rectangle является наименьшей ограничивающей прямоугольником, охватывающей Shape, только что Shape полностью лежит внутри указанного Rectangle. Возвращаемый Rectangle также может не полностью охватить Shape в случае переполнения ограниченного диапазона целочисленного типа данных. Метод getBounds2D обычно возвращает более тесный ограничивающий прямоугольник из-за большей гибкости в представлении.

Обратите внимание, что определение включения может привести к ситуациям, когда точки на определяющей границе shape могут не считаться содержащимися в возвращаемом bounds объекте, но только в тех случаях, когда эти точки также не считаются содержащимися в исходном shape.

Если point находится внутри shape в соответствии с методом contains(point), то она должна находиться внутри возвращаемого Rectangle ограничивающего прямоугольника в соответствии с методом contains(point) объекта bounds. В частности:

shape.contains(x,y) требует bounds.contains(x,y)

Если point не находится внутри shape, то она все еще может содержаться в bounds объекте:

bounds.contains(x,y) не подразумевает shape.contains(x,y)

Определено в:
getBounds в интерфейсе Shape
Возвращает:
целое Rectangle , которое полностью охватывает Shape.
С тех пор:
1.2
См. также:
Shape.getBounds2D()

getPathIterator

public PathIterator getPathIterator(AffineTransform at)

Возвращает объект итерации, который определяет границу фигуры этого QuadCurve2D. Итератор для этого класса не потокобезопасен, что означает, что этот QuadCurve2D класс не гарантирует, что изменения в геометрии этого QuadCurve2D объекта не повлияют на какие-либо уже итерации этой геометрии.

Определено в:
getPathIterator в интерфейсе Shape
Параметры:
at - необязательный AffineTransform для применения к границе фигуры
Возвращает:
объект PathIterator, который определяет границу фигуры.
С тех пор:
1.2

getPathIterator

public PathIterator getPathIterator(AffineTransform at,
                                    double flatness)

Возвращает объект итерации, который определяет границу сглаженной фигуры этого QuadCurve2D. Итератор для этого класса не потокобезопасен, что означает, что этот QuadCurve2D класс не гарантирует, что изменения в геометрии этого QuadCurve2D объекта не повлияют на какие-либо уже итерации этой геометрии.

Определено в:
getPathIterator в интерфейсе Shape
Параметры:
at - необязательный AffineTransform для применения к границе фигуры
flatness - максимальное расстояние, на которое точки управления для подразделённой кривой могут находиться относительно прямой, соединяющей конечные точки этой кривой, прежде чем эта кривая заменяется прямой линией, соединяющей конечные точки.
Возвращает:
объект PathIterator , который определяет сглаженную границу фигуры.
С тех пор:
1.2

clone

public Object clone()

Создаёт новый объект того же класса с тем же содержимым, что и этот объект.

Переопределяет:
clone в классе Object
Возвращает:
клонированный экземпляр.
Исключения:
OutOfMemoryError - если памяти недостаточно.
С тех пор:
1.2
См. также:
Cloneable

© 1993, 2020, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API