Difference between revisions of "GIObject.DeleteObjectRange"

From SunFlurry wiki
Jump to: navigation, search
1>Admin
 
m (1 revision imported)
 
(No difference)

Latest revision as of 08:53, 22 January 2025

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

Функция удаляет диапазон графических объектов по их идентификаторам (либо все объекты, если аргументы идентификаторов не заданы). Функция производит поиск объектов для удаления среди подчиненных объектов данного или всех графических объектов GI, если она вызывается для объекта GI. Если задана опция рекурсивного поиска, он будет происходить не только среди непосредственно подчиненных объектов, но и среди всех объектов подчиненных последним. При удалении объекта, все его подчиненные объекты также удаляются.

Синтаксис

GIObject или GI.DeleteObjectRange(<Рекурсивный поиск (INT)>=0,<Начальный идентификатор диапазона объектов (STRING)>,<Конечный идентификатор диапазона объектов (STRING)>)

Аргументы

  • <Рекурсивный поиск (INT)> - (необязательный аргумент) Аргумент задает режим, когда поиск будет происходить не только среди непосредственно подчиненных объектов, но и среди всех объектов подчиненных последним.
  • <Начальный идентификатор диапазона объектов (STRING)> - (необязательный аргумент) Аргумент задает идентификатор начала диапазона для удаления.
  • <Конечный идентификатор диапазона объектов (STRING)> - (необязательный аргумент) Аргумент задает идентификатор окончания диапазона для удаления.

Примеры

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


...


If _And(ФлАктивныйФеерверк,аВремя-аВремяПадения>2.5) Then
  //Удалим все объекты с идентификатором "EXP"
  aGI.DeleteObjectRange(0,"EXP");
  ФлАктивныйФеерверк:=0;
EndIf;