Difference between revisions of "GIObject.Model"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
 
m (1 revision imported)
 
(2 intermediate revisions by 2 users not shown)
Line 13: Line 13:
 
* [[Объекты]]
 
* [[Объекты]]
 
* [[Объект GI]]}}
 
* [[Объект GI]]}}
Функция задает указанную модель графическому объекту, если аргумент опущен или пустой, ассоциация модели с объектом удаляется.
+
Функция задает указанную модель графическому объекту в массиве моделей по ее имени, если первый аргумент равен нулю, ассоциация модели с объектом удаляется. За одним объектом может быть закреплено произвольное количество моделей по именам. Модель по умолчанию имеет пустое имя. Все модели с состоянием, разрешающим автоматический вывод, будут выведены на экран в момент прорисовки объекта. Также можно выполнить прорисовку определенной модели по ее имени с помощью функции [[GIObject.DrawObject|DrawObject]].
  
 
== Синтаксис ==
 
== Синтаксис ==
 
<code>
 
<code>
{{Grey|GIObject.}}'''Model'''({{Optional|<Новая модель объекта (GIModel)>{{Default|{{Eq}}0}}}}):''<Предыдущая модель объекта (GIModel)>''
+
{{Grey|GIObject.}}'''Model'''({{Optional|<Новая модель объекта (GIModel)>{{Default|{{Eq}}NOTHING}},<Имя модели (STRING)>{{Default|{{Eq}}""}},<Состояние модели (INT)>{{Default|{{Eq}}0}}>}}):''<Предыдущая модель объекта (GIModel)>''
 
</code>
 
</code>
  
 
==== Аргументы ====
 
==== Аргументы ====
* <code>''<Новая модель объекта (GIModel)>''</code> - {{Optional}} Аргумент задает новую модель объекта.
+
* <code>''<Новая модель объекта (GIModel)>''</code> - {{Optional}} Аргумент задает новую модель объекта. Если аргумент равен нулю, ассоциация модели будет удалена.
 +
* <code>''<Имя модели (STRING)>''</code> - {{Optional}} Аргумент задает имя модели. По умолчанию используется пустое имя.
 +
* <code>''<Состояние модели (INT)>''</code> - {{Optional}} Аргумент задает состояние модели. Состояния явлется битовой маской, использующей следующие биты:
 +
** '''бит 1''': 0 -- автоматическая прорисовка модели разрешена, 1 -- запрещена.
  
 
==== Возвращаемое значение ====
 
==== Возвращаемое значение ====

Latest revision as of 08:13, 29 September 2025

  Model (Функции графических объектов)
Объект:Графический объект объекта GI
Статус разработки: Реализована
Тип:Функция
Обращение к БД:Нет
Исключения:Неверные аргументы.
Визуальность:Да

Функция задает указанную модель графическому объекту в массиве моделей по ее имени, если первый аргумент равен нулю, ассоциация модели с объектом удаляется. За одним объектом может быть закреплено произвольное количество моделей по именам. Модель по умолчанию имеет пустое имя. Все модели с состоянием, разрешающим автоматический вывод, будут выведены на экран в момент прорисовки объекта. Также можно выполнить прорисовку определенной модели по ее имени с помощью функции DrawObject.

Синтаксис

GIObject.Model(<Новая модель объекта (GIModel)>=NOTHING,<Имя модели (STRING)>="",<Состояние модели (INT)>=0>):<Предыдущая модель объекта (GIModel)>

Аргументы

  • <Новая модель объекта (GIModel)> - (необязательный аргумент) Аргумент задает новую модель объекта. Если аргумент равен нулю, ассоциация модели будет удалена.
  • <Имя модели (STRING)> - (необязательный аргумент) Аргумент задает имя модели. По умолчанию используется пустое имя.
  • <Состояние модели (INT)> - (необязательный аргумент) Аргумент задает состояние модели. Состояния явлется битовой маской, использующей следующие биты:
    • бит 1: 0 -- автоматическая прорисовка модели разрешена, 1 -- запрещена.

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

Возвращается предыдущая ассоциированная с объектом модель, если таковая была.

Примеры

//Используется фрагмент из обработки 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(аМодель);