ddd.mesto

Модуль, представляющий класс Место - контейнер для 3D-объектов. Каждое Место может быть родителем/потомком другого Места. В объекте класса сохраняются данные о положении, повороте и масштабе. Все эти пространственные характеристики применяются ко всем содержащимся в этом контейнере объектам и ко всем объектам, содержащимся в контейнерах-потомках этого Места. Все объекты Место, в которых содержатся видимые на экране 3D-объекты, составляют иерархию, корень которой (под именем начальное_место) содержится в объекте DDDМенеджер.

  • class Место;

    Класс-контейнер для 3D-объектов, определяющий их расположение, поворот и масштаб

    • enum float РАДИАНЫ_В_ГРАДУСЫ;

      Коэффициент для перевода значения угла в радианах в значение в градусах

    • this(string имя0);

      Конструктор, создающий объект Места с расположением в начале координат, без поворота и с единичным масштабом.

      Параметры:

      string имя0

      имя, которое будет присвоено создаваемому Месту

    • void задать_родителя(Место родительское_место);

      Сделать этот объект потомком другого Места

    • @property Место получить_родителя();

      Метод, возвращающий место, являющееся родетелем этого Места

    • @property string получить_имя();

      Метод, возвращающий имя этого Места

    • @property Кватернион получить_ориентацию();

      Метод, возвращающий кватернион поворота этого Места

    • @property Вектор3 получить_позицию();

      Метод, возвращающий вектор расположения этого Места

    • @property Вектор3 получить_масштаб();

      Метод, возвращающий вектор масштаба этого Места

    • void задать_ориентацию(const(Кватернион) к);

      Метод, задающий кватернион поворота этого Места

      Параметры:

      const(Кватернион) к

      кватернион, который будет задавать поворот этого Места

    • void сбросить_ориентацию();

      Метод, приводящий ориентацию этого Места в значение нулевого поворота

    • void задать_позицию(const(Вектор3) позиция0);

      Метод, задающий позицию этого Места

      Параметры:

      const(Вектор3) позиция0

      вектор, задающий позицию этого Места

    • void задать_позицию(float x, float y, float z);

      Метод, задающий позицию этого Места

      Параметры:

      float x

      координата x результирущей позиции этого Места

      float y

      координата y результирущей позиции этого Места

      float z

      координата z результирущей позиции этого Места

    • void задать_масштаб(const(Вектор3) масштаб0);

      Метод, задающий масштаб этого Места

      Параметры:

      const(Вектор3) масштаб0

      вектор, задающий масштаб этого Места

    • void задать_масштаб(float x, float y, float z);

      Метод, задающий масштаб этого Места

      Параметры:

      float x

      масштаб этого Места по координате x

      float y

      масштаб этого Места по координате y

      float z

      масштаб этого Места по координате z

    • void масштабировать(const(Вектор3) изменение_масштаба);

      Функция масштабирования этого Места

      Параметры:

      const(Вектор3) изменение_масштаба

      вектор масштабирования, в соответствии с которым изменяется масштаб этого Места

    • void масштабировать(float x, float y, float z);

      Функция масштабирования этого Места

      Параметры:

      float x

      координата x вектора масштабирования, в соответствии с которым изменяется масштаб этого Места

      float y

      координата y вектора масштабирования, в соответствии с которым изменяется масштаб этого Места

      float z

      координата z вектора масштабирования, в соответствии с которым изменяется масштаб этого Места

    • void сдвинуть(const(Вектор3) смещение);

      Функция сдвига этого Места

      Параметры:

      const(Вектор3) смещение

      вектор, на который сдвигается это Место

    • void сдвинуть(float x, float y, float z);

      Функция сдвига этого Места

      Параметры:

      float x

      расстояние по координате x, на которое сдвигается это Место

      float y

      расстояние по координате y, на которое сдвигается это Место

      float z

      расстояние по координате z, на которое сдвигается это Место

    • void крен(float угол);

      Функция поворота этого Места вокруг оси Z

      Параметры:

      float угол

      угол, на который поворачивается это Место

    • void наклон(float угол);

      Функция поворота этого Места вокруг оси X

      Параметры:

      float угол

      угол, на который поворачивается это Место

    • void поворот(float угол);

      Функция поворота этого Места вокруг оси Y

      Параметры:

      float угол

      угол, на который поворачивается это Место

    • void вращать(const(Вектор3) ось, float угол);

      Функция поворота этого Места вокруг заданной оси

      Параметры:

      const(Вектор3) ось

      вектор, представляющий ось, вокруг которой поворачивается это Место

      float угол

      угол, на который поворачивается это Место

    • void вращать(const(Кватернион) к);

      Функция поворота этого Места

      Параметры:

      const(Кватернион) к

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

    • Место создать_ребёнка(string имя0, const(Вектор3) сдвиг, const(Кватернион) вращение, const(Вектор3) масштабирование = Вектор3.ЕДИНИЦА_МАСШТАБА);

      Функция, создающая новый объект Места, который становится потомком этого Места

      Параметры:

      string имя0

      имя нового Места

      const(Вектор3) сдвиг

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

      const(Кватернион) вращение

      кватернион, который представляет ориентацию нового Места относительно ориентации этого Места

      const(Вектор3) масштабирование

      вектор, задающий масштаб нового Места

    • void добавить_ребёнка(Место ребёнок);

      Функция, добавляющая переданный объект Места в список потомков этого Места.

      Если объект ребёнок уже имеет родителя, то функция не выполняет никаких действий.

      Параметры:

      Место ребёнок

      объект Места, который будет потомком этого Места

    • short количество_детей();

      Функция, возвращающая количество потомков этого Места.

    • Место получить_ребёнка(string имя0);

      Функция, возвращающая объект-ребёнок этого Места по его имени.

      Параметры:

      string имя0

      имя искомого объекта

    • Место удалить_ребёнка(Место ребёнок);

      Функция, удаляющая переданный объект-ребёнок из списка потомков этого Места.

      Параметры:

      Место ребёнок

      объект Места, который будет удалён из списка потомков этого Места

      Возвращаемое значение:

      Объект Места, удалённый из списка потомков.

    • Место удалить_ребёнка(string имя_ребёнка);

      Функция, удаляющая объект-ребёнок из списка потомков этого Места.

      Параметры:

      string имя_ребёнка

      имя объекта Места, который будет удалён из списка потомков этого Места

      Возвращаемое значение:

      Объект Места, удалённый из списка потомков.

    • void удалить_всех_детей();

      Функция, очищающая список потомков этого Места.

    • void задать_видимость(bool включено0);

      Функция, задающая видимость этого Места.

      Параметры:

      bool включено0

      результирующая видимость этого Места

    • @property bool получить_видимость();

      Функция, возвращающая видимость этого Места.

    • void поменять_видимость();

      Функция, переключающая видимость этого Места.

    • void присоединить_объект(ДвижимыйОбъект до);

      Функция, добавляющая 3D-объект в это Место (в контейнер).

      Если переданный объект уже находится в каком либо Месте, то функция не выполняет никаких действий.

      Параметры:

      ДвижимыйОбъект до

      добавляемый объект

    • @property short количество_объектов();

      Функция, возвращающая количество объектов контейнере.

    • ДвижимыйОбъект получить_объект(string имя_объекта);

      Функция, возвращающая объект из контейнера по его имени.

      Параметры:

      string имя_объекта

      имя искомого объекта

    • ДвижимыйОбъект отсоединить_объект(ДвижимыйОбъект до);

      Функция, изымающая объект из контейнера.

      Параметры:

      ДвижимыйОбъект до

      изымаемый объект

      Возвращаемое значение:

      Изъятый объект.

    • ДвижимыйОбъект отсоединить_объект(string имя_объекта);

      Функция, изымающая объект по его имени из контейнера.

      Параметры:

      string имя_объекта

      имя изымаемого объекта

      Возвращаемое значение:

      Изъятый объект.

    • void отсоединить_все_объекты();

      Функция, очищающая контейнер от всех присоединённых объектов.

    • void рисовать(uint очередь);

      Функция рисования всех объектов, присоединённых к этому Месту, и всех объектов, присоединённых к потомкам этого Места.

      Если видимость этого Места отключена, то функция не выполняет никаких действий.

    • @property int количество_граней();

      Статистическая функция, возвращающая количество граней всех объектов, присоединённых к этому Месту, и всех объектов, присоединённых к потомкам этого Места.

      Если видимость этого Места отключена, то функция возвращает 0.

    • const string toString();

      Вывод этого Места в строковое представление