<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI</id>
	<title>Объект GI - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://sfsys.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI"/>
	<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;action=history"/>
	<updated>2026-04-04T09:58:17Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.31.1</generator>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5100&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5100&amp;oldid=prev"/>
		<updated>2025-09-29T07:15:12Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 07:15, 29 September 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5099&amp;oldid=prev</id>
		<title>1&gt;Admin: /* Атрибуты и функции графических объектов */</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5099&amp;oldid=prev"/>
		<updated>2025-08-10T07:52:10Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Атрибуты и функции графических объектов&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 07:52, 10 August 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l873&quot; &gt;Line 873:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 873:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function entry&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function entry&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|name=[[GIObject.Model|Model]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|name=[[GIObject.Model|Model]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|form={{Grey|GIObject.}}'''Model'''({{Optional|&amp;lt;Новая модель объекта (GIModel)&amp;gt;{{Default|{{Eq}}0}}}}):''&amp;lt;Предыдущая модель объекта (GIModel)&amp;gt;''&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|form={{Grey|GIObject.}}'''Model'''({{Optional|&amp;lt;Новая модель объекта (GIModel&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;)&amp;gt;{{Default|{{Eq}}NOTHING}},&amp;lt;Имя модели (STRING)&amp;gt;{{Default|{{Eq}}&amp;quot;&amp;quot;}},&amp;lt;Состояние модели (INT&lt;/ins&gt;)&amp;gt;{{Default|{{Eq}}0}}&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;&amp;gt;&lt;/ins&gt;}}):''&amp;lt;Предыдущая модель объекта (GIModel)&amp;gt;''&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|type=1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|type=1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|status=2&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|status=2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|visual=0&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|visual=0&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|description=Функция задает указанную модель графическому объекту, если аргумент &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;опущен или пустой&lt;/del&gt;, ассоциация модели с объектом удаляется.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|description=Функция задает указанную модель графическому объекту &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;в массиве моделей по ее имени&lt;/ins&gt;, если &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;первый &lt;/ins&gt;аргумент &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;равен нулю&lt;/ins&gt;, ассоциация модели с объектом удаляется.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function entry&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function entry&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l977&quot; &gt;Line 977:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 977:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function entry&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function entry&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|name=[[GIObject.DrawObject|DrawObject]]&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|name=[[GIObject.DrawObject|DrawObject]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|form={{Grey|GIObject.}}'''DrawObject'''()&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|form={{Grey|GIObject.}}'''DrawObject'''(&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;{{Optional|&amp;lt;Имя модели (STRING)&amp;gt;}}&lt;/ins&gt;)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|type=1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|type=1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|status=2&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|status=2&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|visual=1&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|visual=1&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|description=Функция инициирует прорисовку текущего визуального объекта. Функция вызывается автоматически для всех объектов при прорисовке кадра, однако, если для объекта задано событие ''OnDraw'', внутри этого событие необходимо вызвать эту функцию для выполнения прорисовки объекта. Также эту функцию можно вызвать для произвольного объекта в произвольный момент прорисовки кадра, автоматическая прорисовка для этого объекта будет пропущена для этого кадра. Также функцию можно вызвать несколько раз для одного и того же графического объекта для одного и того же кадра, если в этом есть необходимость.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;|description=Функция инициирует прорисовку текущего визуального объекта. Функция вызывается автоматически для всех объектов при прорисовке кадра, однако, если для объекта задано событие ''OnDraw'', внутри этого событие необходимо вызвать эту функцию для выполнения прорисовки объекта. Также эту функцию можно вызвать для произвольного объекта в произвольный момент прорисовки кадра, автоматическая прорисовка для этого объекта будет пропущена для этого кадра. Также функцию можно вызвать несколько раз для одного и того же графического объекта для одного и того же кадра, если в этом есть необходимость&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;. Если указано имя модели, будет выполнена прорисовка только модели с указанным именем, иначе всех моделей, ассоциированных с объектом, для которых разрешена автоматическая прорисовка&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function footer}}&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;{{function footer}}&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5050&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5050&amp;oldid=prev"/>
		<updated>2025-06-09T11:15:16Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 11:15, 9 June 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5049&amp;oldid=prev</id>
		<title>1&gt;Admin at 12:19, 24 January 2025</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=5049&amp;oldid=prev"/>
		<updated>2025-01-24T12:19:42Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 12:19, 24 January 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot; &gt;Line 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Все функции и константы спецификации OpenGL доступны непосредственно из объекта (причем значения констант можно получить из интерфейса, без инициализации самого объекта), пример: &amp;lt;code&amp;gt;aGI.glClear(aGI.GL_COLOR_BUFFER_BIT or aGI.GL_DEPTH_BUFFER_BIT)&amp;lt;/code&amp;gt;. Вызов функций оптимизирован и происходит достаточно быстро, однако для сложных сцен может возникнуть необходимость выполнять тысячи и вызовов 60 и более раз в секунду, чтобы успевать за работой графической карты. Каждая команда языков высокого уровня выполняется гораздо медленнее, чем для языков, превращающих программы в машинный код, и нужно выполнить сотни тысяч таких команд в секунду, что может не оставить времени для другой работы внутри цикла прорисовки (обработки нажатия клавиш, движение объектов и пр.). Поэтому подход с прямым вызовом функций OpenGL для полной прорисовки сложных сцен не является оптимальным. Для облегчения ситуации, система оперирует понятиями графический объект и модель графического объекта. Объект GI может содержать произвольное количество графических объектов, которые могут быть как видимыми, так не отображаться на экране, они имеют свои свойства, такие, как идентификатор, координаты, коэффициенты изменения положения, размера и поворота, программы GPU (далее, шейдеры) и пр. Также графические объекты структурированы в дерево графических объектов. При прорисовке сцены, сначала рисуется родитель, затем подчиненные ему объекты, сохраняя все заданные для родителя свойства, типа изменения положения и поворота. Графические объекты удобно искать и удалять с помощью функций группового поиска (к примеру, [[GI.FindObjectsByIDRange|FindObjectsByIDRange]] или [[GI.DeleteObjectRange|DeleteObjectRange]]), изменения свойств объектов или даже их добавление и удаление допускается внутри цикла прорисовки и в событиях цикла и графических объектов.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Все функции и константы спецификации OpenGL доступны непосредственно из объекта (причем значения констант можно получить из интерфейса, без инициализации самого объекта), пример: &amp;lt;code&amp;gt;aGI.glClear(aGI.GL_COLOR_BUFFER_BIT or aGI.GL_DEPTH_BUFFER_BIT)&amp;lt;/code&amp;gt;. Вызов функций оптимизирован и происходит достаточно быстро, однако для сложных сцен может возникнуть необходимость выполнять тысячи и вызовов 60 и более раз в секунду, чтобы успевать за работой графической карты. Каждая команда языков высокого уровня выполняется гораздо медленнее, чем для языков, превращающих программы в машинный код, и нужно выполнить сотни тысяч таких команд в секунду, что может не оставить времени для другой работы внутри цикла прорисовки (обработки нажатия клавиш, движение объектов и пр.). Поэтому подход с прямым вызовом функций OpenGL для полной прорисовки сложных сцен не является оптимальным. Для облегчения ситуации, система оперирует понятиями графический объект и модель графического объекта. Объект GI может содержать произвольное количество графических объектов, которые могут быть как видимыми, так не отображаться на экране, они имеют свои свойства, такие, как идентификатор, координаты, коэффициенты изменения положения, размера и поворота, программы GPU (далее, шейдеры) и пр. Также графические объекты структурированы в дерево графических объектов. При прорисовке сцены, сначала рисуется родитель, затем подчиненные ему объекты, сохраняя все заданные для родителя свойства, типа изменения положения и поворота. Графические объекты удобно искать и удалять с помощью функций группового поиска (к примеру, [[GI.FindObjectsByIDRange|FindObjectsByIDRange]] или [[GI.DeleteObjectRange|DeleteObjectRange]]), изменения свойств объектов или даже их добавление и удаление допускается внутри цикла прорисовки и в событиях цикла и графических объектов.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;−&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Графический объект на данный момент может иметь &amp;quot;простую&amp;quot; модель (см. [[GIModel.&lt;del class=&quot;diffchange diffchange-inline&quot;&gt;Simple&lt;/del&gt;]]) или быть нарисованным в обработчике рисования без какой-либо модели. В будущем планируется добавить другие типы моделей. &amp;quot;Простая&amp;quot; модель представляет собой бинарную очередь обычных команд для прорисовки, сохраненную в буфер, которую система использует всякий раз при необходимости &lt;del class=&quot;diffchange diffchange-inline&quot;&gt;прорисовать &lt;/del&gt;графический объект. Так как подобная цепочка команд выполняется на низком уровне машинного кода, а не на высоком уровне языка системы, выполнение проходит гораздо быстрее. &amp;quot;Простая&amp;quot; модель для OpenGL включает практически все необходимые команды рисования вертексов или массивов, манипуляции текстурами, переменными шейдеров и матрицами. Модель создается и изменяется достаточно редко и прорисовка в большинстве кадров выполняется на статической модели, процесс создания модели, поэтому, практически не влияет на скорость прорисовки. Минусом такого подхода является необходимость создавать модель (обычно с помощью [[Buffer.AddValues]]), что усложняет читаемость кода, но ее также можно загружать в готовом виде из какого-либо файла ресурса. См. пример создания модели ниже.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;+&lt;/td&gt;&lt;td style=&quot;color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Графический объект на данный момент может иметь &amp;quot;простую&amp;quot; модель (см. [[GIModel.&lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;SimpleModel&lt;/ins&gt;]]) или быть нарисованным в обработчике рисования без какой-либо модели. В будущем планируется добавить другие типы моделей. &amp;quot;Простая&amp;quot; модель представляет собой бинарную очередь обычных команд для прорисовки &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;(микрокод)&lt;/ins&gt;, сохраненную в буфер, которую система использует всякий раз при необходимости &lt;ins class=&quot;diffchange diffchange-inline&quot;&gt;нарисовать &lt;/ins&gt;графический объект. Так как подобная цепочка команд выполняется на низком уровне машинного кода, а не на высоком уровне языка системы, выполнение проходит гораздо быстрее. &amp;quot;Простая&amp;quot; модель для OpenGL включает практически все необходимые команды рисования вертексов или массивов, манипуляции текстурами, переменными шейдеров и матрицами. Модель создается и изменяется достаточно редко и прорисовка в большинстве кадров выполняется на статической модели, процесс создания модели, поэтому, практически не влияет на скорость прорисовки. Минусом такого подхода является необходимость создавать модель (обычно с помощью [[Buffer.AddValues]]), что усложняет читаемость кода, но ее также можно загружать в готовом виде из какого-либо файла ресурса. См. пример создания модели ниже.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Объект ''GI'' также оперирует своим набором событий, которые могут быть заданы как для самого объекта, так и для его графических объектов (см. [[GI.LinkEvent|LinkEvent]]). Доступны события момента начала прорисовки, ввода информации пользователем (нажатия клавиш, движение мыши, получение фокуса и пр.) и изменение размеров всего окна. События удобно использовать для основных объектов или всего окна, задание событий для очень большого числа объектов может замедлить цикл прорисовки.&lt;/div&gt;&lt;/td&gt;&lt;td class='diff-marker'&gt;&amp;#160;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #222; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Объект ''GI'' также оперирует своим набором событий, которые могут быть заданы как для самого объекта, так и для его графических объектов (см. [[GI.LinkEvent|LinkEvent]]). Доступны события момента начала прорисовки, ввода информации пользователем (нажатия клавиш, движение мыши, получение фокуса и пр.) и изменение размеров всего окна. События удобно использовать для основных объектов или всего окна, задание событий для очень большого числа объектов может замедлить цикл прорисовки.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=4967&amp;oldid=prev</id>
		<title>Admin: 1 revision imported</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=4967&amp;oldid=prev"/>
		<updated>2025-01-22T06:57:25Z</updated>

		<summary type="html">&lt;p&gt;1 revision imported&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #222; text-align: center;&quot;&gt;Revision as of 06:57, 22 January 2025&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
	<entry>
		<id>http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=4966&amp;oldid=prev</id>
		<title>1&gt;Admin: /* Атрибуты и функции шейдеров и программ шейдеров */</title>
		<link rel="alternate" type="text/html" href="http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;diff=4966&amp;oldid=prev"/>
		<updated>2025-01-22T06:33:00Z</updated>

		<summary type="html">&lt;p&gt;‎&lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Атрибуты и функции шейдеров и программ шейдеров&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;a href=&quot;http://sfsys.ru/index.php?title=%D0%9E%D0%B1%D1%8A%D0%B5%D0%BA%D1%82_GI&amp;amp;diff=4966&quot;&gt;Show changes&lt;/a&gt;</summary>
		<author><name>1&gt;Admin</name></author>
		
	</entry>
</feed>