| DXGfxLib.AABBox | AABBox stand for axis aligned bounding box. This is means a bouding box which remain aligned with world space axis. In some situation this can become a very coarse approximation of an ideal bounding volume. For efficiency reason the scene graph perform only on AABBox this is more efficient to build bounding volume from children. As the scene graph uses these information only to reject portion of the graph when we are sure the are out of the viewing frustrum or to perform a first selection of node potentially colliding with another box or a ray, having big bounding volume is not that bad |
| Game.Action | |
| Game.Animal | |
| Microsoft.Samples.DirectX.UtilityToolkit.ArcBall | Class holds arcball data |
| DXGfxLib.Area | This is a scene node that can be visualized in the editor thus this class derives from MeshObject. When the simulation is run there, this SceneObject does not display itself (it's fully transparent). Still instances of this class will be positionned in our 3D world and will most probably be used by the logic of other SceneObject, to know for example in which direction a SceneObject should move, that kind of stuff!! |
| DXGfxLib.ArticulatedModel | Each time you want to add an animated model to your scene you should use this class or a class that derives from this. The model and associated animations are going to be loaded from a X file. By default all animations will be played as soon as the instance of this class is added to the scene |
| DXGfxLib.Avatar | The avatar is a special scene node. It is meant to be used in conjonction with a class implementing IInputHandler. The input handler will be notified of events and will pass relevant information both to the camera and the avatar. Each of these could also possibly implement its own logic to react to event. At the moment this is a bit overengineered as we have only a ThirdPersonCamera and a Base avatar class but this could change in the future |
| DXGfxLib.Batch | The batch class. This class can be useful if we have many instances of a geometry with a small number of faces. In that specific situation you can make a batch out of these geometries. They will be pre transform and but in one big mesh. At the moment you should use geometries with only one subset, if you have several materials and subsets in your mesh all vertices that will be put in the big mesh will be rendered with first material and texture as if they were all part of subset 0. During my testing I have attempted to use this class for the tress of the demo. I was doing these tests with trees of 1600 faces (quite a lot for a tree but good for testing :)) this did not give good results. In fact it was much better to have each tree as a separate SceneObject. This might change based on which machine you run the program on but there will always be some tradeoff to make. At the moment the limit for the big buffer is 5000. Maybe that's still too high |
| Game.BayesianChannel | |
| DXGfxLib.BBox | Culling and collision detection is based on this class |
| DXGfxLib.BBoxPlanes | This class is used to contain the collection of planes that do constitue a bounding box |
| DXGfxLib.Billboard | Billboards are texture quad always watching the camera. They are some time useful as impostors when you don't want to render a very complex object. Texture displayed by billboard should have an alpha channel in order not to occlude everything behind. The library will sort them approiately from back to front before rendering them with alpha. This class inherits from TexturedPlane, main differences are that TexturePlanes don't always look at the camera and are not necessarily rendered using alpha blending |
| Microsoft.Samples.DirectX.UtilityToolkit.BlendColor | Blends colors |
| Game.Boat | |
| Game.Building | |
| Microsoft.Samples.DirectX.UtilityToolkit.Button | Button control |
| Microsoft.Samples.DirectX.UtilityToolkit.CachedEffect | Information about a cached effect |
| Microsoft.Samples.DirectX.UtilityToolkit.CachedTexture | Information about a cached texture |
| Microsoft.Samples.DirectX.UtilityToolkit.Camera | Simple base camera class that moves and rotates. The base class records mouse and keyboard input for use by a derived class, and keeps common state |
| Microsoft.Samples.DirectX.UtilityToolkit.Checkbox | Checkbox control |
| DXGfxLib.ColladaEffect | |
| DXGfxLib.ColladaEffectProp | |
| DXGfxLib.ColladaGeometry | |
| DXGfxLib.ColladaImage | |
| DXGfxLib.ColladaLoader | |
| DXGfxLib.ColladaMaterial | |
| DXGfxLib.ColladaSource | |
| Microsoft.Samples.DirectX.UtilityToolkit.ComboBox | Combo box control |
| Microsoft.Samples.DirectX.UtilityToolkit.ComboBoxItem | Stores data for a combo box item |
| Microsoft.Samples.DirectX.UtilityToolkit.Control | Base class for all controls |
| Microsoft.Samples.DirectX.UtilityToolkit.CreatingDeviceException | Creating the device failed |
| Microsoft.Samples.DirectX.UtilityToolkit.CreatingDeviceObjectsException | Creating the device objects failed |
| DXGfxLib.Cursor | An instance of the cursor class will be used by the editor while editing the scene. Even if an instance of this class is part of the scene, it won't be displayed while the simulation is running. It will be displayed only while editing the scene |
| DXGfxLib.Serialization.CursorSurrogate | |
| Microsoft.Samples.DirectX.UtilityToolkit.DeviceEventArgs | Event arguments for device creation/reset |
| Microsoft.Samples.DirectX.UtilityToolkit.DeviceSettings | Holds the settings for creating a device |
| Microsoft.Samples.DirectX.UtilityToolkit.Dialog | All controls must be assigned to a dialog, which handles input and rendering for the controls |
| Microsoft.Samples.DirectX.UtilityToolkit.DialogResourceManager | Manages shared resources of dialogs |
| Microsoft.Samples.DirectX.UtilityToolkit.DirectionWidget | Widget for controlling direction |
| Microsoft.Samples.DirectX.UtilityToolkit.DirectXSampleException | Base class for sample exceptions |
| Microsoft.Samples.DirectX.UtilityToolkit.DisplayModeSorter | Used to sort display modes |
| DXGfxLib.domei | |
| DXGfxLib.DrawableBBox | This is a helper class in order to display a wireframe bounding box for our geometries |
| Game.Drinking | |
| DXGfxLib.DXGfxManager | This class is a recent addition to the library. It has been added when I have started to use effect file. This was a good central place to place a default effect group. Also this class is used from the editor |
| Game.Eating | |
| Microsoft.Samples.DirectX.UtilityToolkit.EditBox | A basic edit box |
| DXGfxLib.EffectException | Now that we use Effects, this means that at some point we do load them and compile them. This exception type is designed specifficaly for situations were bad things did happen during the compilation of the effect file |
| DXGfxLib.EffectGroup | This class is a convenient class to package everything related to the effects that might be needed to render a geometry. At the moment this class will act as a container for various types of effects associated with various situations. This is a bit premature as in the current version of the sample associated with the library we use only the default effect of an effect group |
| Microsoft.Samples.DirectX.UtilityToolkit.Element | Contains all the display tweakables for a sub-control |
| Microsoft.Samples.DirectX.UtilityToolkit.ElementHolder | Contains all the display information for a given control type |
| DXGfxLib.EnhancedAllocateHierarchy | In order to create derived classes instead of base Frame and MeshContainer we need to provide our own class deriving from AllocateHierarchy. This is EnhancedAllocateHierarchy |
| DXGfxLib.EnhancedFrame | We want to update world position of each frame in the Update phase of our scene graph. The base Frame doesn't keep track of that worldPosition so we need to derive from Frame and add members to our class in order to be able to store that matrix |
| DXGfxLib.EnhancedMeshContainer | We want to keep track of quite a lot of information that are not kept by MeshContainer. So we derive our own class from it and add members to keep track of every single information we need. These information are populated when loading a hierarchy from file by EnhancedAllocateHierarchy |
| Microsoft.Samples.DirectX.UtilityToolkit.EnumAdapterInformation | Class describing an adapter which contains a unique adapter ordinal that is installed on the system |
| Microsoft.Samples.DirectX.UtilityToolkit.EnumDepthStencilMultisampleConflict | A depth/stencil buffer format that is incompatible with a multisample type |
| Microsoft.Samples.DirectX.UtilityToolkit.EnumDeviceInformation | Class describing a Direct3D device that contains a unique supported device type |
| Microsoft.Samples.DirectX.UtilityToolkit.EnumDeviceSettingsCombo | Class describing device settings that contain a unique combination of adapter format, back buffer format, and windowed that is compatible with a particular Direct3D device and the application |
| Microsoft.Samples.DirectX.UtilityToolkit.Enumeration | Enumerates available Direct3D adapters, devices, modes, etc. Singleton |
| DXGfxLib.Event | Events are very brute. They are only three strings, a time value (the time at which we should fire them) and a boolean stating whether they have been fired or not. This is brute but pretty flexible as you can put pretty much everything in strings, even source code that has to be compiled... everything. Obviously this class will be derived for more specific event types but for the moment this is just the base class, the most generic possible event for this library |
| DXGfxLib.ExecutableBlock | This class is the base class of the classes that are going to be created on the fly by the Script object from the source code in skeleton, varSrc and codeSrc |
| Game.Factory | |
| DXGfxLib.FileNameConverter | |
| DXGfxLib.FileNameEditor | |
| DXGfxLib.FileNameUIEditor | |
| Game.Firm | |
| Microsoft.Samples.DirectX.UtilityToolkit.FirstPersonCamera | Simple first person camera class that moves and rotates. It allows yaw and pitch but not roll. It uses keyboard and cursor to respond to keyboard and mouse input and updates the view matrix based on input |
| Game.Fleeing | |
| DXGfxLib.FloatArray | |
| Microsoft.Samples.DirectX.UtilityToolkit.FontNode | Structure for shared fonts |
| Microsoft.Samples.DirectX.UtilityToolkit.Framework | Managed Utility Framework Class |
| Microsoft.Samples.DirectX.UtilityToolkit.FrameworkData | Holds data for the Framework class, and all of the properties |
| Microsoft.Samples.DirectX.UtilityToolkit.FrameworkMesh | Class for loading and rendering file-based meshes |
| DXGfxLib.FrameworkMeshObject | |
| Microsoft.Samples.DirectX.UtilityToolkit.FrameworkTimer | |
| DXGfxLib.FreeCamera | Thie class is a third person camera. The camera will stay behind the specified scene node. YOu can rotate around it to a certain extend with the mouse while pressing the third button |
| DXGfxLib.Frustrum | |
| Microsoft.Samples.DirectX.UtilityToolkit.GraphicsWindow | The main window that will be used for the sample framework |
| DXGfxLib.HaveID | |
| Game.IAChannel | |
| DXGfxLib.IAmScriptable | |
| Game.ICanMove | |
| Microsoft.Samples.DirectX.UtilityToolkit.IDeviceCreation | Interface that the framework will use to determine if a device is acceptable |
| DXGfxLib.IDrawable | This interface should be implemented by all classes that want the ability to be drawn. It derives from IComparable as we want the ability to sort these objects before rendering in order to minimize state changes for the video card and unecessary loading and unloading of effects |
| Microsoft.Samples.DirectX.UtilityToolkit.IFrameworkCallback | Interface that the framework will use to call into samples |
| DXGfxLib.IHaveID | |
| DXGfxLib.IInputHandler | |
| DXGfxLib.Impostor | This isn't really a nice impostor. I should add alpha testing for this class to become really of interest. This is yet to be done |
| DXGfxLib.InstanceInfo | This structure is meant to be used to store information about position and rotation of one instance of the geometry we want to render. It is anticipated that this structure will be used for geometries on the groung thus the only rotation information in that structure is the rotation around the Y axis. In fact this structure is not used at the moment |
| DXGfxLib.IPositionConstraint | This interface can be implemented by each class that is going to impose a constraint on a node position. At the moment this interface is implemented by the scene itself. Each scene node has a unique field to keep a reference to an instance of an object implementing this. If it is desired to add other objects that implement that interface and to actually use them you will most probably need to derive your own class from Scene or OutDoorScene and managed the calls yourself |
| Game.IWorldEntity | |
| Microsoft.Samples.DirectX.UtilityToolkit.ListBox | List box control |
| Microsoft.Samples.DirectX.UtilityToolkit.ListBoxItem | Stores data for a list box item |
| DXGfxLib.LoadedEntity | |
| SampleSceneLoader.Loader | |
| Game.LookingForFood | |
| Editor.MainForm | |
| Microsoft.Samples.DirectX.UtilityToolkit.ManagedUtility | Helper methods |
| DXGfxLib.Serialization.Manager | |
| Editor.Marker | |
| Scene.Market | |
| Microsoft.Samples.DirectX.UtilityToolkit.MatchOptions | Options on how to match items |
| DXGfxLib.MaterialFromObj | This structure is used to store material information |
| DXGfxLib.MathUtil | This class is not meant to be instanciated. It is just a convenient way to regroup helper functions. They are defined as static method of the class |
| Microsoft.Samples.DirectX.UtilityToolkit.MediaNotFoundException | Media couldn't be found |
| Editor.Mediator | |
| DXGfxLib.MeshObject | |
| DXGfxLib.MeshObjectWithLOD | |
| DXGfxLib.MeshRessource | FrameworkMesh is very a very convenient class when you only want to load a Mesh. This class does a bit the same thing except that it does only what I want and I might extend it in the future. Still basically it does pretty much the same thing as FrameworkMesh at this stage. It loads mesh geometry and textures. Also most of the time you will ask the ressource manager to get a MeshRessource for you and it will only load it once. Refcounting for a ressource might be desirable and I might end doing something just like that. At this stage it is not done though. It is easy to do but I still have to decide if I really need a ressource manager in this library or not |
| Game.Mission | |
| Microsoft.Samples.DirectX.UtilityToolkit.ModelViewerCamera | Simple model viewing camera class that rotates around the object |
| Game.Moving | |
| Game.MovingAround | |
| Microsoft.Samples.DirectX.UtilityToolkit.NativeMethods | Will hold native methods which are interop'd |
| Microsoft.Samples.DirectX.UtilityToolkit.NativeMethods.NativeMethods.Message | Windows Message |
| Microsoft.Samples.DirectX.UtilityToolkit.NativeMethods.NativeMethods.MinMaxInformation | MinMax Info structure |
| Microsoft.Samples.DirectX.UtilityToolkit.NativeMethods.NativeMethods.MonitorInformation | Monitor Info structure |
| Editor.NewAreaDialog | |
| Editor.NewEventDialog | |
| Editor.NewSceneDialog | |
| Microsoft.Samples.DirectX.UtilityToolkit.NoCompatibleDevicesException | No compatible devices were found for this application |
| Microsoft.Samples.DirectX.UtilityToolkit.NoDirect3DException | The No Direct3D exception. Something really had to go wrong for this to occur |
| DXGfxLib.ObjectFromMeshRessource | This is a MeshObject which uses a MeshRessource |
| DXGfxLib.ObjectFromObj | This class is used to load .obj file (wavefront format). It is not finished yet. It expect to read vertices with normal and texture information. If the file you pass to that class lack these information the object that will be displayed in the end will be ugly to say the least |
| DXGfxLib.OutDoorScene | This is the main reason why this small library exist. I wanted to be able to display an outdoor scene with terrain without throwing everything I would have in that scene to the video card for each render pass. OutDoorScene inherits from the Scene class it does refine the algorithms for scene graph organisation upadte and draw using the asumption that the is a classical outdoor scene featuring a large terrain. Internally this class uses a quadtree. Some optimization impose that the depth of the quadtree has to be lower than 8. As it might be performance unfriendly to have a too deep tree I use a 4 level deep quadtree. This could be easily changed if needed |
| DXGfxLib.Serialization.OutDoorSceneSurrogate | |
| DXGfxLib.PointAndClickHandler | This class knows how to handle user inputs in a point and click scenario |
| GenerateIndices.Program | |
| DXGfxLib.QuadTreeNode | A quadtree node is a special sceneNode that goes into a quadtree. Does it behaves differently from any other scenenode, not really except we want to know that we are dealing with a quadtree node and not just a simple scenenode this is why this class exists even if we don't perform any operation differently for it than for the base scenenode |
| DXGfxLib.Query | This class only contains static member function that are helper function that can be use from scripts. There are functions to perform geometric queries, to react to events from script, to act on parent nodes |
| Microsoft.Samples.DirectX.UtilityToolkit.RadioButton | Radio button control |
| DXGfxLib.RawObject | |
| Editor.ReferencesDialog | |
| DXGfxLib.ReflectionHelper | |
| Microsoft.Samples.DirectX.UtilityToolkit.ResettingDeviceException | Resetting the device failed |
| Microsoft.Samples.DirectX.UtilityToolkit.ResettingDeviceObjectsException | Resetting the device failed |
| Microsoft.Samples.DirectX.UtilityToolkit.ResourceCache | Will be a resource cache for any resources that may be required by a sample This class will be 'static' |
| Sample.Properties.Resources | A strongly-typed resource class, for looking up localized strings, etc |
| Editor.Properties.Resources | A strongly-typed resource class, for looking up localized strings, etc |
| SampleSceneLoader.Properties.Resources | A strongly-typed resource class, for looking up localized strings, etc |
| Game.RessourceDepot | |
| DXGfxLib.RessourceManager | At the moment this class is only use to control that we load a MeshRessource only once. This is not completely fnished yet, for example there is no usage ref count. This will be implemented once I have decided if the library will start managing ressources or if these should always be managed by the calling code and that the library should remain only a scene graph libary. This is still undecided |
| Sample.Sample | |
| DXGfxLib.SampleScene | |
| DXGfxLib.Scene | |
| DXGfxLib.SceneNode | A SceneNode is the basic building block of the scene graph. It keep track of its parent node and child nodes can be attached to it. It keep track of its bounding information and can update these when needed based on the children bounding information and positions. Also a scene node can be moved in several ways with or without moving the children in the same manner |
| DXGfxLib.SceneObject | |
| DXGfxLib.Serialization.SceneObjectSurrogate | |
| DXGfxLib.Serialization.SceneSurrogate | |
| DXGfxLib.Script | The script class. This class contains the logic to build |
| DXGfxLib.ScriptHelpers | This will contain only static methods meant to be used from script |
| DXGfxLib.ScriptManager | With the addition of scripts to scene node, we needed a central class to perform compilation and other services for the Script class so that it becomes usable. This is the role of the script manager. This class keeps track of whether the script are up to date and everything. It manage the compilation of the scripts.. |
| Microsoft.Samples.DirectX.UtilityToolkit.ScrollBar | A scroll bar control |
| SampleSceneLoader.Properties.Settings | |
| Editor.Properties.Settings | |
| Sample.Properties.Settings | |
| Microsoft.Samples.DirectX.UtilityToolkit.SettingsDialog | Dialog for selection of device settings |
| DXGfxLib.SkyBox | This class features a very raw and basic skybox. It loads everything from an x file |
| DXGfxLib.SkyDome | |
| DXGfxLib.Serialization.SkyDomeSurrogate | |
| Game.Sleeping | |
| Microsoft.Samples.DirectX.UtilityToolkit.Slider | Slider control |
| Microsoft.Samples.DirectX.UtilityToolkit.StaticText | StaticText text control |
| Game.Step | |
| DXGfxLib.StringUtil | This helper class is not really meant to be instanciated but it's static methods are going to be very usefull for the kind of string manipulation we need in EterEngine. For example extract the extension of a fileName, struncate the base directory out of a full pathname and build relative path. Not a very exciting job but this has to be done |
| Microsoft.Samples.DirectX.UtilityToolkit.SwitchRefDialog | |
| Game.Talking | |
| Editor.TDView | |
| DXGfxLib.Terrain | Terrain2 class manage a full 3D Terrain2. The Terrain2 will be built from a 2D grey level bitmap, which size need to be 259*259 nad which format need to be bmp. At loading time you need to provide a D3ddevice and a ref to an outdoor scene. The Terrain2 will be build of a multitude of tiles that will be registered to the outdoor scene graph. The current implementation of OutDoorScene feature a Quadtree for efficient culling of a Terrain2 outdoor scene. The quadtree struture is also used to optimize intersection methods. The Terrain2 is multi textured. The method used is to render at max two texture per pass which should accomodate even very old 3D cards |
| DXGfxLib.Serialization.TerrainSurrogate | |
| DXGfxLib.TerrainTile | TerrainTile class is used by the terrain class. A terrain is built of a multitude of terraintile. TerrainTile derives from SceneObject, it has bounding information, and frustrum culling will be performed to know if the tile need to be rendered or not! You should not have to mess directly with Terrain tiles, this is why this class is marked as internal. Also if one day this assembly would need to be obfuscated, this would help obfuscation tools perform a better obfuscation |
| DXGfxLib.TerrainVertex | |
| DXGfxLib.test | |
| DXGfxLib.Test2 | |
| DXGfxLib.test3 | |
| Microsoft.Samples.DirectX.UtilityToolkit.TextHelper | Manages the intertion point when drawing text |
| DXGfxLib.TexturedPlane | This class is used by the water class for exemple. It just makes a plane :) |
| Microsoft.Samples.DirectX.UtilityToolkit.TextureNode | Structure for shared textures |
| DXGfxLib.ThirdPersonCamera | Thie class is a third person camera. The camera will stay behind the specified scene node. YOu can rotate around it to a certain extend with the mouse while pressing the third button |
| Game.Tiger | |
| DXGfxLib.tiger | |
| Game.TigerChannel | |
| DXGfxLib.TimeLine | Our scene node also have a TimeLine associated with them. Here we manage events. Events are added on the timeline and the timeline has the responsability to fire them when needed |
| Editor.TimeLineView | |
| Microsoft.Samples.DirectX.UtilityToolkit.TimerData | Stores timer callback information |
| DXGfxLib.Triangles | |
| DXGfxLib.Trigger | Triggers are a specific kind of world Area that have actions associated with them. The actions are triggered when an object enter the Area of the trigger. Trigger could react only to some specific types entering the Area or named object, they could post events or perform any kind of other actions |
| Microsoft.Samples.DirectX.UtilityToolkit.Utility | Misc utility functionality |
| Game.Vegetals | |
| DXGfxLib.VerticesMapping | |
| DXGfxLib.Water | This class is used to get some water displayed on screen |
| DXGfxLib.Water2 | |
| DXGfxLib.Serialization.Water2Surrogate | |
| Game.World | We use this class to keep track of some global objects or list of objects ! Like entities sometime need to query the world for information to take IA decision |
| Game.WorldEntity | |
| Game.WorldLocation | |
| DXGfxLib.ZMask | This class is used to calculate a but mask around bouding boxes. Could be use to further refine frustrum culling. Not used at the moment |