<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.bci2000.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Programming_Reference%3AScene_Class</id>
	<title>Programming Reference:Scene Class - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.bci2000.org/mediawiki/index.php?action=history&amp;feed=atom&amp;title=Programming_Reference%3AScene_Class"/>
	<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Reference:Scene_Class&amp;action=history"/>
	<updated>2026-06-24T01:23:33Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>https://www.bci2000.org/mediawiki/index.php?title=Programming_Reference:Scene_Class&amp;diff=4335&amp;oldid=prev</id>
		<title>Mellinger at 16:41, 11 September 2008</title>
		<link rel="alternate" type="text/html" href="https://www.bci2000.org/mediawiki/index.php?title=Programming_Reference:Scene_Class&amp;diff=4335&amp;oldid=prev"/>
		<updated>2008-09-11T16:41:29Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Location==&lt;br /&gt;
&amp;lt;tt&amp;gt;src/extlib/3DAPI&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Synopsis==&lt;br /&gt;
The &amp;lt;tt&amp;gt;Scene&amp;lt;/tt&amp;gt; class provides a rectangular view on a 3D scene. Inheriting from [[Programming Reference:GraphObject Class|&amp;lt;tt&amp;gt;GraphObject&amp;lt;/tt&amp;gt;]], a &amp;lt;tt&amp;gt;Scene&amp;lt;/tt&amp;gt; object is drawn onto a [[Programming Reference:GraphDisplay Class|&amp;lt;tt&amp;gt;GraphDisplay&amp;lt;/tt&amp;gt;]].&lt;br /&gt;
&lt;br /&gt;
The scene itself consists of scene objects as defined by the [[Programming Reference:3D API|3D API]].&lt;br /&gt;
&lt;br /&gt;
==Methods==&lt;br /&gt;
===Scene(GraphDisplay)===&lt;br /&gt;
In the constructor, specify the [[Programming Reference:GraphDisplay Class|GraphDisplay]] associated with the scene object.&lt;br /&gt;
===Add(primObj pointer)===&lt;br /&gt;
Adds a 3D API object to the scene.&lt;br /&gt;
===Remove(primObj pointer)===&lt;br /&gt;
Removes a 3D API object from the scene.&lt;br /&gt;
===DeleteObjects()===&lt;br /&gt;
Deletes all objects that are part of the scene.&lt;br /&gt;
===Move(float deltaT)===&lt;br /&gt;
Moves all 3D API objects one step forward in time, using their specified velocities, and tests for collisions.&lt;br /&gt;
{{GraphObjectMethods}}&lt;br /&gt;
&lt;br /&gt;
==Properties==&lt;br /&gt;
===OnCollideFunc OnCollide (w)===&lt;br /&gt;
Specifies a callback function to be called for each collision between scene objects. The callback function takes references to a pair of scene objects as arguments.&lt;br /&gt;
Collision testing is done from the &amp;lt;tt&amp;gt;Move()&amp;lt;/tt&amp;gt; member function.&lt;br /&gt;
===SetOfObjects Objects (r)===&lt;br /&gt;
The objects contained in the scene, as a &amp;lt;tt&amp;gt;std::set&amp;lt;/tt&amp;gt; of object pointers.&lt;br /&gt;
===string ImagePath (rw)===&lt;br /&gt;
Reference path for texture images specified using relative paths.&lt;br /&gt;
===float CameraX, CameraY, CameraZ (rw)===&lt;br /&gt;
Camera position in scene coordinates.&lt;br /&gt;
===cameraNLight CameraAndLight (rw)===&lt;br /&gt;
Provides access to the scene&amp;#039;s 3D API &amp;lt;tt&amp;gt;cameraNLight&amp;lt;/tt&amp;gt; object that defines details of projection and scene lighting.&lt;br /&gt;
===int BitDepth (rw)===&lt;br /&gt;
The scene&amp;#039;s rendering bit depth. Typically, this is 16 or 24.&lt;br /&gt;
===bool DoubleBuffering (rw)===&lt;br /&gt;
Switch double buffering on or off. When switched on, the scene will be rendered into an offscreen buffer, and only displayed after rendering is finished.&lt;br /&gt;
===bool DisableVsync (rw)===&lt;br /&gt;
When double buffering is enabled, buffer switching will be synchronized to the display&amp;#039;s vertical sync pulse. While this is desired for most purposes, it will affect BCI2000 system timing, and should thus be disabled. This will not work for all graphics cards.&lt;br /&gt;
===bool HardwareAccelerated (r)===&lt;br /&gt;
&amp;#039;&amp;#039;True&amp;#039;&amp;#039; if OpenGL rendering is realized in hardware, &amp;#039;&amp;#039;false&amp;#039;&amp;#039; in case of a software renderer.&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
[[Programming Reference:3D API]], [[Programming Reference:GraphObject Class]], [[Programming Reference:GraphDisplay Class]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Framework API]][[Category:Development]]&lt;/div&gt;</summary>
		<author><name>Mellinger</name></author>
	</entry>
</feed>