GIObject.AddObject
AddObject (Функции графических объектов) | |||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Функция добавляет новый графический объект непосредственно к объекту GI или как подчиненный объект другого графического объекта. Для нового объекта можно указать идентификатор, начальное состояние, его положение и размеры (положение и размеры могут использоваться моделью объекта или по усмотрению разработчика), а также сопоставить с ним произвольное значение и задать объект класса (связанный объект свойства и методы которого также можно будет использовать в данном объекте). Прорисовка объектов происходит автоматически (если их состояние ее не запрещает). При прорисовке сцены, сначала рисуется родитель, затем подчиненные ему объекты, сохраняя все заданные для родителя свойства, типа изменения положения и поворота.
Синтаксис
GIObject или GI.AddObject(<Идентификатор объекта (STRING)>="",<Идентификатор класса или объект класса (STRING,GIObject)>,<Состояние объекта (INT)>=0,<Произвольное дополнительное значение объекта>,<Координата по X (REAL)>,<Координата по Y (REAL)>,<Координата по Z (REAL)>,<Ширина по X (REAL)>,<Ширина по Y (REAL)>,<Ширина по Z (REAL)>):<Новый объект (GIObject)>
Аргументы
<Идентификатор объекта (STRING)>
- (необязательный аргумент) Аргумент задает идентификатор (имя) нового объекта, если он необходим.<Идентификатор класса или объект класса (STRING,GIObject)>
- (необязательный аргумент) (планируется к реализации) Аргумент задает идентификатор (имя) объекта для копирования методов и свойств, либо сам такой объект. Если аргумент не задан, методы и свойства в новом объекте не будут созданы.<Состояние объекта (INT)>
- (необязательный аргумент) Аргумент задает состояние нового объекта, которое является битовой маской со следующими битами:- 0: 1, если объект не будет выводиться на экран, иначе 0 (по умолчанию)
<Произвольное дополнительное значение объекта>
- (необязательный аргумент) Аргумент произврольное значение, которое в дальнейшем будет доступно при обращении к атрибуту объекта GIObject.<Координата по X (REAL)>,<Координата по Y (REAL)>,<Координата по Z (REAL)>
- (необязательный аргумент) Аргументы задают координаты, ассоциированные с этим объектом. Эта информация в дальнейшем может использоваться в модели или по усмотрению разработчика.<Ширина по X (REAL)>,<Ширина по Y (REAL)>,<Ширина по Z (REAL)>
- (необязательный аргумент) Аргументы задают размеры объекта. Эта информация в дальнейшем может использоваться в модели или по усмотрению разработчика.
Возвращаемое значение
Возвращается новый графический объект.
Примеры
//Используется фрагмент из обработки tetris.sfo //Создадим новую простую модель с пустым буфером аБуфер:=Buffer.Create(); аМодель:=GIModel.New(); аМодель.SimpleModel(аБуфер); //Заполним буфер микрокодом аСмещ:=0; аБуфер.AddValues(аСмещ,4,201,aGI.GL_TEXTURE_2D,0);//glBindTexture аБуфер.AddValues(аСмещ,4,300,лкПрограммы[3]);//ShaderProgramUse аБуфер.AddValues(аСмещ,4,301,aGI.ShaderProgramGetVariableID(лкПрограммы[3],"u_scrpos"),4,$004); аБуфер.AddValues(аСмещ,104,x,aGI.Height-y,2*dx,2*dx);//u_scrpos аБуфер.AddValues(аСмещ,4,302,aGI.ShaderProgramGetVariableID(лкПрограммы[3],"u_time"));//u_time аБуфер.AddValues(аСмещ,4,301,aGI.ShaderProgramGetVariableID(лкПрограммы[3],"u_starttime"),1,$001); аБуфер.AddValues(аСмещ,104,aGI.WorldTime);//u_starttime аБуфер.AddValues(аСмещ,4,1,aGI.GL_QUADS);//glBegin аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x,y,-0.3);//glVertex аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x,y+2*dx,-0.3);//glVertex аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x+2*dx,y+2*dx,-0.3);//glVertex аБуфер.AddValues(аСмещ,4,100);аБуфер.AddValues(аСмещ,104,x+2*dx,y,-0.3);//glVertex аБуфер.AddValues(аСмещ,4,2);//glEnd аБуфер.AddValues(аСмещ,4,0);//EOF //Создадим новый объект и добавим к нему эту модель аОбъект:=aGI.AddObject("EXP"); аОбъект.Model(аМодель);