Difference between revisions of "GIObject.Model"
m (1 revision imported) |
m (1 revision imported) |
||
| (One intermediate revision by one other user 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 (Функции графических объектов) | |||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||
Функция задает указанную модель графическому объекту в массиве моделей по ее имени, если первый аргумент равен нулю, ассоциация модели с объектом удаляется. За одним объектом может быть закреплено произвольное количество моделей по именам. Модель по умолчанию имеет пустое имя. Все модели с состоянием, разрешающим автоматический вывод, будут выведены на экран в момент прорисовки объекта. Также можно выполнить прорисовку определенной модели по ее имени с помощью функции 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(аМодель);