<?xml version="1.0"?>
<doc>
    <assembly>
        <name>Icarus.Logic</name>
    </assembly>
    <members>
        <member name="T:Icarus.Logic.Controllers.ControllerFactory">
            <summary>
            This guy provides us with controllers.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Controllers.ControllerFactory.mgInstance">
            <summary>
            Singleton Implementation.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Controllers.ControllerFactory.mDefaultController">
            <summary>
            The default controller.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Controllers.ControllerFactory.mControllerTypes">
            <summary>
            The dictionary of registered controllers. This is so that we don't have to look up the type through reflection every time.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Controllers.ControllerFactory.#ctor">
            <summary>
            Initializes the controller factory.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Controllers.ControllerFactory.RegisterControllerType(System.String)">
            <summary>
            Registers the controller type with the dictionary.
            </summary>
            <param name="fullName"></param>
        </member>
        <member name="M:Icarus.Logic.Controllers.ControllerFactory.GetTypeForName(System.String)">
            <summary>
            Returns the type corresponding to the name passed in, or null if the type is undefined.
            </summary>
            <param name="fullName"></param>
            <returns></returns>
        </member>
        <member name="M:Icarus.Logic.Controllers.ControllerFactory.GetControllerForType(System.Type)">
            <summary>
            Returns a controller for the specified type.
            </summary>
            <param name="t"></param>
            <returns></returns>
        </member>
        <member name="M:Icarus.Logic.Controllers.ControllerFactory.GetControllerForType(System.String)">
            <summary>
            Returns a controller for the type whose fully qualified name is supplied. Of course, note that if the specified type is not actually a controller, then bad things will happen (exceptions).
            </summary>
            <param name="type"></param>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.Controllers.ControllerFactory.Instance">
            <summary>
            Singleton Implementation.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Controllers.ControllerFactory.DefaultController">
            <summary>
            Returns the default controller for objects.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Controllers.DefaultController">
            <summary>
            This is the default controller that doesn't really do anything.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Controllers.IController">
            <summary>
            The implementors of this interface are controllers that can control a world object.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Controllers.IController.UpdateObject(Icarus.Logic.PhysicsObject)">
            <summary>
            Updates the world object passed in.
            </summary>
            <param name="obj"></param>
        </member>
        <member name="T:Icarus.Logic.GameEngine.GameEngine">
            <summary>
            I am the heart of the Icarus Game Engine
            I basically cause everything to start moving, sort of like a Spark Plug.
            I am a Singleton and I get started when the user turns the key by 
            executing the executable created by the Runner project.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameEngine.mGameStates">
            <summary>
            This is the stack of game states we have running.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameEngine.iDoRun">
            <summary>
            This tells us if we are running, paused or stopped.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.#ctor">
            <summary>
            Private Constructor for the Game Engine
            It is a Singleton so noone should ever touch the Constructor
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.PushState(Icarus.Logic.GameEngine.IGameState)">
            <summary>
            Pushes a game state onto the game state stack. The state on top of the stack is always the active one.
            </summary>
            <param name="state">The new active state.</param>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.PopState">
            <summary>
            Pops the current state off the state stack. The previous active state will become active once again.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.RenderCurrentState(Icarus.Graphics.Animation.IRenderParameters)">
            <summary>
            Renders the current state.
            </summary>
            <param name="parameters">Render parameters</param>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.Play">
            <summary>
            Start the game engine.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.Pause">
            <summary>
            Pause the game engine.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.Stop">
            <summary>
            Stop the game engine. Note that this will pop all the states, so we stop cleanly.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameEngine.RunThread">
            <summary>
            The function that needs to be run in its own thread. This controls the game engine.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameEngine.Instance">
            <summary>
            The Singleton GameEngine instance
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameEngine.CurrentState">
            <summary>
            The current state of the game engine.
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.GameFaction">
            <summary>
            I am a combination of Relations that define who
             my enemies and friends are.
             
            A Relation is composed of a friend and an enemy
             and is loaded as a script.
            
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameFaction.#ctor">
            <summary>
            Initialize the GameFaction object to default values
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameFaction.Name">
            <summary>
            The faction Name
            
            Just a string
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.GameProperties">
            <summary>
            I contain the Vital information necessary for a great game.
            
            I, personally, love value types.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameProperties.PrintGameProperties">
            <summary>
            Print the properties of the object
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameProperties.ToString">
            <summary>
            Convert the GameProperties into a string Representation
            </summary>
            <returns>GameProperties string representation</returns>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameProperties.Health">
            <summary>
            This should hold the health of the current Game Object.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameProperties.CollisionDamage">
            <summary>
            This should contain the damage inflicted by the object
            upon unfriendly objects during a collision
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.GameSettings">
            <summary>
            I am a singleton which can be used to retrieve Game Engine settings.
            Members are straightforward to access.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.iDifficulty">
            <summary>
            Defines the game difficulty, changes the AI, and is used by Game Calculations.    
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.iTimeScale">
            <summary>
            The timescale is used to define the number of times per
            second that the GameEngine executes to update the world.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.bCheatsEnabled">
            <summary>
            Defines whether cheats are on or off.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxParticles">
            <summary>
            Defines how many particles are pre-allocated when a level loads.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiParticleLoadRate">
            <summary>
            Defines the number of particles to dynamically load at a time 
            when the max number of particles is infinite.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxItems">
            <summary>
            Defines how many items are pre-allocated when a level loads.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiItemLoadRate">
            <summary>
            Defines the number of items to dynamically load at a time 
            when the max number of items is infinite.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxActors">
            <summary>
            Defines how many actors are pre-allocated when a level loads.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiActorLoadRate">
            <summary>
            Defines the number of actors to dynamically load at a time 
            when the max number of actors is infinite.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxTerrainObjects">
            <summary>
            Defines how many terrain world objects are pre-allocated when a level loads.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiTerrainObjectLoadRate">
            <summary>
            Defines the number of terrain ojects to dynamically load at a time 
            when the max number of terrain objects is infinite.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.iPhysicsDetail">
            <summary>
            Defines how detailed the Physics calculations are.  
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxCollisionBoxes">
            <summary>
            Defines the maximum number of collision boxes in a level
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxInternalRects">
            <summary>
            The maximum internal collision rectangles a collision box can hold
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxInternalTris">
            <summary>
            The maximum internal collision triangles a collision box can hold
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiUpdateRate">
            <summary>
            This defines the time between updates in milliseconds, default is 22 (45fps)
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.GameSettings.uiMaxStages">
            <summary>
            The maximum number of stages per level
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameSettings.#ctor">
            <summary>
            Uses Icarus preset Game settings as defined in the variable comments.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.GameSettings.#ctor(System.String)">
            <summary>
            Load GameSettings from a File.
            Sets the settings to the Icarus Defaults then loads the settings from 
            fileName and replaces the settings specified.
            </summary>
            <param name="fileName">The fileName of settings to replace defaults.</param>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.Instance">
            <summary>
            Returns the instance of the GameSettings object
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxCollisionBoxes">
            <summary>
            Defines the maximum number of collision boxes in a level
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxInternalRects">
            <summary>
            Defines the maximum number of internal collision rectangles
            a collision box can hold
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxInternalTris">
            <summary>
            Defines the maximum number of internal collision triangles
            a collision box can hold
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_difficulty">
            <summary>      
            A Negative difficulty should cause all enemies to freeze in place 
            (allowing debugging to take place).
            A Positive difficulty becomes more difficult with increasing values.
            Lowest difficulty is 0.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_timescale">
            <summary>
            This sets the game's TimeScale.
            The timescale values can range from FLOAT_MIN to FLOAT_MAX.  
            Whether the full range is supported, doesn't matter.  
            Negatives don't matter, only the magnitude is used.   
            A higher number than 1.0f will result in more updates occuring per second.
            Numbers between 0 and 1.0, exclusive, result in fewer
            updates and, thus, the game moves "slower".
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_cheats">
            <summary>
            Activating cheats can turn on things like God Mode, which negate damage 
            effects to the player, as well as various other nifty debugging tools.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxParticles">
            <summary>    
            A value of 0 means that infinite particles are allowed.
            In the case of infinite particles, particles will be loaded dynamically 
            sv_particleLoadRate at a time.
            Dynamic loading is much slower, but requires much less memory.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_particleLoadRate">
            <summary>
            This defines the number of particles to dynamically load at a time 
            when the max number of particles is infinite.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxItems">
            <summary>    
            A value of 0 means that infinite items are allowed.
            In the case of infinite items, items will be loaded dynamically 
            sv_itemLoadRate at a time.
            Dynamic loading is much slower, but requires much less memory.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_itemLoadRate">
            <summary>
            This defines the number of items to dynamically load at a time 
            when the max number of items is infinite.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxActors">
            <summary>    
            A value of 0 means that infinite actors are allowed.
            In the case of infinite actors, actors will be loaded dynamically 
            sv_actorLoadRate at a time.
            Dynamic loading is much slower, but requires much less memory.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_actorLoadRate">
            <summary>
            This defines the number of actors to dynamically load at a time 
            when the max number of actors is infinite.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxTerrainObjects">
            <summary>    
            A value of 0 means that infinite terrain objects are allowed.
            In the case of infinite terrain objects, terrain objects will be 
            loaded dynamically sv_terrainObjectLoadRate at a time.
            Dynamic loading is much slower, but requires much less memory.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_TerrainObjectLoadRate">
            <summary>
            This defines the number of terrain objects to dynamically load at a time 
            when the max number of terrain objects is infinite.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_physicsDetail">
            <summary>    
            This may cause faster algorithms to be used in place of slower, 
            more precise algorithms.  
            This varies on Physics Engine implementation/mode.
            Default value is 0 (Full Detail), negative values lower
            detail and positive values (may) increase detail.
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_updateRate">
            <summary>
            This stores the time between updates in milliseconds.
            
            Note that the variable sv_timescale speeds up or slows down the
            game itself, this variable will affect the magnitude of vectors in
            the Physics Engine and alter the Physics themselves
            </summary>
        </member>
        <member name="P:Icarus.Logic.GameEngine.GameSettings.sv_maxStages">
            <summary>
            The maximum number of stages per level
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.GameStateAdapter">
            <summary>
            This is an adapter of the IGameState stuff, so that we don't have to implement all the functions.
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.IGameState">
            <summary>
            The interface that all game states must implement.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.IGameState.Enter">
            <summary>
            Called when we enter the state.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.IGameState.Step(System.Int32)">
            <summary>
            Called at every iteration of the game engine loop.
            </summary>
            <param name="millis">The numbher of milliseconds since the function was last called.</param>
        </member>
        <member name="M:Icarus.Logic.GameEngine.IGameState.RenderState(Icarus.Graphics.Animation.IRenderParameters)">
            <summary>
            Gets called when the state needs to be rendered.
            </summary>
            <param name="parameters"></param>
        </member>
        <member name="M:Icarus.Logic.GameEngine.IGameState.Pause">
            <summary>
            This function will be called when the state needs to be paused to be revived later on.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.IGameState.Unpause">
            <summary>
            This function will be called when the state is revived after a previous pause.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.IGameState.Exit">
            <summary>
            Called when we exit the state.
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.LevelBuilder">
            <summary>
            Form for creating and editng levels.  
            Provides for saving and loading levels.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.LevelBuilder.Main">
            <summary>
            Executes the Level Builder
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.LevelBuilder.#ctor">
            <summary>
            Initialize the LevelBuilder object
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.LevelBuilder.Dispose(System.Boolean)">
            <summary>
            Clean up any resources being used.
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.LevelBuilder.InitializeComponent">
            <summary>
            Required method for Designer support - do not modify
            the contents of this method with the code editor.
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.LevelLoader">
            <summary>
            This class provides the functionality of being able to
            save and load levels.  The levels are saved as xml files
            on the harddrive.
            </summary>
        </member>
        <member name="F:Icarus.Logic.GameEngine.LevelLoader.instance">
            <summary>
            The instance of this loader
            </summary>
        </member>
        <member name="M:Icarus.Logic.GameEngine.LevelLoader.LoadLevelXML(System.String)">
            <summary>
            Loads a level from an XML file.
            </summary>
            <param name="fileName">The filename of the level XML file.</param>
            <returns>The loaded level or null if no level could be loaded.</returns>
        </member>
        <member name="M:Icarus.Logic.GameEngine.LevelLoader.SaveLevelXML(System.String,Icarus.Logic.Level)">
            <summary>
            Saves a level to an XML file.
            </summary>
            <param name="fileName">The filename used to save the level XML file.</param>
            <returns>True for success, False for failure.</returns>
        </member>
        <member name="M:Icarus.Logic.GameEngine.LevelLoader.GetLevelIDList">
            <summary>
            Returns the list of ids of available levels.
            </summary>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.GameEngine.LevelLoader.Instance">
            <summary>
            The Singleton LevelLoader instance
            </summary>
        </member>
        <member name="T:Icarus.Logic.GameEngine.RootState">
            <summary>
            This is the root state for the game engine. Basically, it makes sure that everything dies when we quit.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBox">
            <summary>
            Summary description for CollisionBox.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBox.iDamage">
            <summary>
            The amount of damage this collisionbox does.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBox.rectBoundingBox">
            <summary>
            Rectangular bounding box of this collision box
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBox.rectArray">
            <summary>
            Array of rectangles for more precise collisions within
            this collision box
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBox.triArray">
            <summary>
            Array of triangles for more precise collisions within
            this collision box
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBox.iBoundingBoxWidth">
            <summary>
            Original width of bounding box that does not change
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBox.iBoundingBoxHeight">
            <summary>
            Orgiginal height of bounding box that does not change
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBox.strDescription">
            <summary>
            Text Description of this object for level editing
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBox.handleRectCollision(Icarus.Logic.Physics.PhysicsRectangle,Icarus.Logic.PhysicsObject)">
            <summary>
            -Performs actions on a PO/WO specific to this collision box.
            -Basic functionality only stops the PO/WO where the collision
             took place.
            -This function should be overridden for specific collision boxes
             such as teleporters, jump pads, ice...
            </summary>
            <param name="rect">The collision rect that was hit</param>
            <param name="po">The PO/WO that hit the rect</param>
            <returns>An action represented in PhysicsSettings.enumActions</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBox.setSpecial">
            <summary>
            This can be called to set properties specifically when making
            a prefab collision box. i.e: CollisionBoxFloor, CollisionBoxWall, etc
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBox.Damage">
            <summary>
            Gets or sets the damage this collision box does to merc
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBox.BoundingBox">
            <summary>
            Rectangular bounding box of this collision box
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBox.RectArray">
            <summary>
            Array of rectangles for more precise collisions within
            this collision box
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBox.TriArray">
            <summary>
            Array of triangles for more precise collisions within
            this collision box
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBox.BoundingBoxHeight">
            <summary>
            Original width of bounding box that does not change with vel
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBox.BoundingBoxWidth">
            <summary>
            Original height of bounding box that does not change with vel
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBox.Description">
            <summary>
            A text Description of this object for level editing
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxCD">
            <summary>
            Summary description for CollisionBoxCD.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxCD.pslHitSpark">
            <summary>
            The spark that happens after a CD hits something
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxCD.handleRectCollision(Icarus.Logic.Physics.PhysicsRectangle,Icarus.Logic.PhysicsObject)">
            <summary>
            Handles collisions for CDs
            </summary>
            <param name="rect">the cd bounding box</param>
            <param name="po">the po that the cd hit</param>
            <returns></returns>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxEnemyDefault">
            <summary>
            Summary description for CollisionBoxEnemyDefault.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxEnemyDefault.iThrowDirection">
            <summary>
            The direction to throw merc on collision
            Defined in PhysicsSetting.enumDirection
            Left
            Right
            Center - throws left or right, which ever is closer
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxEnemyDefault.#ctor">
            <summary>
            Contructor
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxEnemyDefault.handleRectCollision(Icarus.Logic.Physics.PhysicsRectangle,Icarus.Logic.PhysicsObject)">
            <summary>
            Handles collisions with all types of objects and enemy default.
            </summary>
            <param name="rect">colliding rectangle</param>
            <param name="po">po to be affected</param>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxEnemyDefault.ThrowDirection">
            <summary>
            Gets or sets the direction this collision box throws merc
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxFloor">
            <summary>
            Summary description for CollisionBoxFloor.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxFloor.setSpecial">
            <summary>
            Sets the internal FloorRectangle's location
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxMobile">
            <summary>
            This moving box needs access to the world object that is holding it
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxMobile.wo">
            <summary>
            This particular box needs to know things about the world obj holding it
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxMobile.#ctor">
            <summary>
            Constructionering
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxMobile.WO">
            <summary>
            Allowing the world obj to set a ref to itself
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxRobotTuxHand">
            <summary>
            This is specially made for the tux robot hand.  It should only
            be put in a MovingPlatform worldobject.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxRobotTuxHand.poParent">
            <summary>
            This particular box needs to know things about the world obj holding it
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxRobotTuxHand.#ctor">
            <summary>
            Construction
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxRobotTuxHand.PO">
            <summary>
            Allowing the world obj to set a ref to itself
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxSlopeBL">
            <summary>
            Summary description for CollisionBoxSlopeBL.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxSlopeBL.setSpecial">
            <summary>
            Sets the internal TriangleBL location
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxSlopeBR">
            <summary>
            Summary description for CollisionBoxSlopeBR.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxSlopeBR.setSpecial">
            <summary>
            Sets the internal TriangleBR location
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxSlopeTL">
            <summary>
            Summary description for CollisionBoxSlopeTL.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxSlopeTL.setSpecial">
            <summary>
            Sets the internal TriangleTL location
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxSlopeTR">
            <summary>
            Summary description for CollisionBoxSlopeTR.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxSlopeTR.setSpecial">
            <summary>
            Sets the internal TriangleTR location
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxTransition">
            <summary>
            Summary description for CollisionBoxTransition.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxTransition.iHealth">
            <summary>
            The health that this transition will set to the player
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxTransition.iNextStage">
            <summary>
            The index of the next stage to be displayed
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxTransition.iX">
            <summary>
            The x coordinate to place merc in the next stage
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxTransition.iY">
            <summary>
            The y coordinate to place merc in the next stage
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxTransition.iXviewCenter">
            <summary>
            The x coord of the new place to center the stage
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxTransition.iYviewCenter">
            <summary>
            The y coord of the new place to center the stage
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxTransition.#ctor">
            <summary>
            Construction
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxTransition.Health">
            <summary>
            gets or sets the amount of health this transition gives the player
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxTransition.NextStage">
            <summary>
            The index of the next level
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxTransition.X">
            <summary>
            X location of merc after transition
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxTransition.Y">
            <summary>
            Y location of merc after transition
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxTransition.XViewCenter">
            <summary>
            X location to set screen center to after transition
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxTransition.YViewCenter">
            <summary>
            Y location to set screen center to after transition
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxWall">
            <summary>
            Summary description for CollisionBoxWall.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxWall.setSpecial">
            <summary>
            Sets the internal WallRectangle's location
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxWhip">
            <summary>
            Summary description for CollisionBoxWhip.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxWhip.bShowSpark">
            <summary>
            whether or not to show spark on whip
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxWhip.wo">
            <summary>
            This particular box needs to know things about the world obj holding it
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxWhip.handleRectCollision(Icarus.Logic.Physics.PhysicsRectangle,Icarus.Logic.PhysicsObject)">
            <summary>
            Handles collisions with a whip
            </summary>
            <param name="rect">Rect that is being collided with</param>
            <param name="po">PO to be affected</param>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxWhip.WO">
            <summary>
            Allowing the world obj to set a ref to itself
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxWhip.ShowSpark">
            <summary>
            Gets or sets whether a spark should be shown or not
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.CollisionBoxZoom">
            <summary>
            Summary description for CollisionBoxZoom.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.CollisionBoxZoom.bZoom">
            <summary>
            Whether or not to zoom
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.CollisionBoxZoom.handleRectCollision(Icarus.Logic.Physics.PhysicsRectangle,Icarus.Logic.PhysicsObject)">
            <summary>
            Turns on zooming when merc collides with this box
            </summary>
            <param name="rect"></param>
            <param name="po"></param>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.Physics.CollisionBoxZoom.Zoom">
            <summary>
            gets or sets whether or not to zoom
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.MovingPlatform">
            <summary>
            Summary description for MovingPlatform.
            </summary>
        </member>
        <member name="T:Icarus.Logic.WorldObject">
            <summary>
            The World is composed of me.
            
            All gameplay entities are derived from me and contain
             this set of standard features. 
            </summary>
        </member>
        <member name="T:Icarus.Logic.PhysicsObject">
            <summary>
            I contain the necessary properties needed by any
            Physical universe as proposed by Sir Isaac Newton
            so long ago.
            
            I also contain useful information such as my Inertia,
            which is a measure of my stubbornness to change motion,
            as well as my CollisionMask, which defines my girth.
            </summary>
        </member>
        <member name="T:Icarus.Logic.IViewable">
            <summary>
            The implementors of this interface can be viewed on screen.
            </summary>
        </member>
        <member name="P:Icarus.Logic.IViewable.Location">
            <summary>
            Gets the location of the viewable in world coordinates.
            </summary>
        </member>
        <member name="P:Icarus.Logic.IViewable.Animation">
            <summary>
            Gets the id of the animation to use for the viewable.
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.fBounceCoeffecient">
            <summary>
            The coeffecient multiplied to velocities on a collision.
            This can be used to create object with different levels
            of "bouncing recoil"
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.iCollisionsToLive">
            <summary>
            The number of collisions this object will make
            before it is removed from the world. 0 = infinite.
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.iTimeToLive">
            <summary>
            The amount of time(ms) this object will live before
            it is removed from the world. 0 = infinite.
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.dtBirthDate">
            <summary>
            This is the time of creation of an object.  It is used
            in conjunction with iTimeToLive to remove the object
            after it has been alive too long.
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.iActionState">
            <summary>
            State that represents the current action of the object
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.iLastActionState">
            <summary>
            Holds the last action state of this player.
            Used for determining when states have changed.
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.collisionBox">
            <summary>
            The collision box for this PO. This box is so this object has 
            a reference to the smaller internal bounding rectangles located
            in this bounding box.
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.iCBXoffset">
            <summary>
            X distance from the location to the collision box anchor
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.iCBYoffset">
            <summary>
            Y distance from the location to the collision box anchor
            </summary>
        </member>
        <member name="F:Icarus.Logic.PhysicsObject.mController">
            <summary>
            Me controller.
            </summary>
        </member>
        <member name="M:Icarus.Logic.PhysicsObject.#ctor">
            <summary>
            Generate a generic Physics Object
            
            All members are set to empty/default values
            
            Vectors are set to 0
            </summary>
        </member>
        <member name="M:Icarus.Logic.PhysicsObject.SetAnimation(System.String,Icarus.Graphics.Animation.AnimationType,System.Int32)">
            <summary>
            Sets the animation with the specified parameters.
            </summary>
            <param name="id"></param>
            <param name="t"></param>
            <param name="delay"></param>
        </member>
        <member name="M:Icarus.Logic.PhysicsObject.PrintPhysicsObject">
            <summary>
            Output the Physics Object information to Console
            </summary>
        </member>
        <member name="M:Icarus.Logic.PhysicsObject.ToString">
            <summary>
            Convert the contents of the PhysicsObject to string
            for debugging purposes
            </summary>
            <returns>A string containing the information</returns>
        </member>
        <member name="M:Icarus.Logic.PhysicsObject.currentDirection">
            <summary>
            Returns the current direction up,down,left,right,upleft,upright,downleft,downright
            </summary>
            <returns>An enumDirection from PhysicsSettings.</returns>
        </member>
        <member name="M:Icarus.Logic.PhysicsObject.checkAge">
             <summary>
             This method determines if a physics object has lived longer
             than its timetolive value or if it still has more time to live.
             </summary>
             <returns>
             true = still has not reached time limit
             false = has reached time limit. 
            </returns>
        </member>
        <member name="M:Icarus.Logic.PhysicsObject.specificUpdates">
            <summary>
            This will be called every time the physics object is updated.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.Animation">
            <summary>
            The id of the animation to use for the viewable.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.CurrentFrame">
            <summary>
            Allows access to the current frame for position logic
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.CBXoffset">
            <summary>
            X distance from the location to the collision box anchor
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.CBYoffset">
            <summary>
            Y distance from the location to the collision box anchor
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.CollisionBox">
            <summary>
            The collision box for this PO
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.ActionState">
            <summary>
            The current action being performed
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.LastActionState">
            <summary>
            The last action state of this player
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.BirthDate">
            <summary>
            Provides usable access to the birthdate of a physics object.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.CollisionsToLive">
            <summary>
            Allows access and modification of the number of collisions
            an object will make before it is removed from the world.
            0 = infinite.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.TimeToLive">
            <summary>
            Allows acces and modification of the time that an object will
            remain in the world before it is removed. 0 = infinite.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.po_terminalVelocity">
            <summary>
            This sets the Terminal Velocity of an Object
            
            A value of 0 or smaller means there is no Terminal Velocity
            
            Default is null (use global gravity)
             
            Note that Team RETRO's classic game physics can easily be
             implemented by setting the terminal velocity to something
             less than initial velocity (i.e. move up and down at same rate)
             
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.po_gravity">
            <summary>
            This sets the current gravity to be used
            
            Can be negative (accelerate upwards), zero means no gravity
            
            This is a constant acceleration in the j direction
            
            Default is null (use global gravity)
            
            Note that Classic gameplay issues such as underwater and space
             Physics can be implemented by varying the gravity (hint, hint
             underwater Mario level (: )
            
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.Location">
            <summary>
            This defines the current Location of the Physics
             Object.  
             
            This is unscaled to world Coordinates.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.Velocity">
            <summary>
            This defines the velocity of the Physics Object.
            
            This is unscaled to World Coordinates
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.AngularVelocity">
            <summary>
            This defines the angular velocity of the Physics Object.
            
            Angular Velocity = rotational velocity.  
            
            This is unscaled to World Coordinates.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.Angle">
            <summary>
            This defines the current angle of the object.
            
            This should be used by the Renderer to properly
             rotate the object.
             
            This needs to be scaled and then sent to the 
             renderer for it to do an appropriate rotation.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.Acceleration">
            <summary>
            This is the acceleration of the Object
            
            This is in Physics Coordinates.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.AngularAcceleration">
            <summary>
            This is the angular acceleration of the object.
            
            This is in Physics Coordinates.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.Inertia">
            <summary>
            The Interia of the body.
            
            This isn't what causes an object to slow down
             as some who didn't pay attention to Newton's
             First Law of motion might think.
             
            This is the reluctance of the object to move.
            
            This is modeled by delayed movements or by
             dividing the acceleration by this.
             
            It would make sense to just use the acceleration
             uniquely, but then recoils would become
             complicated.
            
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.BounceCoeffecient">
            <summary>
            Gives usable access to the fBounceCoefficient
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.Controller">
            <summary>
            Returns the controller for this object.
            </summary>
        </member>
        <member name="P:Icarus.Logic.PhysicsObject.ControllerType">
            <summary>
            Gets the name of the controller type or sets the controller when controller type is set. This is mainly done for XML purposes.
            </summary>
        </member>
        <member name="M:Icarus.Logic.WorldObject.#ctor">
            <summary>
            Initializes all WorldObject structures to
            default values
            </summary>
        </member>
        <member name="M:Icarus.Logic.WorldObject.destroy">
            <summary>
            This function destroys me 
            (actually, I'm not even sure what this does to me yet)
            </summary>
        </member>
        <member name="M:Icarus.Logic.WorldObject.PrintWorldObject">
            <summary>
            This prints the World Object
            </summary>
        </member>
        <member name="M:Icarus.Logic.WorldObject.ToString">
            <summary>
            Converts the World Object data into a string
            </summary>
            <returns></returns>
        </member>
        <member name="M:Icarus.Logic.WorldObject.AddChildObject(Icarus.Logic.ChildObject)">
            <summary>
            Adds the child object to the list of children of this world object.
            </summary>
            <param name="obj">The child to be added</param>
        </member>
        <member name="M:Icarus.Logic.WorldObject.RemoveChildObject(Icarus.Logic.ChildObject)">
            <summary>
            Remoes the child object from the list of children of this world object.
            </summary>
            <param name="obj">The child to be removed</param>
        </member>
        <member name="M:Icarus.Logic.WorldObject.GetChildCount">
            <summary>
            Returns the number of children of this world object.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Icarus.Logic.WorldObject.GetChildAt(System.Int32)">
            <summary>
            Returns the index-th child object.
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.WorldObject.GameStats">
            <summary>
            The WorldObject's Game properties
            </summary>
        </member>
        <member name="P:Icarus.Logic.WorldObject.Faction">
            <summary>
            The WorldObject's Faction
            </summary>
        </member>
        <member name="P:Icarus.Logic.WorldObject.Children">
            <summary>
            Gets or sets the array of children. This is for serialization purposes only. Use the appropriate methods for other stuff.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.MovingPlatform.iDistance">
            <summary>
            The distance this platform moves before reversing direction
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.MovingPlatform.iSpeed">
            <summary>
            The speed at which the platform moves
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.MovingPlatform.iDirection">
            <summary>
            The direction this platform is moving currently
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.MovingPlatform.pntInitial">
            <summary>
            The initial position of this moving platform
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.MovingPlatform.cb">
            <summary>
            Collision box for this 
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.MovingPlatform.Distance">
            <summary>
            gets or sets the distance the platform moves before reversing direction
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.MovingPlatform.Speed">
            <summary>
            gets or sets the speed at which this platform moves
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.MovingPlatform.InitialPoint">
            <summary>
            gets for sets the initial point of this moving platform
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.MovingPlatform.Direction">
            <summary>
            gets or sets the current direction
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.MovingPlatformHorizontal">
            <summary>
            Summary description for MovingPlatformHorizontal.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.MovingPlatformHorizontal.specificUpdates">
            <summary>
            controls the movement of this moving platform
            </summary>
            <returns></returns>
        </member>
        <member name="T:Icarus.Logic.Physics.MovingPlatformVertical">
            <summary>
            Summary description for MovingPlatformVertical.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.MovingPlatformVertical.specificUpdates">
            <summary>
            controls the movement of this moving platform
            </summary>
            <returns></returns>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsEngine">
            <summary>
            I am the Physics Engine Singleton
              I handle all aspects of Physical calculation
              Primarily, I change the positions of objects in
              the world based upon their velocities and accelerations.
              
              I also prevent objects from leaving the bounds of the world
              as well as handle the process of deciding when
              they collide with another object.
              
              My buddy, the Logic module, takes care of deciding what to do
              with the collision itself, I just figure out there is one.
              
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsEngine.collisionMask">
            <summary>
            This is a reference to the current level's collision mask bitmap
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsEngine.updateWorld(Icarus.Logic.PhysicsObject[])">
            <summary>
            Updates the list of WorldObjects for the next iteration
            </summary>
            <param name="worldObjectList">
            A list of WorldObjects, note that no type checking is made on these
            objects and, as such, it is assumed that they are WorldObjects.
            </param>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsEngine.checkChildren(Icarus.Logic.WorldObject,Icarus.Logic.PhysicsObject)">
            <summary>
            Check for collisions with all the children of a worldobject
            </summary>
            <param name="wo">The world object with children</param>
            <param name="po">the physics object that is being tested for collisions</param>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsEngine.checkOtherChildren(Icarus.Logic.WorldObject,Icarus.Logic.PhysicsObject)">
            <summary>
            Check for collisions between two children
            </summary>
            <param name="wo">The world object with children</param>
            <param name="po">the physics object that has children to test</param>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsEngine.updateVectors(Icarus.Logic.PhysicsObject)">
            <summary>
            Updates the current vectors of the Physics Object
            
            Currently, AngularVelocity is not taken into account when
             updating Velocity
            
            </summary>
            <param name="po">Object whose vectors will be updated</param>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsEngine.updatePosition(Icarus.Logic.PhysicsObject)">
            <summary>
            Update the Position of the Physics Object using the Vectors already defined
            
            Currently, AngularVelocity is ignored as are bounds checks
            
            </summary>
            <param name="po">Object whose position needs to be updated</param>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsEngine.doRecoil(Icarus.Logic.PhysicsObject,Icarus.Logic.PhysicsObject)">
            <summary>
            This function will cause a recoil between two objects based on
            Intertia and both types of velocity.
            
            TODO: Implement the above, currently Intertia is not taken into
             account and a purely elastic, pure recoil calculation is made.
             That sorta sucks for anything but Zero G, equal Intertia settings.
            </summary>
            <param name="po1">po1</param>
            <param name="po2">po2</param>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsEngine.Instance">
            <summary>
            Physics Engine Instance
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsEngine.CollisionMask">
            <summary>
            Gives usable access to the collision mask bitmap
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsEngine.currentLevel">
            <summary>
            Current Level reference
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsGeek">
            <summary>
            Summary description for PhysicsGeek.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsPlayer">
            <summary>
            This class handles the collision methods needed for a 
            physics player.  A physics player is a physics object
            that is used as a character.  The player controlled by
            the user or the enemies fighting the user are two examples
            oh physics players.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsPlayer.bStopWalking">
            <summary>
            Used to determine if player should stop walking when he hits the ground
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsPlayer.bVulnerable">
            <summary>
            Causes the player to be hurt or not when attacked
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsPlayer.iInvulnerableIterationLimit">
            <summary>
            The number of engine iterations that the player is invulnerble
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsPlayer.iInvulnerableIterationCount">
            <summary>
            The number of invulneralbe iterations so far
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsPlayer.iDeathIterationLimit">
            <summary>
            The number of iterations this player should flicker
            when they are about to die
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsPlayer.iDeathInterationCount">
            <summary>
            The number of iterations this player has flickered
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsPlayer.#ctor">
            <summary>
            Instantiate a Player Object -- called a Physics Player by the
             Physics Engine
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsPlayer.walkLeft">
            <summary>
            Starts the player walking left and puts him in the correct
            action state
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsPlayer.walkRight">
            <summary>
            Starts the player walking right and puts him in the correct
            action states
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsPlayer.walkStop">
            <summary>
            Stops the player from walking if he is currently walking
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsPlayer.stopAll">
            <summary>
            Stops the player from doing whatever it might be doing and causes it to just stand there
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsPlayer.jump">
            <summary>
            Make this player jump
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsPlayer.Vulnerable">
            <summary>
            Gets or sets whether this player is vulnerable
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsPlayer.InvulnerableIterationLimit">
            <summary>
            Gets or sets the limit of invulnerable iterations
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsPlayer.InvulnerableIterationCount">
            <summary>
            Gets or sets the current number of invulnerable interations
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsPlayer.DeathIterationLimit">
            <summary>
            gets or sets the number of iterations this player will flicker while dieing
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsPlayer.DeathIterationCount">
            <summary>
            gets or sets the number of iterations this player has flickered
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsPlayer.StopWalking">
            <summary>
            Gets or sets a boolean used to determine if player should stop walking 
            when he hits the floor.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsGeek.cbStanding">
            <summary>
            The collision box used when standing
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsGeek.cbAttacking">
            <summary>
            The collision box used when attacking
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsGeek.specificUpdates">
            <summary>
            This guy makes specific special updates.
            For example, it changes animations depending on current states.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsGNURobot">
            <summary>
            Summary description for PhysicsGNURobot.
            </summary>
        </member>
        <!-- Badly formed XML comment ignored for member "M:Icarus.Logic.Physics.PhysicsGNURobot.walkLeft" -->
        <member name="M:Icarus.Logic.Physics.PhysicsGNURobot.walkRight">
            <summary>
            Starts the player walking right and puts him in the correct
            action states
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsGNURobot.attack">
            <summary>
            Causes this GNU bot to do a flame attack
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsGNURobot.specificUpdates">
            <summary>
            Performs specific updates on teh GNU bot. Including changing of animations
            and changing attack parameters
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsMerc">
            <summary>
            Summary description for PhysicsMerc.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.iWhipDuration">
            <summary>
            The number of engine interations the whip
            remains visable
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.iWhipInterations">
            <summary>
            the number of engine interations the whip has been displayed
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.coHitSpark">
            <summary>
            The spark that shows up when the whip hits something
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.cbWhipHit">
            <summary>
            Collision box for whip that hits enemies
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.cbWhipNoHit">
            <summary>
            collision box for whip that does not hit enemies
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.iConsecutiveJumpsAllowed">
            <summary>
            The number of consecutive jumps that merc can make
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.iCurrentConsecutiveJumps">
            <summary>
            The number of consecutive jumps merc has made
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsMerc.bThrowingCD">
            <summary>
            Whether or not merc is throwing a CD
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsMerc.whip">
            <summary>
            Perform a whip attack
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsMerc.throwCD">
            <summary>
            Causes merc to throw a CD
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsMerc.jump">
            <summary>
            Make this player jump
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsMerc.specificUpdates">
            <summary>
            This guy makes specific special updates.
            For example, it changes animations depending on current states.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsMerc.ConsecutiveJumpsAllowed">
            <summary>
            Gets or set the number of consecutive jumps merc is allowed to make
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsParticle">
            <summary>
            This class handles the collision methods needed for a 
            physics particle.  A physics particle only collides
            with the level collision mask and does not interact
            with any other physics objects.  They should be used
            for explosions and similar effects.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsParticle.#ctor">
            <summary>
            Build the Physics Particle Object
            Applies the time to live and 
             collisions to live settings specific to particles
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsRectangle">
            <summary>
            Summary description for PhysicsRectangle.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsRectangle.iX">
            <summary>
            X value of upper-left corner of rectangle
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsRectangle.iY">
            <summary>
            Y value of upper-left corner of rectangle
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsRectangle.iHeight">
            <summary>
            Height of this rectangle
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsRectangle.iWidth">
            <summary>
            Width of this rectangle
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsRectangle.strDescription">
            <summary>
            Text Description of this object for level editing
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsRectangle.IntersectsWith(Icarus.Logic.Physics.PhysicsRectangle)">
            <summary>
            Determines if this rectangle and the passed rect intersect.
            </summary>
            <param name="rect">The rectangle to check for intersection with</param>
            <returns>True - intersection; False - no intersection</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsRectangle.Intersect(Icarus.Logic.Physics.PhysicsRectangle)">
            <summary>
            Changes this rectangle making the method call to the intersection
            of the rectangle making the call and the rect passed.
            </summary>
            <param name="rect">The rectan</param>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsRectangle.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this rectangle
            </summary>
            <param name="po">Physics Object that collided with rectangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsRectangle.X">
            <summary>
            X value of upper-left corner of rectangle
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsRectangle.Y">
            <summary>
            Y value of upper-left corner of rectangle
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsRectangle.Width">
            <summary>
            Width of this rectangle
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsRectangle.Height">
            <summary>
            Height of this rectangle
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsRectangle.Description">
            <summary>
            A text Description of this object for level editing
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsSettings">
            <summary>
            I am a singleton which can be used to retrieve
             Physics Engine settings.
             
            Members are straightforward to access.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.bGodMode">
            <summary>
            Determines whether god mode s on or not
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.iConsecutiveCollisionsAllowed">
            <summary>
            The number of consecutive collisions allowed before it is 
            determined that the physics object is stuck and action should be taken.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.iParticleLifeSpan">
            <summary>
            The time a particle can live
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.iParticleBounceLimit">
            <summary>
            The amount of bounces a particle can make
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.fJumpVelocity">
            <summary>
            The upward velocity added when a player jumps.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.fJumpForwardVelocity">
            <summary>
            The forward velocity added when a player jumps forward.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.fWalkVelocity">
            <summary>
            The velocity at which a player normally walks
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsSettings.#ctor">
            <summary>
            Initializes the Physics Settings to the default values
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsSettings.#ctor(System.String)">
            <summary>
            Load the Physics Settings from fileName
            
            Loads defaults then overwrites them with values in File
            </summary>
            <param name="fileName">name of File to load</param>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.Instance">
            <summary>
            The isntance of the Physics Settings Singletone
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.GodMode">
            <summary>
            gets or sets whether god mode is on
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.JumpForwarVelocity">
            <summary>
            he forward velocity added when a player jumps forward.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.WalkVelocity">
            <summary>
            The velocity at which a player normally walks
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.JumpVelocity">
            <summary>
            The upward velocity a player jumps with.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.ParticleBounceLimit">
            <summary>
            Particle bounce limit.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.ParticleLifeSpan">
            <summary>
            Particle life limit in ms.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.ConsecutiveCollisionsAllowed">
            <summary>
            Provides access to the number of consecutive collisions
            an object is allowed to make before a special action has
            to be taken. This is just for particles... a player could
            collide with something many times and not be stuck
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.White">
            <summary>
            Provides access to white color for collision comparisons.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.Red">
            <summary>
            Provides access to red color for collision comparisons.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.Green">
            <summary>
            Provides access to green color for collision comparisons.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.Blue">
            <summary>
            Provides access to blue color for collision comparisons.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.Yellow">
            <summary>
            Provides access to yellow color for collision comparisons.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.Gray">
            <summary>
            Provides access to gray color for collision comparisons.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.Black">
            <summary>
            Provides access to black color for collision comparisons.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.sv_terminalVelocity">
            <summary>
            This sets the GLOBAL Terminal Velocity of an Object
            
            This is used if a Physics Object's Terminal Velocity is null
            
            A value of 0 or smaller means there is no Terminal Velocity
            
            Default is:
            v = 0*i + (10.0*default(sv_gravity))*j + 0*k
            
            Note that Team RETRO's classic game physics can easily be
             implemented by setting the terminal velocity equal to the
             gravity (i.e. move up and down at same rate)
             
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.sv_gravity">
            <summary>
            This sets the current GLOBAL gravity to be used
            
            This gravity is used if the player gravity is set to null
            
            Can be negative (accelerate upwards), zero means no gravity
            
            This is a constant acceleration in the j direction
            
            Default is:
            v = 0*i + 9.81*j + 0*k
            
            Note that Classic gameplay issues such as underwater and space
             Physics can be implemented by varying the gravity (hint, hint
             underwater Mario level (: )
            
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsSettings.sv_mercGravity">
            <summary>
            The gravity that should be used for Merc
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsSettings.enumDirection">
            <summary>
            Constants used while detecting collisions
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.Up">
            <summary>
            Defines the Up direction constant in Collisions
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.Down">
            <summary>
            Defines the Down direction constant in Collisions
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.Left">
            <summary>
            Defines the Left direction constant in Collisions
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.Right">
            <summary>
            Defines the Right direction constant in Collisions
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.UpLeft">
            <summary>
            Defines the Up and Left (North-West) Direction
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.UpRight">
            <summary>
            Defines the Up and Right (North-East) Direction
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.DownLeft">
            <summary>
            Defines the Down and Left (South-West) Direction
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.DownRight">
            <summary>
            Defines the Down and Right (South-East) Direction
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumDirection.Center">
            <summary>
            Defines the center (No) direction
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsSettings.enumActions">
            <summary>
            Constants used while detecting collisions
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumActions.DoNothing">
            <summary>
            Used when a Collision should have no changes
            on the existence of the object
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumActions.Remove">
            <summary>
            Defines that the collision should result in removal
            of the object in question
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsSettings.enumActions.CheckAgain">
            <summary>
            Indicates that this obj should be checked for collisions
            again before it is moved.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsSettings.enumPlayerActionStates">
            <summary>
            Actions states a player can be in
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsShortLife">
            <summary>
            Summary description for PhysicsShortLife.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsShortLife.iIterationsToLive">
            <summary>
            The number of game engine iterations this object should live
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsShortLife.iIterationsToFlicker">
            <summary>
            The number of iterations this obj flickers once it's life has ran out
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsShortLife.iIterationCount">
            <summary>
            The number of game egine iterations that this object has lived
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsShortLife.strAnimationID">
            <summary>
            The animation ID to use while flickering.  The visible portion of the flicker.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.PhysicsShortLife.specificUpdates">
            <summary>
            Keeps track of age, then makes flicker, then removes.
            </summary>
            <returns>action to be taken by physicsengine</returns>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsShortLife.IterationsToLive">
            <summary>
            gets or sets the number of game engine iterations that this worldobject lives
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsShortLife.IterationCount">
            <summary>
            gets or sets the number of game engine iterations this object has lived
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsShortLife.FlickerTime">
            <summary>
            gets or set the number of iterations this obj flickers once it's life is over
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.PhysicsShortLife.FlickerAnimationId">
            <summary>
            Gets or sets the animation that is used during the "on" portion of flickering
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsTuxHand">
            <summary>
            Summary description for PhysicsTuxHand.
            </summary>
        </member>
        <member name="T:Icarus.Logic.ChildObject">
            <summary>
            This is a child object. Basically, it means it's a subcomponent of another object. For instance, suppose we have the Merc world object. He could have a "whip" child object.
            </summary>
        </member>
        <member name="F:Icarus.Logic.ChildObject.mAnchorPoint">
            <summary>
            The anchor point for the child.
            </summary>
        </member>
        <member name="F:Icarus.Logic.ChildObject.mParent">
            <summary>
            The parent world object.
            </summary>
        </member>
        <member name="P:Icarus.Logic.ChildObject.AnchorPoint">
            <summary>
            Anchor Point. The anchor point is the coordinate of the parent object where the top-left corner of the child goes.
            </summary>
        </member>
        <member name="P:Icarus.Logic.ChildObject.Parent">
            <summary>
            The parent of the child object.
            </summary>
        </member>
        <member name="P:Icarus.Logic.ChildObject.Location">
            <summary>
            The location of the child component.
            </summary>
        </member>
        <member name="P:Icarus.Logic.ChildObject.Velocity">
            <summary>
            Velocity of the child component.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsTuxHand.cb">
            <summary>
            Collision box for this 
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsTuxHead">
            <summary>
            This class is just for differentiating whip collisions with
            other objects and Edo's(Tux) head
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsTuxRobot">
            <summary>
            Summary description for PhysicsTuxRobot.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.PhysicsWhip">
            <summary>
            Summary description for PhysicsWhip.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.PhysicsWhip.cb">
            <summary>
            Collision box for this 
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.Point">
            <summary>
            I contain the points used in Physics Calculations
            
            Don't mess with me.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.Point.PrintPoint">
            <summary>
            Output information about the Point
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.Point.Add(Icarus.Logic.Physics.Point)">
            <summary>
            Returns a new point that is the sum of this point and the one passed in.
            </summary>
            <param name="otherPoint"></param>
            <returns></returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Point.ToString">
            <summary>
            Returns a string version of the point containing all values
            of the Point (x,y,z) in text form
            </summary>
            <returns>A string containing the representation</returns>
        </member>
        <member name="P:Icarus.Logic.Physics.Point.x">
            <summary>
            X value
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Point.y">
            <summary>
            Y value
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Point.z">
            <summary>
            Z value
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.RectangleFloor">
            <summary>
            Summary description for RectangleFloor.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.RectangleFloor.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this rectangle
            </summary>
            <param name="po">Physics Object that collided with rectangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="T:Icarus.Logic.Physics.RectangleWall">
            <summary>
            Summary description for RectangleWall.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.RectangleWall.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this rectangle
            </summary>
            <param name="po">Physics Object that collided with rectangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="T:Icarus.Logic.Physics.Triangle">
            <summary>
            Triangles will be used as level collision shapes that can
            be collided with.  All Triangles must be right triangles for
            simplicity.  The right angle should be inforced in the level
            builder.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.Triangle.rectTriangleBounds">
            <summary>
            Bounding rectangle of
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.Triangle.p1">
            <summary>
            Point 1 of triangle
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.Triangle.p2">
            <summary>
            Point 2 of triangle
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.Triangle.p3">
            <summary>
            Point 3 of triangle
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.Triangle.fSlope">
            <summary>
            The slope of a this triangle's Hyp.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.Triangle.strDescription">
            <summary>
            Text Description of this object for level editing
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.Triangle.IntersectsWith(Icarus.Logic.Physics.PhysicsRectangle)">
            <summary>
            Determines if this triangle intersects with the passed rectangle
            </summary>
            <param name="rect">Rectangle to check for intersection with triangle</param>
            <returns>True - intersection; false - no intersection</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Triangle.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this triangle
            </summary>
            <param name="po">Physics Object that collided with triangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Triangle.calculateTriangleBounds">
            <summary>
            Calculates the bounding box of this triangle
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.Triangle.calculateSlope">
            <summary>
            Calculate this triangle's hypotenuse slope
            </summary>
            <returns>Slope of Hypotenuse</returns>
        </member>
        <member name="P:Icarus.Logic.Physics.Triangle.TriangleBounds">
            <summary>
            Provides access to the rectangle bounding box
            of this triangle.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Triangle.P1">
            <summary>
            Provides access to this triangles point 1
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Triangle.P2">
            <summary>
            Provides access to this triangles point 2
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Triangle.P3">
            <summary>
            Provides access to this triangles point 3
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Triangle.Slope">
            <summary>
            The slope of this triangle's hypotenuse
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Triangle.Description">
            <summary>
            A text Description of this object for level editing
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.TriangleBL">
            <summary>
            Summary description for TriangleBL.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.TriangleBL.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this triangle
            </summary>
            <param name="po">Physics Object that collided with triangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="T:Icarus.Logic.Physics.TriangleBR">
            <summary>
            Summary description for TriangleBR.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.TriangleBR.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this triangle
            </summary>
            <param name="po">Physics Object that collided with triangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="T:Icarus.Logic.Physics.TriangleTL">
            <summary>
            Summary description for TriangleTL.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.TriangleTL.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this triangle
            </summary>
            <param name="po">Physics Object that collided with triangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="T:Icarus.Logic.Physics.TriangleTR">
            <summary>
            Summary description for TriangleTR.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.TriangleTR.intersectionAction(Icarus.Logic.PhysicsObject)">
            <summary>
            Performs the necessary operations on a PO
            that has collided with this triangle
            </summary>
            <param name="po">Physics Object that collided with triangle</param>
            <returns>Action to be taken after collision occurs(ie: remove, doNothing)</returns>
        </member>
        <member name="T:Icarus.Logic.Physics.Vector">
            <summary>
            I contain the vectors used in Physics Calculations
             
            Don't mess with me.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.PrintVector">
            <summary>
            Print Vector Information
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.ToString">
            <summary>
            Returns a string containing the vector information
            </summary>
            <returns>A string with the vector information</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.getMagnitude">
            <summary>
            Calculate the magnitude of this vector
            </summary>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.op_UnaryNegation(Icarus.Logic.Physics.Vector)">
            <summary>
            Negates the vector (i.e. -1 * v)
            </summary>
            <param name="v">the vector to be negated</param>
            <returns>Negated Vector of v</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.op_GreaterThanOrEqual(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Returns true if magnitude(v1) >= magnitude(v2)
            </summary>
            <param name="v1">v1</param>
            <param name="v2">v2</param>
            <returns>magnitude(v1) >= magnitude(v2)</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.op_LessThanOrEqual(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Returns true if magnitude(v1) &lt;= magnitude(v2)
            </summary>
            <param name="v1">v1</param>
            <param name="v2">v2</param>
            <returns>magnitude(v1) &lt;= magnitude(v2)</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.op_LessThan(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Returns true if magnitude(v1) &lt; magnitude(v2)
            </summary>
            <param name="v1">v1</param>
            <param name="v2">v2</param>
            <returns>magnitude(v1) &lt; magnitude(v2)</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.op_GreaterThan(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Returns true if magnitude(v1) > magnitude(v2)
            </summary>
            <param name="v1">v1</param>
            <param name="v2">v2</param>
            <returns>magnitude(v1) > magnitude(v2)</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.CrossMultVector(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Performs cross multiplication from vec1 to vec2
            </summary>
            <param name="vec1">First Vector</param>
            <param name="vec2">Second Vector</param>
            <param name="cross">Normal vector of first two vectors</param>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.ScalarMultVector(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector,System.Single)">
            <summary>
            Scalar Multiply a Vector
            dest = (src.i * scalar)i + (src.j * scalar)j + ...
            </summary>
            <param name="dest">The Vector in which the result will be stored</param>
            <param name="src">The Vector that will be multiplied</param>
            <param name="scalar">The scalar value to multiply the Vector with</param>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.op_Addition(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Vector Addition
            </summary>
            <param name="src1">src1</param>
            <param name="src2">src2</param>
            <returns>src1+src2 = (src1.i + src2.i) * i + ...</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.op_Subtraction(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Vector Subtraction
            </summary>
            <param name="src1">src1</param>
            <param name="src2">src2</param>
            <returns>src1+src2 = (src1.i + src2.i) * i + ...</returns>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.AddVectors(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Vector Addition, fastest method to use if dest = src1 or src2
            </summary>
            <param name="dest">dest = (src1.i + src2.i) * i + ...</param>
            <param name="src1">src1</param>
            <param name="src2">src2</param>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.SubVectors(Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector,Icarus.Logic.Physics.Vector)">
            <summary>
            Vector Subtraction, fastest method to use if dest = src1 or src2
            </summary>
            <param name="dest">dest = (src1.i - src2.i) * i + ...</param>
            <param name="src1">src1</param>
            <param name="src2">src2</param>
        </member>
        <member name="M:Icarus.Logic.Physics.Vector.Normalize(Icarus.Logic.Physics.Vector)">
            <summary>
            Normalize the vector src (src / magnitude(src))
            </summary>
            <param name="src">Vector to normalize, this is unaffected</param>
            <returns>Normalized Vector</returns>
        </member>
        <member name="P:Icarus.Logic.Physics.Vector.i">
            <summary>
            i direction value
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Vector.j">
            <summary>
            j direction value
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Vector.k">
            <summary>
            k direction value
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.Vector.magnitude">
            <summary>
            Magnitude of Vector
            </summary>
        </member>
        <member name="T:Icarus.Logic.Physics.ZoomTrigger">
            <summary>
            Summary description for ZoomTrigger.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.ZoomTrigger.dZoomTo">
            <summary>
            The zoom factor to zoom to
            </summary>
        </member>
        <member name="F:Icarus.Logic.Physics.ZoomTrigger.iDirection">
            <summary>
            The direction of zooming up, down
            </summary>
        </member>
        <member name="P:Icarus.Logic.Physics.ZoomTrigger.ZoomTo">
            <summary>
            gets or sets the zoom factor to zoom to
            </summary>
        </member>
        <member name="T:Icarus.Logic.Level">
            <summary>
            Contains the necessary items used to describe a Game level.
            Holds the information about the current list of WorldObjects,
            the view background, the view terrain collision mask, and
            other necessary information used to play the game level.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Level.stages">
            <summary>
            An array of all the stages this level contains.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Level.iCurrStageIndex">
            <summary>
            The index of the current stage
            </summary>
        </member>
        <member name="M:Icarus.Logic.Level.#ctor">
            <summary>
            Makes a new level.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Level.Stages">
            <summary>
            The array of stages that belong to this level
            </summary>
        </member>
        <member name="P:Icarus.Logic.Level.CurrStage">
            <summary>
            The current stage of this level
            </summary>
        </member>
        <member name="P:Icarus.Logic.Level.CurrentStageIndex">
            <summary>
            The index of the current stage in the stages array
            </summary>
        </member>
        <member name="T:Icarus.Logic.LevelBackground">
            <summary>
            This is the representation of a single layer of background for the level. It's all fancy and parallax, and stuff.
            </summary>
        </member>
        <member name="F:Icarus.Logic.LevelBackground.mBackgroundAnimation">
            <summary>
            The actual background animation.
            </summary>
        </member>
        <member name="F:Icarus.Logic.LevelBackground.mParallaxFactor">
            <summary>
            Teh Parallax factor!!1! Read the documentation for the corresponding property.
            </summary>
        </member>
        <member name="F:Icarus.Logic.LevelBackground.mActualRenderable">
            <summary>
            The actual renderable used to display the background. See BackgroundRenderable property documentation for more information.
            </summary>
        </member>
        <member name="M:Icarus.Logic.LevelBackground.SetAnimation(System.String,Icarus.Graphics.Animation.AnimationType,System.Int32)">
            <summary>
            Sets the animation with the specified parameters.
            </summary>
            <param name="id"></param>
            <param name="t"></param>
            <param name="delay"></param>
        </member>
        <member name="M:Icarus.Logic.LevelBackground.CompareTo(System.Object)">
            <summary>
            Allows is to sort level backgrounds by parallax factor.
            </summary>
            <param name="obj"></param>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.LevelBackground.Animation">
            <summary>
            Gets the background animation.
            </summary>
        </member>
        <member name="P:Icarus.Logic.LevelBackground.Rows">
            <summary>
            Gets or sets how many times we need to tile the background vertically.
            </summary>
        </member>
        <member name="P:Icarus.Logic.LevelBackground.Columns">
            <summary>
            Gets or sets how many times we need to tile the background horizontally.
            </summary>
        </member>
        <member name="P:Icarus.Logic.LevelBackground.ParallaxFactor">
            <summary>
            Gets or sets the parallax factor. The value of 0 means the background will be stationary. The value of 1 means it will be moving the same as the character. Stuff in between is stuff in between. Stuff outside the range... Hell, I don't know what will happen, but probably nothing good.
            </summary>
        </member>
        <member name="P:Icarus.Logic.LevelBackground.BackgroundCenter">
            <summary>
            Gets the center of the background.
            </summary>
        </member>
        <member name="P:Icarus.Logic.LevelBackground.BackgroundRenderable">
            <summary>
            Gets the renderable thing that we acutally need to make the background. This needs to be used instead of the Animation property, because the background will sometimes need to be tiled.
            </summary>
        </member>
        <member name="T:Icarus.Logic.Stage">
            <summary>
            Contains the necessary items used to describe a Game stage.
            Holds the information about the current list of WorldObjects,
            the view background, the view terrain collision mask, and
            other necessary information used to play the game level.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.fPhysicsScale">
            <summary>
            This defines the scale from which the Physics Engine converts
            its calculations into GameWorld.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.settings">
            <summary>
            Game settings for the level.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.items">
            <summary>
            List of all items in the level.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.particles">
            <summary>
            List of all particles in the level.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.actors">
            <summary>
            List of all actors in the level.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.terrain">
            <summary>
            List of all terrain objects.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.playerActorIndex">
            <summary>
            This is the guy controlled by the user.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.mBackgrounds">
            <summary>
            The list of backgrounds.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.collisionBoxes">
            <summary>
            The collision boxes that cause collisions with this level
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.mZoomFactor">
            <summary>
            The zoom for the stage. See Field description for more info.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.mViewCenter">
            <summary>
            The center of the view for the stage.
            </summary>
        </member>
        <member name="F:Icarus.Logic.Stage.strStageName">
            <summary>
            The name of this stage
            </summary>
        </member>
        <member name="M:Icarus.Logic.Stage.#ctor">
            <summary>
            Makes a new level.
            </summary>
        </member>
        <member name="M:Icarus.Logic.Stage.GetBackgroundCount">
            <summary>
            Returns the number of backgrounds we have.
            </summary>
            <returns></returns>
        </member>
        <member name="M:Icarus.Logic.Stage.AddBackground(Icarus.Logic.LevelBackground)">
            <summary>
            Adds a background to the background arraylist
            </summary>
            <param name="lb">LevelBackground to be added to stage</param>
        </member>
        <member name="M:Icarus.Logic.Stage.removeBackground(Icarus.Logic.LevelBackground)">
            <summary>
            Removed a background from the stage
            </summary>
            <param name="lb">The LevelBackground to be removed</param>
        </member>
        <member name="M:Icarus.Logic.Stage.GetBackgroundAt(System.Int32)">
            <summary>
            Returns the index-th background.
            </summary>
            <param name="index"></param>
            <returns></returns>
        </member>
        <member name="P:Icarus.Logic.Stage.physicsScale">
            <summary>
            This is VERY important.
            This defines the scale from which the Physics Engine converts
            its calculations into GameWorld.
            The result is then truncated into an unsigned integer
             and then used to place the object in the world
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.itemList">
            <summary>
            Gives usable access to the list of items.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.particleList">
            <summary>
            Gives usable access to the list of particles.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.actorList">
            <summary>
            Gives usable access to the list of actors.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.terrainList">
            <summary>
            Gives usable access to the list of terrain.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.CollisionBoxes">
            <summary>
            The collision boxes that cause collisions with this level
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.Backgrounds">
            <summary>
            Gets or sets the list of backgrounds. This is purely for XML serialization purposes.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.PlayerActor">
            <summary>
            The world object that is controlled by the player.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.PlayerActorIndex">
            <summary>
            The index into the array of actors of the one that is controlled by the player.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.ZoomFactor">
            <summary>
            Gets or sets the zoom level for the display. The zoom level of 1 means the images appear precisely their size, the zoom level of 0.5 means everything is half size, etc. It might not be a good idea to set this to zero, as stuff would kinda disappear then.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.ViewCenter">
            <summary>
            Gets or sets the view center. That is basically the world coordinates of the point that will be in the center of the screen.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.Width">
            <summary>
            Gets or sets stage width.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.Height">
            <summary>
            Gets or sets stage height.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.LevelCenter">
            <summary>
            Gets the center of the level.
            </summary>
        </member>
        <member name="P:Icarus.Logic.Stage.StageName">
            <summary>
            gets or sets this stages name
            </summary>
        </member>
    </members>
</doc>
