diff --git a/.gitignore b/.gitignore
index afc4c9889..47343ecd9 100644
--- a/.gitignore
+++ b/.gitignore
@@ -38,3 +38,6 @@ FRBDK/Glue/GameScriptingPlugin/.vs/
FRBDK/AnimationEditorPlugin/.vs/
*.mainplugin.settings.json
Templates/FlatRedBallUwpTemplate/.vs/
+FRBDK/GlueView2Test/packages/
+FRBDK/GlueView2Test/.vs/
+FRBDK/GlueView2/packages/
diff --git a/FRBDK/GlueView2/Dependencies/FlatRedBall.Content.dll b/FRBDK/GlueView2/Dependencies/FlatRedBall.Content.dll
new file mode 100644
index 000000000..ecc1e9c82
Binary files /dev/null and b/FRBDK/GlueView2/Dependencies/FlatRedBall.Content.dll differ
diff --git a/FRBDK/GlueView2/Dependencies/FlatRedBall.XML b/FRBDK/GlueView2/Dependencies/FlatRedBall.XML
new file mode 100644
index 000000000..b8c9b5809
--- /dev/null
+++ b/FRBDK/GlueView2/Dependencies/FlatRedBall.XML
@@ -0,0 +1,13144 @@
+
+
+
+ FlatRedBall
+
+
+
+
+ A viiewer in a VisibilityGrid. This typically is a unit which removes fog of war around it.
+
+
+
+
+ Provides an interface for 3D position.
+
+
+ Does not include Velocity and Acceleration like IPositionable.
+
+
+
+
+ The absolute X position.
+
+
+
+
+ The absolute Y position.
+
+
+
+
+ The absolute Z position.
+
+
+
+
+ The distance in world units that this IViewer can see.
+
+
+
+
+ Represents a 2D grid of cells which identify what can be seen given a list of IViewers.
+ This supports line of sight.
+
+
+
+
+ Instantiates a new VisibilityGrid.
+
+ The absolute x coordinate seed value.
+ The absolute y coordinate seed value.
+ The amount of distance in world coordinates between rows and columns.
+ Number of tiles wide (on the X axis)
+ Number of tiles heigh (on the Y axis)
+
+
+
+ Checks if any viewers have changed since last Update, and if so it updates the grid.
+
+ Whether anything has changed.
+
+
+
+ Destroys the VisibilityGrid - specifically disposing its internal fog texture.
+
+
+
+
+ Adds an IViewer to this grid.
+
+ The viewer to add.
+
+
+
+ Makes walls visible if they are adjacent to visible non-walls.
+
+
+
+
+ Adds a block (or wall) at a given world location.
+
+ The world coordinate X.
+ The world coordinate Y.
+
+
+
+ Unblocks a tile that was previously marked as a world blocker
+
+ The X coordinate of the tile
+ The Y coordinate of the tile
+
+
+
+ Clears all blocked tiles.
+
+
+
+
+ Returns whether a given world position is in view of a given viewer.
+
+ The viewer to check visibility for.
+ The world coordinates.
+ Whether in view.
+
+
+
+ Returns whether a given world coordinate is relealed.
+
+ The world x coordinate.
+ The world y coordinate.
+ Whether the world coordinate is revealed or not.
+
+
+
+ Returns whether a given X and Y index is revealed.
+
+ The x index
+ The y index
+ Whether the location specified by the x/y index is revealed.
+
+
+
+ Hides the entire grid (makes it not revealed).
+
+
+
+
+ Reveals the entire grid.
+
+
+
+
+ Removes a viewer.
+
+ The argument IViewer to remove.
+
+
+
+ Reveals a circle around the given world coordinate using a given radius
+
+ The world coordinate X
+ The world coordinate Y
+ The radius in world units
+
+
+
+ Tests if two vector positions are within line of sight given a collision map.
+
+ The first world-coordinate position.
+ The second world-coordinate position.
+ The list of polygons used to test if the two positions are within line of sight.
+
+
+
+
+ Tests if two vector positions are within line of sight given a collision map.
+
+ The first world-coordinate position.
+ The second world-coordinate position.
+ Distance from position2 to the polygon it's colliding against.
+ If a polygon is within this threshold, this will return false.
+ The list of polygons used to test if the two positions are within line of sight.
+
+
+
+
+ Returns the midpoint between two Vector3s.
+
+ The first position.
+ The connecting position.
+ The midpoint between the two positions.
+
+
+
+ Calculates the closest visible point to outOfSightPosition given the currentPosition.
+
+ The position with which to test Line Of Sight
+ The connector to the outOfSightPosition with which to find midpoint optimizations.
+ The guide to find the optimal in sight position.
+ The number of times we will midpoint optimize, higher means closer to optimal.
+ Usually the object using the path will be larger than 0, use the size of the collision for testing line of sight.
+ Polygon list which we will use for collision (without it, everything is straight line of sight).
+
+
+
+
+ Represents a one-way const-including path to a PositionedNode.
+
+
+
+
+ Creates a new Link.
+
+ The node to link to.
+ The cost to travel the link.
+
+
+
+ The cost to travel the link.
+
+
+ This is by default the distance to travel; however it can manually
+ be changed to be any value to reflect different terrain, altitude, or other
+ travelling costs.
+
+
+
+
+ The destination PositionedNode. The starting PositionedNode is not stored by the Link instance.
+
+
+
+
+ Stores a collection of PositionedNodes and provides common functionality for
+ pathfinding logic.
+
+
+
+
+ Defines that an object has a name.
+
+
+ Objects which are referenced by other objects in serializable classes
+ should be INameable so that the in-memory reference can be coverted to
+ a string and then re-created when the object is deserialized.
+
+
+
+
+ The name of the object.
+
+
+
+
+ Creates an empty NodeNetwork.
+
+
+
+
+ Creates a new PositionedNode and adds it to the NodeNetwork.
+
+ The newly-created PositionedNode.
+
+
+
+ Adds an already-created PositionedNode to the NodeNetwork.
+
+
+ Will not add the PositionedNode if it is already part of the NodeNetwork
+
+ The PositionedNode to add.
+
+
+
+ Finds a PositionedNode by the argument nameofNode.
+
+ The name of the PositionedNode to search for.
+ The PositionedNode with the matching Name, or null if no PositionedNodes match.
+
+
+
+ Returns the PositionedNode that's the closest to the argument position.
+
+ The point to find the closest PositionedNode to.
+ The PositionedNode that is the closest to the argument position.
+
+
+
+ Returns the radius of the PositionedNode visible representation Polygons.
+
+
+ The size of the PositionedNode visible representation Polygons depends on the
+ camera's Z position - as the Camera moves further away, the Polygons are drawn larger.
+ If the Camera is viewing down the Z axis then changing the Z will not affect the visible
+ size of the PositionedNode visible representation.
+
+ The camera to use when calculating the size.
+ The index of the PositionedNode in the NodeNetwork. Since nodes can be in
+ 3D space the individual PositionedNode is required.
+ The radius of the node.
+
+
+
+ Returns the List of PositionedNodes which make the path from the start PositionedNode to the end PositionedNode.
+
+
+ If start and end are the same node then the List returned will contain that node.
+
+ The PositionedNode to begin the path at.
+ The destination PositionedNode.
+ The list of nodes to travel through to reach the end PositionedNode from the start PositionedNode. The
+ start and end nodes are included in the returned List.
+
+
+
+ Returns the List of PositionedNodes which make the path from the start Vector3 to the end Vector3.
+
+
+ This method finds the closest nodes to each of the arguments, then calls the overload for GetPath which takes
+ PositionedNode arguments.
+
+ The world-coordinate start position.
+ The world-coordinate end position.
+ The list of nodes to travel through to reach the closest PositionedNode to the endPoint from the closest
+ PositionedNode to the startPoint.
+
+
+
+ Returns the List of PositionedNodes which make the path from the start PositionedNode to the end PositionedNode, or the node closest to the end node which is linked through the network to the start PositionedNode.
+
+
+ If start and end are the same node then the List returned will contain that node.
+
+ The PositionedNode to begin the path at.
+ The optimal destination PositionedNode.
+ The list of nodes to travel through to reach the end PositionedNode, or the node closest to the PositionedNode which is connected to the start PositionedNode, from the start PositionedNode. The
+ start and end nodes are included in the returned List.
+
+
+
+ Returns the List of PositionedNodes which make the path from the start Vector3 to the end Vector3, or to the node closest to the end Vector3 available if the end node is not linked in some way to the start node.
+
+
+ This method finds the closest nodes to each of the arguments, then calls the overload for GetPathOrClosest which takes
+ PositionedNode arguments.
+
+ The world-coordinate start position.
+ The world-coordinate end position.
+ The list of nodes to travel through to reach the closest PositionedNode which is linked to the closest PositionedNode to the startPoint.
+
+
+
+
+ Returns a List of Vector3s that will be an optimized version of GetPath given the NodeNetwork and a Collision Map to test against.
+
+
+ This method will get the optimal path between the two vectors using GetPath, and then will optimize it by
+ testing line of sight between the nodes to see if the path can be optimized further (for more optimized
+ pathfinding). When optimizing the path between two nodes, it will check if the midpoint is in line of sight with the
+ startingPosition, and if it is, change the path to the midpoint instead of the current target node. the numberOfOptimizations
+ decides how many times it will take the midpoint and optimize further.
+
+ This method assumes that the node network does NOT fall within collidable objects.
+
+ The world-coordinate of the starting position.
+ The world-coordinate of the destination.
+ The collision map which will have the obstacles you are trying to path around.
+
+
+
+
+ Returns a List of Vector3s that will be an optimized version of GetPath given the NodeNetwork and a Collision Map to test against.
+
+
+ This method will get the optimal path between the two vectors using GetPath, and then will optimize it by
+ testing line of sight between the nodes to see if the path can be optimized further (for more optimized
+ pathfinding). When optimizing the path between two nodes, it will check if the midpoint is in line of sight with the
+ startingPosition, and if it is, change the path to the midpoint instead of the current target node. the numberOfOptimizations
+ decides how many times it will take the midpoint and optimize further.
+
+ The world-coordinate of the starting position.
+ The world-coordinate of the destination.
+ The number of times the algorithm will take the midpoint between
+ two nodes to test if they are within line of sight of each other (higher means nearer to optimal path).
+
+ Usually the object using the path will be larger than 0, use the size of the collision for testing line of sight.
+ The collision map which will have the obstacles you are trying to path around.
+
+
+
+
+ Removes the argument PositionedNode from the NodeNetwork. Also destroys any links
+ pointing to the argument PositionedNode.
+
+ The PositionedNode to remove.
+
+
+
+ Removes the argument PositionedNode from the NodeNetwork. Also destroys any links
+ pointing to the argument PositionedNode.
+
+ The PositionedNode to remove from the network.
+ Scans the entire network and removes all links to this node. Used when not all link relationships are two way.
+
+
+
+ Updates the visible representation of the NodeNetwork. This is only needed to be called if the NodeNetwork
+ is visible and if any contained PositionedNodes or Links have changed.
+
+
+
+
+ All nodes in this NodeNetwork.
+
+
+
+
+ The polygons used to represent PositionedNodes. This is populated and managed by the
+ NodeNetwork if Visible is set to true.
+
+
+
+
+ The Color that Node polygons should use when Visible is true;
+
+
+
+
+ Controls the visibility of the NodeNetwork. This is usually only set to
+ true for debugging and testing purposes.
+
+
+ Setting this value to true creates Polygons and Lines to represent the
+ NodeNetwork. Setting it back to false destroys all objects used for visible
+ representation.
+
+
+
+
+ An object which has position properties
+
+
+
+
+ The node that links to this node. This is reset every time the
+ containing NodeNetwork searches for a path.
+
+
+
+
+ The cost to get to this node from the start node. This variable is
+ set when the containing NodeNetwork searches for a path.
+
+
+
+
+ Only active nodes are included in pathfinding and find node searches.
+
+ Update February 10, 2013
+ Nodes should always start
+ out as active.
+
+
+
+ Creates a new PositionedNode.
+
+
+
+
+ Disconnects all Links between this and the argument node.
+
+ The PositionedNode to break links between.
+
+
+
+ Returns whether this has a Link to the argument PositionedNode.
+
+
+ If this does not link to the argument PositionedNode, but the argument
+ links back to this, the method will return false. It only checks links one-way.
+
+ The argument to test linking.
+ Whether this PositionedNode links to the argument node.
+
+
+
+ Creates Links from this to the argument nodeToLinkTo, and another Link from the
+ argument nodeToLinkTo back to this.
+
+
+ If either this or the argument nodeToLinkTo already contains a link to the other
+ PositionedNode, then the cost of the link is set to the argument costTo.
+
+ The other PositionedNode to create Links between.
+ The cost to travel between this and the argument nodeToLinkTo.
+
+
+
+ Creates Links from this to the argument nodeToLinkTo, and another Link from the
+ argument nodeToLinkTo back to this.
+
+
+ If either this or the argument nodeToLinkTo already contains a link to the other
+ PositionedNode, then the cost of the link is set to the argument costTo or costFrom as appropriate.
+
+ The other PositionedNode to create the Links between.
+ The cost to travel from this to the argument nodeToLinkTo.
+ The cost to travel from the nodeToLinkTo back to this.
+
+
+
+ Creates a link from this PositionedNode to the argument nodeToLinkTo. Links
+ on the argument nodeToLinkTo are not modified.
+
+
+ If this already links to the arugment nodeToLinkTo, the cost is set to the argument
+ costTo.
+
+ The PositionedNode to create a link to.
+ The cost to travel from this to the argument nodeToLinkTo.
+
+
+
+ Returns the string representation of this.
+
+ The string representation of this.
+
+
+
+ Returns the cost to get to this node from the start node. This
+ value is only accurate if the node is contained in list returned
+ by the last call to NodeNetwork.GetPath.
+
+
+ This value is reset anytime GetPath is called on the containing NodeNetwork.
+
+
+
+
+ The Node's name. Mainly used for saving NodeNetworks since saved Links reference
+ PositionedNodes by name.
+
+
+
+
+ The X position of the PositionedNode.
+
+
+
+
+ The Y position of the PositionedNode.
+
+
+
+
+ The Z position of the PositionedNode.
+
+
+
+
+ The links belonging to this PositionedNode.
+
+
+ This is a list of Links which reference the PositionedNodes that this links to.
+ Links are one-way and PositionedNodes that this links to do not necessarily contain
+ Links back to this.
+
+
+
+
+ Only active nodes are included in pathfinding and find node searches.
+
+
+
+
+ Defines a member as an external instance. Members which are external instances
+ are not read by ContentReaders. Rather they're set by ExternalInstances of referenced
+ content such as Texture2Ds.
+
+
+
+
+ Attribute marking a member in a save class as an external instance. That is, it should
+ be treated as external content by the ObjectReaders and ObjectWriters in the FlatRedBall
+ content pipeline.
+
+
+
+
+ Used internally by the engine to determine the order of
+ reading and writing for instances.
+
+
+
+
+ Plays the argument sound effect.
+
+ The sound effect to play
+ Volume, ranging from 0.0f (silence) to 1.0f (full volume). 1.0f is full volume
+
+
+
+ Plays the current song. PlaySong with an argument must
+ be called before this can be called. This can be used to
+ resume music when the game is unpaused or if audio options are
+ being turned on/off
+
+
+
+
+ Adds a sound bank
+
+ The sound bank to add
+
+
+
+ Adds a wave bank
+
+ The wave bank to add
+
+
+
+ Removes a sound bank
+
+ The sound bank to remove
+
+
+
+ Removes a wave bank
+
+ The wave bank to remove
+
+
+
+ Whether or not the given sound bank file has been loaded
+
+ The sound bank to check
+ Whether or not the sound bank has been loaded
+
+
+
+ Whether or not the given wave bank file has been loaded
+
+ The wave bank to check
+ Whether or not the wave bank has been loaded
+
+
+
+ Gets a sound
+
+ The name of the sound in the XACT project
+ A new sound
+
+
+
+ Gets a sound
+
+ The name of the sound in the XACT project
+ The name of the sound bank to retrieve the sound from
+ A new sound
+
+
+
+ Gets a positioned sound
+
+ The name of the sound in the XACT project
+ A new positioned sound
+
+
+
+ Gets a positioned sound
+
+ The name of the sound in the XACT project
+ The name of the sound bank to retrieve the sound from
+ A new positioned sound
+
+
+
+ Removes the specified sound from the audio manager
+ Warning: The sound will stop being positioned when removed
+
+ The sound to remove
+
+
+
+ Plays a sound immediately
+
+ The name of the sound in the XACT project
+
+
+
+ Plays a sound immediately
+
+ The name of the sound in the XACT project
+ The name of the sound bank to retrieve the sound from
+
+
+
+ Initializes the audio manager with an XACT audio project
+
+ The settings file for the audio project (xgs)
+ The wave bank file for the audio project (xwb)
+ The sound bank file for the audio project (xsb)
+
+
+
+ Represents the "active" song. This may or may not be actually playing.
+ This may still be non-null when no song is playing if the code has stopped
+ music from playing. The AudioManager remembers this to resume playing later.
+
+
+
+
+ Represents the song that is currently playing. If no song is playing this is null.
+
+
+
+
+ Reports the total number of sound effects that have been played by the AudioManager since the start of the program's execution.
+ This can be used to count sound effect plays as a rough form of profiling.
+
+
+
+
+ Used to manage global variables in the audio engine
+
+
+
+
+ A sound which has a position enabling effects such as doppler effect and
+ distance-based volume adjustments.
+
+
+
+
+ Represents an object with position, rotation, ability to
+ store instructions, and attachment abilities.
+
+
+ The PositionedObject is a common object in FlatRedBall. It is the root class
+ for a number of FlatRedBall classes including Sprites, Texts, SpriteFrames, PositionedModels,
+ and all Shapes.
+
+ The PositionedObject class is also used as the base class when creating custom Entitiy objects.
+
+
+ PositionedObjects can be automatically managed by being added to the SpriteManager.
+
+
+
+
+
+ Interface for an object which can be attached to a parent.
+
+
+ IAttachables do not necessarily have to be positioned objects - they
+ can also be objects which have un-positioned attachments. For example,
+ an event in a scripted sequence might have a parent event which it executes
+ after.
+
+
+
+
+ Clears all attachments to parents and removes all attached Children.
+
+
+
+
+ Detaches the instance from its parent and removes it from its parent's Children List.
+
+
+
+
+ Forces an update of the instance and calls ForceUpdateDependencies on its parent.
+
+
+ This method will recursively crawl up the Parent property until it reaches the TopParent.
+
+
+
+
+ Gets all lists that the instance belongs to.
+
+
+ This property provides the two-way relationship between IAttachables and
+ and common FlatRedBall Lists.
+
+
+
+
+ Provides an interface for 3D position, velocity, and acceleration.
+
+
+ For an interface which provides only and no velocity and acceleration, see
+ FlatRedBall.Math.IStaticPositionable.
+
+
+
+
+
+ Gets and sets the absolute X Velocity. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Y Velocity. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Z Velocity. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute X Acceleration. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Y Acceleration. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Z Acceleration. Meausred in units per second.
+
+
+
+
+ Provides an interface for objects which can be rotated in 3D space. Includes
+ absolute rotation values and rotational velocity values.
+
+
+
+
+ Gets and sets the absolute rotation matrix.
+
+
+ Implementers should mirror changes to the RotationMatrix in the
+ individual rotation values.
+
+
+
+
+ Gets and sets the rotation on the X Axis.
+
+
+ Implementors should mirror changes to invididual rotation values in the
+ RotationMatrix property.
+
+
+
+
+ Gets and sets the rotation on the Y Axis.
+
+
+ Implementors should mirror changes to invididual rotation values in the
+ RotationMatrix property.
+
+
+
+
+ Gets and sets the rotation on the Z Axis.
+
+
+ Implementors should mirror changes to invididual rotation values in the
+ RotationMatrix property.
+
+
+
+
+ Gets and sets the rotational velocity on the X Axis.
+
+
+
+
+ Gets and sets the rotational velocity on the Y Axis.
+
+
+
+
+ Gets and sets the rotational velocity on the Z Axis.
+
+
+
+
+ Provides an interface for objects which can store Instructions.
+
+
+
+
+ The list of Instructions that this instance owns. These instructions usually
+ will execute on this instance; however, this is not a requirement.
+
+
+
+
+ The absolute world position of the instance.
+
+
+ This mirrors the X, Y, and Z properties. This value essentially becomes
+ read-only if this object has a Parent.
+
+
+
+
+ The position of the object relative to its Parent in its Parent's coordinate space.
+
+
+ These values become the dominant controller of absolute Position if this
+ instance has a Parent. These values have no impact if the instance does not
+ have a Parent.
+
+
+
+
+ The absolute world velocity of the instance measured in units per second.
+
+
+ This mirrors the XVelocity, YVelocity, and ZVelocity properties. This value is essentially
+ invalid if this instance has a Parent.
+
+
+
+
+ The velocity of the object relative to its Parent in its Parent's cooridnate space.
+
+
+ This value modifies the RelativePosition field even if the object does not have a Parent.
+
+
+
+
+ The absolute world acceleration of the instance measured in units per second per second.
+
+
+ This mirrors the XAcceleration, YAcceleration, and ZAcceleration properties. This value is
+ essentially invalid if the instance has a Parent; however, it can still build up the Velocity
+ value.
+
+ If an object with a parent has a non-zero Acceleration for a significant amount of time, then is
+ detached, the Velocity will likely be non-zero and may be very large causing the object to move
+ rapidly.
+
+
+
+
+
+ The acceleration of the object relative to its Parent in its Parent's coordinate space.
+
+
+ This value modifies the RelativeVelocity field even if the object does not have a Parent.
+
+
+
+
+ The actual velocity of the object from the last frame to this frame. This value is only valid
+ if the KeepTrackOfReal property has been true for over one frame.
+
+
+
+
+ The actualy acceleration of the object from the last frame to this frame. This value is only valid
+ if the KeepTrackOfReal property has been set to true for over two frames.
+
+
+
+
+ The last Position of the object - used to calculate the RealVelocity field. This is
+ valid only if the KeepTrackOfReal property is true.
+
+
+
+
+ The last Velocity of the object - this is used to calculate the RealAcceleration field. This is
+ valid only if the KeepTrackOfReal property is true.
+
+
+
+
+ The drag of the instance.
+
+
+
+
+
+
+
+ The name of the instance.
+
+
+
+
+ The X component of the object's absolute rotation.
+
+
+
+
+ The Y component of the object's absolute rotation.
+
+
+
+
+ The Z component of the object's absolute rotation.
+
+
+
+
+ The X component of the object's absolute rotational velocity.
+
+
+
+
+ The Y component of the object's absolute rotational velocity.
+
+
+
+
+ The Z component of the object's absolute rotational velocity.
+
+
+
+
+ The X component of the object's relative rotation.
+
+
+
+
+ The Y component of the object's relative rotation.
+
+
+
+
+ The Z component of the object's relative rotation.
+
+
+
+
+ The X component of the object's relative rotational velocity.
+
+
+
+
+ The Y component of the object's relative rotational velocity.
+
+
+
+
+ The Z component of the object's relative rotational velocity.
+
+
+
+
+ The matrix representing the absolute orientation of the instance.
+
+
+
+
+ The matrix representing the relative orientation of the object in parent space. This
+ has no impact if the Parent is null.
+
+
+
+
+ The lists that this instance belongs to. This is how two-way relationships are implemented.
+
+
+
+
+ The PositionedObject that this is attached to. If it is null then this does not
+ follow any relative properties.
+
+
+
+
+ The objects that are attached to this instance.
+
+
+
+
+ The value that was last used when calling UpdateDependencies.
+
+
+
+
+ The instructions that belong to this instance.
+
+
+
+
+ Creates a new PositionedObject instance.
+
+
+
+
+ Determines whether the tree structure created by attachments of two PositionedObjects are identical.
+
+
+ This method does not investigate the PositionedObjects any more than looking at their children. It traverses
+ through the trees multiple times, and can be a very slow method if the PositionedObjects have large subtrees.
+ The subtrees are small enough in most cases
+ where there won't be a performance issue.
+
+ The first PositionedObject.
+ The second PositionedObject.
+ Whether the tree structure created by attachments is the same.
+
+
+
+ Attaches this PositionedObject to the argument newParent.
+
+
+ A useful way to understand the affect of changeRelative is to consider that it is the opposite of whether
+ absolute values change. That is, if the relative values do not change upon attachment, the absolute values
+ will change.
+
+ For an example, consider a situation where a child has an absolute x value of 5 and a relative value of 0 and
+ a parent has an absolute x value of 0. If the child is attached to the parent
+ and relative is not changed (relative x remains at 0), then the child's x will be
+ parent.x + child.relX, or 0 + 0 = 0. We see that the relative value didn't
+ change, so the absolute did.
+
+
+ If, on the other hand, the relative was changed, the absolute position would be the same.
+ Since the parent's absolute position was 0 and the absolute position of the
+ child should remain at 5, then the relX value would change to 5 (assuming
+ the parent isn't rotated).
+
+
+ The PositionedObject to attach to.
+ Whether relative values should change so that absolute values stay the same.
+
+
+
+ Detaches this PositionedObject from its parent and detaches all of the PositionedObject's
+ Children.
+
+
+
+
+ Copies most internal fields of this instance to the argument PositionedObjects.
+
+
+ The following fields are not copied:
+ * Name
+ * ListsBelongingTo
+ * Parent
+ * Children
+ * Instructions
+
+
+
+
+
+ Copies the absolute position and rotation values to the relative values.
+
+
+
+
+ Creates a clone of this instance typed as a T.
+
+ The type of the new object.
+ The newly created instance.
+
+
+
+ Creates a new Children PositionedObjectList.
+
+
+ This method is only necessary if a PositionedObject
+ is manually cloned by calling MemberwiseClone. This
+ should not be called to detach children as the two-way
+ relationship between PositionedObject and PositionedObjectList
+ will keep the old Children PositionedObjectList in scope resulting
+ in a memory leak.
+
+
+
+
+ Creates a new InstructionList.
+
+
+ This method is only necessary if a PositionedObject
+ is manually cloned by calling MemberwiseClone. This
+ should not be called to clear the Instructions property
+ as it will create a new instance and get rid fo the old one
+ resulting in unnecessary garbage collection.
+
+
+
+
+ Detaches the PositionedObject from its parent PositionedObject.
+
+
+ This method cleans up the two way relationship between parent and child.
+
+
+
+
+ Executes instructions according to the argument currentTime and cycles and reorders
+ Instructions as necessary.
+
+ The current time to compare the instruction's TimeToExecute against.
+
+
+
+ Forces an update of the PositionedObject's absolute position and rotation values
+ according to its attachment and relative values.
+
+
+ The absolute positions and rotations of Sprites are updated in the
+ Sprite.UpdateDependencies method which is
+ called in the SpriteManager.UpdateDependencies. The SpriteManager.UpdateDependencies is called
+ once per frame by default in the Sprite's regular activity. This method only needs to be called
+ if changes are made after
+ the UpdateDependencies method has been called for that particular frame or if updated
+ positions are needed
+ immediately after relative values or attachments have been changed.
+
+ This method will recur up the hierarchical PositionedObject struture stopping
+ when it hits the top parent.
+
+
+
+
+ Fills the argument list with the instance's parent, grandparent, etc. recursively.
+
+ The list to fill.
+
+
+
+ Resets all properties to their default values and clears the ListsBelongingTo property.
+
+
+
+
+ Resets all properties to their default values.
+
+ Whether the instance should clear its ListsBelongingTo property.
+
+
+
+ Determines whether this is a parent (or grandparent of any level) of the argument
+ PositionedObject
+
+ The PositionedObject to test whether it is lower
+ in the same hiearchical structure.
+ Whether the attachable argument is a child of this instance.
+
+
+
+ Stops all automatic behavior and stores the necessary instructions to
+ resume activity in the argument InstructionList.
+
+ The List to store instructions which are executed to
+ resume activity.
+
+
+
+ Removes this instance from all Lists that it shares two-way
+ relationships with.
+
+
+ FlatRedBall managers use this method in Remove methods.
+
+
+
+
+ Sets the internal storage of the last frame's position and velocity
+ so that the next frame's real velocity and acceleration values will be
+ Vector3.Zero.
+
+
+
+
+ Copies all values related to "Real" values from the argument
+ PositionedObject to this instance.
+
+ The PositionedObject to copy Real values from.
+
+
+
+ Uses the object's absolute position and orientation along with its
+ Parent's orientation and position to update its relative position and orientation.
+
+
+
+
+ Performs the every-frame position and rotation changing activity.
+
+
+ This method does not need to be explicitly called
+ for managed objects such as Sprites and collision shapes.
+ This method is exposed for custom PositionedObjects which
+ are not added to a Manager.
+
+ The amount of time since last frame.
+ Pre-calculated ((secondDifference*secondDifference) ^2) / 2.
+ The last frame secondDifference.
+
+
+
+ Performs the every-frame relative position and relative rotation changing activity.
+
+
+ This method does not need to be explicitly called
+ for managed objects such as Sprites and collision shapes.
+ This method is exposed for custom PositionedObjects which
+ are not added to a Manager.
+
+ The amount of time since last frame.
+ Pre-calculated ((secondDifference*secondDifference) ^2) / 2.
+
+
+
+ Returns a string containing common information about the PositionedObject.
+
+ The string containing the information about this object.
+
+
+
+ Updates the absolute position and rotation using relative values and the Parent PositionedObject.
+
+
+ This method recurs up the hierarchical chain calling UpdateDependencies so that the entire family of
+ PositionedObjects is positioned appropriately.
+
+
+
+
+ Sets the absolute rotation values according to the object's RotationMatrix.
+
+
+
+
+ The list of PositionedObjects that are attached to this instance.
+
+
+
+
+ The List of IAttachableRemovables (containers) that this shares a two-way relationship with.
+
+
+
+
+ The instance's name.
+
+
+
+
+ The PositionedObject that this instance is attached to.
+
+
+
+
+ Whether the parent's rotation should change the object's position.
+
+
+
+
+ Gets and sets whether the parent's rotation should change the object's rotation.
+
+
+
+
+ Gets and sets the X position relative to the instance's parent.
+
+
+ If the instance does not have a parent this property has no effect.
+
+
+
+
+ Gets and sets the Y position relative to the instance's parent.
+
+
+ If the instance does not have a parent this property has no effect.
+
+
+
+
+ Gets and sets the Z position relative to the instance's parent.
+
+
+ If the instance does not have a parent this property has no effect.
+
+
+
+
+ Gets and sets the rate of change of the RelativeX property in units per second.
+
+
+
+
+ Gets and sets the rate of change of the RelativeY property in units per second.
+
+
+
+
+ Gets and sets the rate of change of the RelativeZ property in units per second.
+
+
+
+
+ Gets and sets the rate of change of the RelativeXVelocity property in units per second.
+
+
+
+
+ Gets and sets the rate of change of the RelativeYVelocity property in units per second.
+
+
+
+
+ Gets and sets the rate of change of the RelativeZVelocity property in units per second.
+
+
+
+
+ Gets and sets the rotation on the X axis relative to the instance's parent.
+
+
+
+
+ Gets and sets the rotation on the Y axis relative to the instance's parent.
+
+
+
+
+ Gets and sets the rotation on the Z axis relative to the instance's parent.
+
+
+
+
+ The rotation representing the orientation relative to the instance's Parent.
+
+
+ If the instance does not have a Parent then this property has no effect.
+
+
+
+
+ Gets and sets the rate of change of the RelativeRotationX property in units per second.
+
+
+
+
+ Gets and sets the rate of change of the RelativeRotationY property in units per second.
+
+
+
+
+ Gets and sets the rate of change of the RelativeRotationZ property in units per second.
+
+
+
+
+ The last time Update was called.
+
+
+ This value is set through the TimeManager's CurrentTime property.
+
+
+
+
+ The x rotation of a PositionedObject
+
+
+ This rotates the PositionedObject about the X axis. Rotation is represented in
+ radians. Angles will always be greater than or equal to 0 and less than
+ two times PI. Values outside of these bounds will be regulated by the
+ set property.
+
+ RotationX can be used to flip an image of a PositionedObject, but a PositionedObject should not
+ be flipped during animation (if it is a Sprite). AnimationFrames can be flipped without
+ setting a Sprite's Rotation values.
+
+
+
+
+ The y rotation of a PositionedObject
+
+
+ This rotates the PositionedObject about the Y axis. Rotation is represented in
+ radians. Angles will always be greater than or equal to 0 and less than
+ two times PI. Values outside of these bounds will be regulated by the
+ set property.
+
+ RotationY can be used to flip an image and set it upside down, but a PositionedObject
+ should not be flipped during animation (if it is a Sprite). AnimationFrames can be flipped without
+ setting a Sprite's Rotation values.
+
+
+
+
+ The z rotation of a PositionedObject
+
+
+ This rotates the PositionedObject about the Z axis. Rotation is represented in
+ radians. Angles will always be greater than or equal to 0 and less than
+ two times PI. Values outside of these bounds will be regulated by the
+ set property.
+
+ RotationZ can be used to "spin" a PositionedObject, with a positive variable spinning
+ clockwise.
+
+
+
+
+ The matrix applied to the object resulting in its final orientation.
+
+
+ The RotationMatrix and RotationX, RotationY, RotationZ reflect eachother. Changing one will change the other.
+
+
+
+
+
+
+
+ Gets or sets the overall transformation of this object
+
+
+ Changing the transformation matrix will change rotation, position and scaling
+
+
+
+
+ Gets or sets the overall transformation of this object, relative to its parent
+
+
+ Changing the transformation matrix will change rotation, position and scaling
+
+
+
+
+ The absolute X rotation speed measured in radians per second
+
+
+ The RotationXVelocity variable is how fast a PositionedObject is rotating on the X axis. It is
+ measured in radians per second.
+
+
+
+
+ The absolute Y rotation speed measured in radians per second
+
+
+ The RotationYVelocity variable is how fast a PositionedObject is rotating on the Y axis. It is
+ measured in radians per second.
+
+
+
+
+ The absolute Z rotation speed measured in radians per second
+
+
+ The RotationZVelocity variable is how fast a PositionedObject is rotating on the Z axis. It is
+ measured in radians per second.
+
+
+
+
+
+ Returns the top node in the attachment hierarchical relationship
+
+
+
+
+ The absolute X position.
+
+
+
+
+ The absolute Y position.
+
+
+
+
+ The absolute Z position.
+
+
+
+
+ Gets and sets the absolute X Velocity. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Y Velocity. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Z Velocity. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute X Acceleration. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Y Acceleration. Meausred in units per second.
+
+
+
+
+ Gets and sets the absolute Z Acceleration. Meausred in units per second.
+
+
+
+
+ Whether the PositionedObject's RealVelocity and RealAcceleration are
+ updated every frame.
+
+
+
+
+ Linear approximation of drag. This reduces the Velocity of the
+ instance according to its absolute Velocity.
+
+
+ The following formula is applied to apply Drag:
+
+ Velocity -= Velocity * Drag * TimeManager.SecondDifference;
+
+
+
+
+
+
+ The list of Instructions that this instance owns. These instructions usually
+ will execute on this instance; however, this is not a requirement.
+
+
+
+
+ Begins playback of this sound, or resumes playback (if it has been paused)
+
+
+
+
+ Pauses playback of this sound
+
+
+
+
+ Stops playing this sound immediately
+
+
+
+
+ Stops playing this sound as authored in the XACT project
+
+
+
+
+ Stops playing this sound immediately
+
+
+
+
+ Gets or sets a scalar applied to the level of Doppler effect calculated
+ between this sound and a listener.
+
+
+
+
+ Used to manage variables in a sound
+
+
+
+
+ Begins playback of this sound, or resumes playback (if it has been paused)
+
+
+
+
+ Pauses playback of this sound
+
+
+
+
+ Stops playing this sound as authored
+
+
+
+
+ Stops playing this sound immediately
+
+
+
+
+ Stops playing this sound as authored in the XACT project
+
+
+
+
+ Sets the aspectRatio to match the width/height of the area that the camera is drawing to.
+
+
+ This is usually used in applications with split screen or when on a widescreen display.
+
+
+
+
+ Determines if the X value is in view, assuming the camera is viewing down the Z axis.
+
+
+ Currently, this method assumes viewing down the Z axis.
+
+ The absolute X position of the point.
+ The absolute Z position of the point.
+
+
+
+
+ Determines if the Y value is in view, assuming the camera is viewing down the Z axis.
+
+
+ Currently, this method assumes viewing down the Z axis.
+
+ The absolute Y position of the point.
+ The absolute Z position of the point.
+
+
+
+
+ Returns the number of pixels per unit at the given absolute Z value. Assumes
+ that the Camera is unrotated.
+
+
+ If using the PixelsPerUnitAt for a rotated camera, use the overload which
+ takes a Vector3 argument.
+
+ The absolute Z position.
+ The number of pixels per world unit (perpendicular to the camera's forward vector).
+
+
+
+ Sets the camera to Orthogonal, sets the OrthogonalWidth and
+ OrthogonalHeight to match the argument values, and can move the
+ so the bottom-left corner of the screen is at the origin.
+
+ Whether the camera should be repositioned
+ so the bottom left is at the origin.
+ The desired unit width of the view.
+ The desired unit height of the view.
+
+
+
+ Whether or not lighting is enabled for this camera
+
+
+
+
+ Adds a layer to the Camera. This method does not remove layers that already
+ exist in the SpriteManager.
+
+ The layer to add.
+
+
+
+ Supplied sprites are billboarded using the camera's RotationMatrix.
+
+
+
+
+ Supplied Sprites are billboarded using the camera's RotationMatrix.
+
+
+
+
+ Removes all visibility borders.
+
+
+
+
+
+ Moves a Sprite so that it remains fully in the camera's view.
+
+
+ This method does not consider Sprite rotation, negative scale, or situations
+ when the camera is not looking down the Z axis.
+
+ The Sprite to keep in view.
+
+
+
+ Positiones the argument positionable randomly in camera between the argument bounds.
+
+
+ Assumes the camera is viewing down the Z plane - it is unrotated.
+
+ The object to reposition.
+ The closest possible distance from the camera.
+ The furthest possible distance from the camera.
+
+
+
+ Removes the argument Layer from this Camera. Does not empty the layer or
+ remove contained objects from their respective managers.
+
+ The layer to remove
+
+
+
+ Sets the visible borders when the camera is looking down the Z axis.
+
+
+ This sets visibility ranges for the camera. That is, if the camera's maximumX is set to 100 at a zToSetAt of
+ 0, the camera will never be able to see the point x = 101, z = 0. The camera imposes these limitations
+ by calculating the actual minimum and maximum values according to the variables passed. Also,
+ the camera keeps track of these visible limits and readjusts the mimimum and maximum values
+ when the camera moves in the z direction. Therefore, it is only necessary to set these
+ values once, and the camera will remeber that these are the visibility borders, regardless of
+ its position. It is important to note that the visiblity borders can be violated if they are too
+ close together - if a camera moves so far back that its viewable area at the set Z is greater than
+ the set minimumX and maximumX range, the camera will show an area outside of this range.
+
+
+ The minimum x value of the visiblity border.
+ The minimum y value of the visiblity border.
+ The maximum x value of the visiblity border.
+ The maximum y value of the visiblity border.
+ The z value of the plane to use for the visibility border.
+
+
+
+ Copies all fields from the argument to the camera instance.
+
+
+ This method will not copy the name, InstructionArray, or children PositionedObjects
+ (objects attached to the cameraToSetTo).
+
+ The camera to clone.
+
+
+
+ Sets the viewport for this camera to a standard split-screen viewport
+
+ The viewport to use for this camera
+
+
+
+ Calculates the minimum and maximum X values for the camera based off of its
+ base values (such as mBaseMaximumX) and its current view
+
+
+
+
+ Updates the destination rectangle (for the viewport). Also fixes the aspect ratio.
+
+
+
+
+ Gets and sets the top side of the destination rectangle (where on the window
+ the camera will display). Measured in pixels. Destination uses an inverted Y (positive points down).
+
+
+
+
+ Gets and sets the bottom side of the destination rectangle (where on the window
+ the camera will display). Measured in pixels. Destination uses an inverted Y (positive points down).
+
+
+
+
+ Gets and sets the left side of the destination rectangle (where on the window
+ the camera will display). Measured in pixels.
+
+
+
+
+ Gets and sets the right side of the destination rectangle (where on the window
+ the camera will display). Measured in pixels.
+
+
+
+
+ Represents the top left justified area the Camera will draw over.
+
+
+ This represents the area in pixel coordinates that the camera will display relative
+ to the top left of the owning Control. If the Control is resized, the camera should modify
+ its DestinationRectangle to match the new area.
+
+
+ Multiple cameras with different DestinationRectangles can be used to display split screen
+ or picture-in-picture.
+
+
+
+
+
+ The width/height of the view of the camera
+
+
+ This determines the ratio of the width to height of the camera. By default, the aspect ratio is 4/3,
+ but this should be changed for widescreen monitors or in situations using multiple cameras. For example, if
+ a game is in split screen with a vertical split, then each camera will show the same height, but half the width.
+ The aspect ratio should be 2/3.
+
+
+
+
+ Whether the camera draws its layers.
+
+
+
+
+ Whether the Camera draws world objects (objects not on the Camera's Layer)
+
+
+
+
+ Whether the Camera draws shapes
+
+
+
+
+ The Y field of view of the camera in radians. Field of view represents the
+ Y angle from the bottom of the screen to the top.
+
+
+ This modifies the xEdge and yEdge properties. Default value is (float)Math.PI / 4.0f;
+
+
+
+
+ A Camera-specific layer. Objects on this layer will not appear
+ in any other cameras.
+
+
+ This instance is automatically created when the Camera is instantiated.
+
+
+
+
+ A class containing options used when programatically generating a "Save" class.
+
+
+
+
+
+
+
+ An XML-Serializable object representing the state of a Link.
+
+
+
+
+ Save class for the PositionedNode class. This class is used in the
+ .nntx (Node Network XML) file type.
+
+
+
+
+ Reader class used in the FlatRedBall Content Pipeline to convert compiled
+ AnimationChainLists to the runtime instances.
+
+
+
+
+ Base class for AnimationChainListSave and AnimationChainListSaveContent.
+
+
+
+
+ Create a "save" object from a regular animation chain list
+
+
+
+
+ The base class for AnimationChainSave and AnimationChainSaveContent.
+
+
+
+
+ This is used if the AnimationChain actually comes from
+ a file like a .gif.
+
+
+
+
+ The base class for AnimationFrameSave and AnimationFrameSaveContent.
+
+
+
+
+ Whether the texture should be flipped horizontally.
+
+
+
+
+ Whether the texture should be flipped on the vertidally.
+
+
+
+
+ Used in XML Serialization of AnimationChains - this should
+ not explicitly be set by the user.
+
+
+
+
+ The amount of time in seconds the AnimationFrame should be shown for.
+
+
+
+
+ The left coordinate in texture coordinates of the AnimationFrame. Default is 0.
+
+
+
+
+ The right coordinate in texture coordinates of the AnimationFrame. Default is 1.
+
+
+
+
+ The top coordinate in texture coordinates of the AnimationFrame. Default is 0.
+
+
+
+
+ The bottom coordinate in texture coordinates of the AnimationFrame. Default is 1.
+
+
+
+
+ The relative X position of the object that is using this AnimationFrame. This
+ is only applied if the IAnimationChainAnimatable's UseAnimationRelativePosition is
+ set to true.
+
+
+
+
+ The relative Y position of the object that is using this AnimationFrame. This
+ is only applied if the IAnimationChainAnimatable's UseAnimationRelativePosition is
+ set to true.
+
+
+
+
+ ContentLoadBatch allows for batch loading of resources through the Content Pipeline as well as from file. Loading can be asynchronous if
+ specified by using the LoadAsync method.
+
+
+
+
+ Removes an IDisposable from the ContentManager. This method does not call Dispose on the argument Disposable. It
+ must be disposed
+
+ The IDisposable to be removed
+
+
+
+ This class will be instantiated by the XNA Framework Content
+ Pipeline to read the specified data type from binary .xnb format.
+
+ Unlike the other Content Pipeline support classes, this should
+ be a part of your main game project, and not the Content Pipeline
+ Extension Library project.
+
+
+
+
+ This class will be instantiated by the XNA Framework Content
+ Pipeline to read the specified data type from binary .xnb format.
+
+ Unlike the other Content Pipeline support classes, this should
+ be a part of your main game project, and not the Content Pipeline
+ Extension Library project.
+
+
+
+
+ Matches the marked member with the member to set when this instance is loaded through
+ the content pipeline. This attribute is usually applied to ExternalReference objects.
+
+
+
+
+ Save class which stores AnimationSequence information.
+
+
+
+
+ The file that this InstructionSetSave was deserialized from.
+
+
+
+
+ An XML serializable list of InstructionSetSaves.
+
+
+
+
+ Save class for a Keyframe (A list of Instructions).
+
+
+
+
+ A savable class containing the information for a MemberCondition.
+
+ The type of the property to be compared.
+
+
+
+ A savable reference to a TimedKeyframe. This does not actually store the contents
+ of the TimedKeyframe; instead it stores a string reference.
+
+
+
+
+ Save class storing SpotLight information
+
+
+
+
+ This class will be instantiated by the XNA Framework Content
+ Pipeline to read the specified data type from binary .xnb format.
+
+ Unlike the other Content Pipeline support classes, this should
+ be a part of your main game project, and not the Content Pipeline
+ Extension Library project.
+
+
+
+
+ Delegate representing the method that is to be called for a property to be mapped.
+ This can be applied by specific type or by generic type.
+
+ The member info of the object being mapped.
+ The instance being mapped.
+
+
+
+ This class will be instantiated by the XNA Framework Content
+ Pipeline to read the specified data type from binary .xnb format.
+
+ Unlike the other Content Pipeline support classes, this should
+ be a part of your main game project, and not the Content Pipeline
+ Extension Library project.
+
+
+
+
+ Deserializes a file into a new ShapeCollectionSave and returns it.
+
+ The absolute or relative file name. If the file name is relative, then the FileManager's RelativeDirectory will be used.
+ The newly-created ShapeCollectionSave.
+
+
+
+ A savable representation of a Spline. This is used in SplineSaveLists.
+
+
+
+
+ Save class for lists of Splines.
+
+
+
+
+ Represents the base class for saving material information.
+
+
+ This class is used as the base class for the MaterialSave class. This is used
+ as the base class for MaterialSave (runtime save class) and MaterialSaveContent
+ (content pipeline class).
+
+
+
+
+ The ordered list of effects to apply to Models.
+
+
+ The ordering is performed by Mesh and by MeshPart. That is, if there were
+ a PositionedModel with multiple Meshes and multiple MeshParts per mesh, then
+ the application might go as follows:
+
+ model.Mesh[0].MeshPart[0].Effect = EffectFrom(EffectFiles[0]);
+ model.Mesh[0].MeshPart[1].Effect = EffectFrom(EffectFiles[1]);
+ model.Mesh[1].MeshPart[0].Effect = EffectFrom(EffectFiles[2]);
+ model.Mesh[1].MeshPart[1].Effect = EffectFrom(EffectFiles[3]);
+ model.Mesh[1].MeshPart[2].Effect = EffectFrom(EffectFiles[4]);
+ // And so on
+
+
+
+
+
+ The ordered list of EffectParameterLists to apply.
+
+
+ See the EffectFiles documentation for an example of the order in which
+ the EffectParameterFiles are applied.
+
+
+
+
+
+ The .matx file that this instance was created from if created from a file.
+
+
+ The MaterialSaveBase stores its source file name so that it can re-save itself
+ easily if it is embedded in another file like a .scnx file.
+
+
+
+
+ Model Material Desicribes the Material to use for a Model Mesh Part.
+
+
+
+
+ Model Material Desicribes the Material to use for a Model Mesh Part.
+
+ The texture file name of the location of the texture to use
+ The diffuse color to use when no Texture is to be used.
+ The Color of the specular highlighting
+ The Color of the ModelMesh part will emit
+ The amount of Specular Color to Show.
+ How "Shiny" the specularity will be.
+
+
+
+ The File name and location of the texture file to use, when setting the Texture on the
+ ModelMeshes Default Effect.
+
+
+
+
+ The Default Diffuse Color to use, when No Texture is Available for the Mesh Part.
+
+
+
+
+ The Default Specular Color to use.
+
+
+
+
+ The Default Emissive Color to use.
+
+
+
+
+ The Amount of power to force the Specular Color to use, within the ModelMeshes Default Effect.
+
+
+
+
+ The Shininess of the Specular Color within the ModelMeshes Default Effect.
+
+
+
+
+ The Material ID, that is within the Models Effect Collection
+
+
+
+
+ Save class for information about ModelMeshes. This contains a list of ModelMeshPartSaves.
+
+
+
+
+ Class used to read a NodeNetwork through the content pipeline.
+
+
+
+
+ Used to perform methods defined in a MappingMethods class on properties within a class.
+
+
+ The ObjectMapper can be used to perform tasks like code generation and serialization of objects.
+
+
+
+
+ Pass an object and a MappingMethods and MapObject will map each member in that object to the corresponding
+ method from the mappingMethods.
+
+ object whose members will be called on.
+ MappingMethods which has dictionaries of members/methods.
+
+
+
+ Class used by the FlatRedBall pipeline to read in XNBs.
+
+
+
+
+ Save class for the EmissionSettings class. This class is used
+ in the .emix (Emitter XML) file.
+
+
+
+
+ Base class for EmitterSave and EmitterSaveContent.
+
+ The type for the ParticleBlueprint. This should be or inherit SpriteSaveBase.
+
+
+
+ Stores the source .emix file name. This
+ is set if an EmitterSaveList is loaded from file.
+
+
+
+
+ Returns a List of files referenced by this.
+
+ Whether the files should be absolute or relative.
+ The list of referenced files.
+
+
+
+ This class will be instantiated by the XNA Framework Content
+ Pipeline to read the specified data type from binary .xnb format.
+
+ Unlike the other Content Pipeline support classes, this should
+ be a part of your main game project, and not the Content Pipeline
+ Extension Library project.
+
+
+
+
+ Save class storing information for a BitmapFont.
+
+
+
+
+ The "save" class for HeightMaps used for XML serialization/deserialization.
+
+
+
+
+ An XML Serializable class representing the state of a Text.
+
+
+
+
+ Base class for TextSave and TextSaveContent.
+
+
+
+
+ Class used to read Scenes from XNB files. This class is used when
+ loading Scenes through the content pipeline.
+
+
+
+
+ An XML serializable "Save" class which can be included in other Save classes to store Camera information.
+
+
+
+
+ The absolute X position.
+
+
+
+
+ The absolute Y position.
+
+
+
+
+ The absolute Z position.
+
+
+
+
+ Whether the Camera is using an orthogonal projection matrix. If this is false, the Camera is using a perspective projection matrix.
+
+
+
+
+ The orthogonal height of the camera's view.
+
+
+
+
+ Creates a new CameraSave. This is used by the XmlSerializer when deserializing an XML.
+ Usually CameraSaves are created using the FromCamera static method.
+
+
+
+
+ Creates a new CameraSave instance using members from the passed Camera argument.
+
+ The Camera to copy properties from.
+
+
+
+ Sets the argument Camera's properties to the properties stored in this CameraSave.
+
+
+ Usually "Save" classes include a To[RuntimeType] method. The CameraSave does not follow
+ this pattern because it's most common that a CameraSave is loaded when a Camera is already
+ created by the engine. In this case, it's not very convenient to have to destroy the existing
+ Camera and replace it by a new instance. Instead, the SetCamera method will simply set the properties
+ on an existing Camera
+
+ The Camera to set the properties on.
+
+
+
+ This is the class that is serialized and deserialized to/from the XML file representing a scene.
+
+
+
+
+ DynamicSpriteList for compatability with FlatRedBall Managed DirectX.
+
+
+ The DynamicSpriteList and SpriteList will be combined into one list later
+ in the content pipeline.
+
+
+
+
+ This class will be instantiated by the XNA Framework Content
+ Pipeline to read the specified data type from binary .xnb format.
+
+ Unlike the other Content Pipeline support classes, this should
+ be a part of your main game project, and not the Content Pipeline
+ Extension Library project.
+
+
+
+
+ Class that defines a source and destination file relationship. This can be used
+ by tools (such as Glue) which maintain the source/destination relationship between files.
+
+
+
+
+ The source file - the file which will be built to create the destination.
+
+
+
+
+ The destination file - the file which will be created when the source is built.
+
+
+
+
+ Instantiates a new SourceReferencingFile instance.
+
+
+
+
+ Instantiates a new SourceReferencingFile instance using the argument source and destination files.
+
+ The source file name to use.
+ The destination file name to use.
+
+
+
+ Serves as the base class for SpriteFrameSave and SpriteFrameSaveContent.
+
+ The type of the ParentSprite. This is generic because
+ for SpriteFrameSave the generic type is SpriteSave, but for SpriteFrameSaveContent the
+ generic type is SpriteSaveContent.
+
+
+
+ The BorderSides that this instance represents.
+
+
+
+
+
+
+
+ The SpriteSaveBase that stores most of the Properties for the SpriteSave.
+
+
+ The SpriteSaveBase is used as a storage of properties because nearly all of its
+ properties are also used by SpriteFrames. Therefore, to prevent a lot of copy/paste,
+ this class is used to store properties.
+
+
+
+
+ Base class for SpriteGridSave and SpriteGridSaveContent.
+
+ The type of the blueprint.
+
+
+
+ Specifies the grid to use.
+
+
+ If the grid is 'y', use an XY grid. Otherwise an XZ.
+
+
+
+
+ The name of the SpriteGridSave.
+
+
+
+
+ This is used by the content pipeline to know which directory to look in
+ for Textures. Otherwise this variable is unused.
+
+
+
+
+ Constructs a new PoseChain.
+
+
+
+
+ Appends the argument Pose to the PoseChain then sorts the contained Poses by time.
+
+ The pose to add
+ The index of the newly-added pose.
+
+
+
+ [OBSOLETE] Gets the pose at the argument index.
+
+ The index of the pose to get.
+ The pose at the argument index.
+
+
+
+ Returns the number of Poses in the current PoseChain.
+
+
+
+
+ Inserts a pose at the argument Index.
+
+
+ Unlike the Add method, this method does not sort the
+ PoseChain after the addition. However, if Add is called
+ at a later time the PoseChain will be sorted.
+
+ The index where the pose should be inserted.
+ The pose to insert.
+
+
+
+ Removes the argument Pose from the PoseChain.
+
+ The pose to be removed.
+
+
+
+ Sorts the contained Poses by their time.
+
+
+
+
+ Returns information about the PoseChain.
+
+ The string info about the argument PoseChain.
+
+
+
+ Provides indexer access to the contained Poses.
+
+ The index of the Pose to get.
+ The pose at the specified index.
+
+
+
+ Gets the number of Poses contained in the PoseChain.
+
+
+
+
+ Provides access to the contained Poses.
+
+
+
+
+ The Name of the PoseChain.
+
+
+
+
+ The game time in systems when the Animation has been started.
+
+
+
+
+ Gets total length in seconds of the PoseChain.
+
+
+
+
+ Reader class used in the FlatRedBall Content Pipeline to convert compiled
+ SpriteRigs to the runtime instances.
+
+
+
+
+ Reads a sprite rig from a ContentReader
+
+
+
+
+
+
+
+ Class used by FlatRedBall to read Sprites out of a .XNB file when used
+ read in through the content pipeline. This is used when deserializing Scenes.
+
+
+
+
+ Base class for SpriteRigSave and SpriteRigSaveContent.
+
+ The type of the Sprite. Can be SpriteSave or SpriteSaveContent.
+
+
+
+ The name of the Root sprite of the SpriteRig.
+
+
+
+
+ Whether the root is visible - often used for debugging or in tools
+
+
+
+
+ Whether joints are visible - often used for debugging or in tools.
+
+
+
+
+ Whether the assets referenced by the SpriteRigSaveBase should be serialized as relative to file.
+
+
+
+
+ Whether the SpriteRigSaveBase uses a right-handed coordinate system.
+
+
+
+
+ The TimeMeasurementUnit used by the SpriteRigSaveBase.
+
+
+
+
+ The file name for this SpriteRigSaveBase
+
+
+
+
+ Instantiates a new SpriteRigSave.
+
+
+
+
+
+
+
+
+
+ Returns a list of files referenced by this instance.
+
+ Whether the returned files should be absolute or relative.
+ All referenced files.
+
+
+
+ Saves this file to a XML file on disk.
+
+ The name of the file to save to.
+
+
+
+ Loads the argument file and converts it to a SpriteRigSave.
+
+ The file to load.
+ The loaded file.
+
+
+
+ Converts this to a SpriteRig using the contentManagerName.
+
+ The content manager to use when loading referenced files.
+ The resulting SpriteRig.
+
+
+
+ This class will be instantiated by the XNA Framework Content
+ Pipeline to read the specified data type from binary .xnb format.
+
+ Unlike the other Content Pipeline support classes, this should
+ be a part of your main game project, and not the Content Pipeline
+ Extension Library project.
+
+
+
+
+ Interface for an object which provides a visual interface for viewing and editing
+ an instance. This is the base type for PropertyGrids and ListDisplayWindows.
+
+
+
+
+ Exposes the object that is being displayed (casted as an object).
+ This exists so that a list of IObjectDisplayers has access to the
+ object displaying. This should be explicitly implemented.
+
+
+
+
+ Container class implements the IServiceProvider interface. This is used
+ to pass shared services between different components, for instance the
+ ContentManager uses it to locate the IGraphicsDeviceService implementation.
+
+
+
+
+ This is *NOT* secure, keys in code can easily be obtained by disassembling the game.
+
+
+
+
+ Used to initialize FlatRedBall without rendering anything to the screen
+
+ The game
+
+
+
+ Used to initialize FlatRedBall with a game
+
+ The game
+ The graphics device manager
+
+
+
+ Used to initialize FlatRedBall with a game and graphics options
+
+ The game
+ The graphics device manager
+ The graphics options to use for this game
+
+
+
+ Used to intialize FlatRedBall without a game object (e.g. in windows forms projects)
+
+ The graphics device service
+ The window handle
+
+
+
+ Used to intialize FlatRedBall without a game object (e.g. in windows forms projects) and with graphics options
+
+ The graphics device service
+ The window handle
+ The graphics options
+
+
+
+ Basic initialization steps (commond to all initialization methods)
+
+
+
+
+ Attempts to replace the texture. Will only work if the texture is loaded from file.
+
+ Reference to the old texture
+ Reference to the new texture
+ The name of the content manager containing the texture
+
+
+
+ The update method for command line games. Does not render anything to the screen
+
+ The GameTime
+
+
+
+ Calls UpdateDependencies on all contained managers.
+
+
+
+
+ Salt value that is combined with the EncryptionKey string for generating encryption keys
+
+
+
+
+ Password to use for decrypting files (set this to the appropriate value before attempting to load any CSV files that were encrypted in the content pipeline)
+
+
+
+
+ Represents a collection of AnimationFrames which can be used to perform
+ texture flipping animation on IAnimationChainAnimatables such as Sprites.
+
+
+
+
+ Creates an empty AnimationChain.
+
+
+
+
+ Creates a new AnimationChain with the argument capacity.
+
+ Sets the initial capacity. Used to reduce memory allocation.
+
+
+
+ Searches for and returns the AnimationFrame with its Name matching
+ the nameToSearchFor argument, or null if none are found.
+
+ The name of the AnimationFrame to search for.
+ The AnimationFrame with matching name, or null if none exists.
+
+
+
+ Returns the shortest absolute number of frames between the two argument frame numbers. This
+ method moves forward and backward and considers looping.
+
+ The index of the first frame.
+ The index of the second frame.
+ The positive or negative number of frames between the two arguments.
+
+
+
+ Sets the frameTime of each AnimationFrame in the AnimationChain to the passed value.
+
+
+
+
+ Gets the last AnimationFrame of the AnimationChain or null if
+ there are no AnimationFrames.
+
+
+
+
+ The name of the AnimationChain.
+
+
+
+
+ Returns the sum of the FrameLengths of all contained AnimationFrames.
+
+
+
+
+ A list of AnimationChains.
+
+
+ This class is often used by IAnimationChainAnimatables to store a list of
+ AnimationChains. Since the AnimationChainList provides a string indexer, it
+ is common to get a reference to an AnimationChain by its name and set it as the
+ IAnimationChainAnimatable's current AnimationChain.
+
+
+
+
+ Instantiates a new AnimationChainList.
+
+
+
+
+ Instantiates a new AnimationChainList.
+
+ Sets the initial capacity to reduce memory allocation when subsequently calling Add.
+
+
+
+ Gets and sets whether the AnimationChainList will save the
+ Texture2Ds that its AnimationFrames reference with names relative
+ to the .achx. Otherwise, this property is not used during runtime.
+
+
+
+
+ Gets or sets the TimeMeasurementUnit. This defaults to TimeMeasurementUnit.Millisecond and
+ should not be changed. It is included for compatability with older versions of FlatRedBall.
+
+
+
+
+ Gets and sets the intance's name.
+
+
+
+
+ Gets the AnimationChain by name. Returns null if no AnimationChain is found.
+
+ The name of the AnimationChain to return
+ Reference to the AnimationChain with the specified name.
+
+
+
+ Stores information about one frame in a texture-flipping animation.
+
+
+ Includes
+ information about which Texture2D to show, whether the Texture2D should be flipped,
+ the length of time to show the Texture2D for, texture coordinates (for sprite sheets), and
+ relative positioning.
+
+
+
+
+ Empty AnimationFrame.
+
+
+
+
+ The texture that the AnimationFrame will show.
+
+
+
+
+ Whether the texture should be flipped horizontally.
+
+
+
+
+ Whether the texture should be flipped on the vertidally.
+
+
+
+
+ Used in XML Serialization of AnimationChains - this should
+ not explicitly be set by the user.
+
+
+
+
+ The amount of time in seconds the AnimationFrame should be shown for.
+
+
+
+
+ The left coordinate in texture coordinates of the AnimationFrame. Default is 0.
+
+
+
+
+ The right coordinate in texture coordinates of the AnimationFrame. Default is 1.
+
+
+
+
+ The top coordinate in texture coordinates of the AnimationFrame. Default is 0.
+
+
+
+
+ The bottom coordinate in texture coordinates of the AnimationFrame. Default is 1.
+
+
+
+
+ The relative X position of the object that is using this AnimationFrame. This
+ is only applied if the IAnimationChainAnimatable's UseAnimationRelativePosition is
+ set to true.
+
+
+
+
+ The relative Y position of the object that is using this AnimationFrame. This
+ is only applied if the IAnimationChainAnimatable's UseAnimationRelativePosition is
+ set to true.
+
+
+
+
+ Creates a new AnimationFrame.
+
+
+
+
+ Creates a new AnimationFrame.
+
+ The Texture2D to use for this AnimationFrame.
+ The amount of time in seconds that this AnimationFrame will display for when
+ it is used in an AnimationChain.
+
+
+
+ Creates a new AnimationFrame.
+
+ The string name of the Texture2D to use for this AnimationFrame.
+ This will be loaded through the content pipeline using the arugment contentManagerName.
+ The amount of time in seconds that this AnimationFrame will display for when
+ it is used in an AnimationChain.
+ The content manager name to use when loading the Texture2D .
+
+
+
+ Creates a new AnimationFrame with identical properties. The new AnimationFrame
+ will not belong to the AnimationChain that this AnimationFrameBelongs to unless manually
+ added.
+
+ The new AnimationFrame instance.
+
+
+
+ Returns a string representation of this.
+
+ String representation of this.
+
+
+
+ Represents an object that can use AnimationChains for texture-flipping animation.
+
+
+
+
+ Whether animation is currently turned on.
+
+
+
+
+ Gets all animations stored in this.
+
+
+
+
+ Gets and sets how fast AnimationChains will animate. Default is 1. A value
+ of 2 will result in AnimationChains animating twice as fast.
+
+
+
+
+ Gets and sets the index of the current AnimationChain.
+
+
+
+
+ Gets the current AnimationChain.
+
+
+
+
+ Gets the name of the current AnimationChain or sets the current AnimationChain by name.
+
+
+
+
+ Gets and sets the current AnimationFrame index.
+
+
+
+
+ Gets whether the current AnimationFrame just changed this frame due to animation.
+
+
+
+
+ Gets whether the current AnimationChain just cycled (looped) this frame due to animation.
+
+
+
+
+ Whether the current AnimationFrame's relative position values (RelativeX and RelativeY) are applied
+ when animating.
+
+
+
+
+ Larger comes first.
+
+ The first instance.
+ The second instance.
+ -1 if the first comes first, 1 if the second comes first, 0 if they're equal.
+
+
+
+ Used to draw assets
+ Batch is sorted by Z with sprites and text
+
+ The currently drawing camera
+
+
+
+ Used to update the drawable batch
+
+
+
+
+ Used to destroy any assets that need to be destroyed
+
+
+
+
+ The X value to use for sorting. This does NOT affect the position
+ of objects drawn by the DrawableBatch.
+
+
+
+
+ The Y value to use for sorting. This does NOT affect the position
+ of objects drawn by the DrawableBatch.
+
+
+
+
+ The Z value to use for sorting. This does NOT affect the position
+ of objects drawn by the DrawableBatch.
+
+
+
+
+ Whether or not this batch should be updated
+
+
+
+
+ Caches effects and effect parameters
+
+
+
+
+ Initializes parameter name strings
+
+
+
+
+ Whether or not shared parameters should be cached
+
+
+
+
+ The model cached, if any
+
+
+
+
+ The effect cached, if any
+
+
+
+
+ Caches all effect parameters for faster lookup, by effect
+
+
+
+
+ Caches all effect parameters for faster lookup, by parameter name
+
+
+
+
+ Caches all effects
+
+
+
+
+ Caches all enumerated effect parameters
+
+
+
+
+ Gets the specified technique from the specified effect, or null if no technique by that name exists
+
+ The effect
+ The name of the technique
+ The technique requested, or null if not found
+
+
+
+ Caches an effect's parameters
+
+ The effect to cache
+ Whether or not shared parameters should be cached
+
+
+
+ Caches an model's effects and effect parameters
+
+ The model to cache
+ Whether or not shared parameters should be cached
+
+
+
+ Adds an effect to the cache
+
+ The effect to cache
+
+
+
+ Recreates the cache
+
+
+
+
+ Validates the cached model/effect to make sure it hasn't changed
+
+ Whether or not the cache should be updated if found invalid
+ Whether or not the cache was valid
+
+
+
+ Whether or not shared parameters should be cached
+
+
+
+
+ Gets a list of cached effects
+
+
+
+
+ Gets a list of parameters of the specified name
+
+ The name of the parameters to retrieve
+ A list of parameters (or null if name not found)
+
+
+
+ Retrieves all parameters of one of the standard types
+
+ The name of the parameter
+ A list of parameters (or null if shared params aren't cached)
+
+
+
+ Gets a parameter in a specified effect
+
+ The effect
+ The parameter name
+ The parameter, or null if either effect or parameter not found
+
+
+
+ A container for an effect that maintains variable values
+
+
+
+
+ The effect managed by this effect container
+
+
+
+
+ Creates an effect container
+
+ The path to the effect file to use in this container
+
+
+
+ Creates an effect container
+
+ The path to the effect file to use in this container
+ The name of the content manager to use to load this effect
+
+
+
+ Creates an effect container
+
+ The effect to use in this container
+
+
+
+ Sets all the parameters in addition to the ones in the effect itself.
+
+
+
+
+ Private members
+
+
+
+
+ Constructor
+
+
+
+
+ Builds the precedence table, determines
+ the effect
+
+
+
+
+ Sets the current technique to the one named.
+
+
+
+
+
+ Gets the internal effect
+
+ Should the parameters be set
+ The effect for this GenericEffect
+
+
+
+ Returns a technique based on the index provided.
+ Will set the parameters for this effect;
+
+ The index into the Technique List
+ Should we set the parameters
+ The EffectTechnique requested
+
+
+
+ Get the current technique
+
+ Should we set the parameters this call
+ The current effect
+
+
+
+ Determine's which of the four shaders this instance will use
+
+
+
+
+ Set the parameters for Basic Shader
+
+
+
+
+ Sets the parameters for the dual texture effect
+
+
+
+
+ Sets the parameters for the environment map effect
+
+
+
+
+ Sets the parameters for the skinned effect
+
+
+
+
+ Pass common information to the graphics device
+
+
+
+
+ Destroy this object
+
+
+
+
+ Needs to be implemented by the IEffectLight child
+
+
+
+
+ Properties inherited from the interfaces
+
+
+
+
+ Class properties
+
+
+
+
+ The texture loading color key
+
+
+
+
+ Set to true to suspend device reset while loading from file
+
+
+
+
+ Sets the resolution
+
+ The new width
+ The new height
+
+
+
+ Sets the display mode to full-screen and sets the resolution
+
+ The new width
+ The new height
+
+
+
+ Suspends the device reset when options are changed
+
+
+
+
+ Resumes the device reset when options are changed
+
+
+
+
+ Resets the device
+
+
+
+
+ Sets the presentation parameters
+
+ The structure to set parameters in
+
+
+
+ Save the graphics options to a file
+
+ The file name of the graphics options file
+
+
+
+ Load the graphics options from file
+
+ The file name of the graphics options file
+
+
+
+ Gets or sets the current texture filter
+
+
+
+
+ Sets the width of the backbuffer and resets the device
+ Use SetResolution() to set both width and height simultaneously
+
+
+
+
+ Sets the height of the backbuffer and resets the device
+ Use SetResolution() to set both width and height simultaneously
+
+
+
+
+ Gets or sets the background color of all cameras
+
+
+
+
+ Sets the display mode to full screen
+ Use SetFullScreen() to set the full-screen resolution and full-screen simultaneously
+
+
+
+
+ Enables or disables multisampling
+
+
+
+
+ Provides an interface for objects which can be have their appearance
+ modified by alpha and color values using a variety of operations.
+
+
+
+
+ The alpha value to use with the BlendOperation.
+
+
+
+
+ The red value to use with the ColorOperation.
+
+
+
+
+ The green value to use with the ColorOperation.
+
+
+
+
+ The blue value to use with the color operation.
+
+
+
+
+ The rate of change of the alpha component in units per second. A negative value will make the object disappear over time.
+
+
+
+
+ The rate of change of the red component in units per second.
+
+
+
+
+ The rate of change of the green component in units per second.
+
+
+
+
+ The rate of change of the blue component in units per second.
+
+
+
+
+ The color operation to perform using the color component values and
+ Texture (if available).
+
+
+
+
+ The blend operation to perform using the alpha component value and
+ Texture (if available).
+
+
+
+ Provides a Destroy method, generally used by Glue generated classes
+
+
+
+ Interface for an object which has visibility control.
+
+
+
+
+ Layers are objects which can contain other graphical objects for drawing. Layers
+ are used to create specific ordering and can be used to override depth buffer and
+ z-sorted ordering.
+
+
+
+
+ List of Sprites that belong to this layer. Sprites should be added
+ through SpriteManager.AddToLayer or the AddSprite overloads which
+ include a Layer argument.
+
+
+
+
+ Used by the Renderer to override the camera's FieldOfView
+ when drawing the layer. This can be used to give each layer
+ a different field of view.
+
+
+
+
+ The Batches referenced by and drawn on the Layer.
+
+
+ The Layer stores a regular IDrawableBatch PositionedObjectList
+ internally. Since this internal list is used for drawing
+ the layer the engine sorts it every frame.
+
+ For efficiency purposes the internal IDrawableBatch PositionedObjectList
+ cannot be sorted.
+
+
+
+
+ The Sprites referenced by and drawn on the Layer.
+
+
+ The Layer stores a regular SpriteList internally. Since
+ this internal list is used for drawing the layer the engine
+ sorts it every frame.
+
+ For efficiency purposes the internal SpriteList cannot be sorted.
+
+
+
+
+ The Texts referenced by and drawn on the Layer.
+
+
+ The Layer stores a regular Text PositionedObjectList
+ internally. Since this internal list is used for drawing
+ the layer the engine sorts it every frame.
+
+ For efficiency purposes the internal Text PositionedObjectList
+ cannot be sorted.
+
+
+
+
+ Whether the SpriteLayer is visible.
+
+
+ This does not set the contained Sprite's visible value to false.
+
+
+
+
+ The Models referenced by and drawn on the Layer.
+
+
+ The Layer stores a regular PositionedModel PositionedObjectList
+ internally. Since this internal list is used for drawing
+ the layer the engine sorts it every frame.
+
+ For efficiency purposes the internal PositionedModel PositionedObjectList
+ cannot be sorted.
+
+
+
+
+ Defines an ambient light in a scene
+
+
+
+
+ Base class for positioned lights
+
+
+
+
+ Interface to lights
+
+
+
+
+ Gets or sets the color of this light
+
+
+
+
+ Gets or sets the color of this light
+
+
+
+
+ Gets or sets the enabled status of this light
+
+
+
+
+ The color of this light. The default value is (1,1,1).
+
+
+
+
+ The color of this light. The default value is (0,0,0).
+
+
+
+
+ Whether or not this light is enabled
+
+
+
+
+ This is mostly for the Windows Phone system
+ All lights on the phone are directional, relative to the object being lit.
+
+
+
+
+
+
+ Gets or sets the RGB color of this light
+
+
+
+
+ Gets or sets the RGB color of this light
+
+
+
+
+ Gets or sets whether or not this light is enabled
+
+
+
+
+ A light which containing direction and color information. This light has no bounds, limits, or source,
+ so all objects which can be lit will be lit by directional lights equally.
+
+
+
+
+ This is mostly for the Windows Phone system
+ All lights on the phone are directional, relative to the object being lit.
+ Overloaded for directional lights since they always effect all models the same.
+
+
+
+
+
+
+ Provides a method of indexing lights without access to the actual lists
+
+ The type of lights
+
+
+
+ Sets the lighting to one of the default lighting setups
+
+ The lighting setup to use
+
+
+
+ Gets or sets the name of the lighting collection (e.g. Evening)
+
+
+
+
+ Creates a point light, based on position and color, and adds it to the manager
+
+
+
+
+
+
+
+ Creates a point light, does not add the light to the manager
+
+
+
+
+
+
+
+ Creates a directional light, based on direction and color, and adds it to the manager
+
+
+
+
+
+
+
+ Creates a directional light, does not add the light to the manager
+
+
+
+
+
+
+
+ Runtime effect property value which can be used to set effects.
+
+
+
+
+ A list of effects and parameters.
+
+
+ This class is generally not used during runtime - it's used in the FlatRedBall content pipeline.
+
+
+
+
+ A bone that can be attached to
+
+
+
+
+ An interface for objects which can be scaled on the X, Y, and Z axes.
+
+
+
+
+ Represents an object that can be scaled on the X and Y axes and can have
+ scale velocity on these two axes.
+
+
+
+
+ Represents an object which has read-only scale values on two axes.
+
+
+
+
+ Gets the X Scale of the object.
+
+
+
+
+ Gets the Y Scale of the object.
+
+
+
+
+ Gets and sets the X Scale of the object.
+
+
+
+
+ Gets and sets the Y Scale of the object
+
+
+
+
+ Gets and sets the rate at which the X Scale of the object changes in units per second.
+
+
+
+
+ Gets and sets the rate at which the Y Scale of the object changes in units per second.
+
+
+
+
+ Create a new positioned model without adding to engine
+
+
+
+
+ Provides access to the BasicModelEffect. This should only be used in debugging.
+
+
+
+
+ Provides access to positioned bones in a model
+
+
+
+
+ Detaches all bones from parents/children and destroys the collection
+
+
+
+
+ Creates a positioned bone when asking for one that does not exist yet
+
+ The name of the bone to get
+ A positioned bone or animated positioned bone
+
+
+
+ Gets the positioned bone with the specified name
+
+ The name of the bone
+ A positioned bone
+
+
+
+ Contains information about what fields a model's mesh's vertices provide
+
+
+
+
+ Defines an interface for objects which can be selectable by the cursor.
+
+
+
+
+ Whether the instance is currently selectable (active).
+
+
+
+
+ Specifies the ordering and distance of meshes to be used at different LODs
+
+
+
+
+ Whether animation is being performed.
+
+
+
+
+ Specifies a custom effect to use with this model
+ (when null, uses Model's internal effects)
+
+
+
+
+ A list of vertex information, indexed as VertexInformation[mesh#][meshpart#]
+ Built during ModelManager.AddModel()
+
+
+
+
+ Creates a new PositionedModel which shares the same reference
+ for XnaModel and Effects.
+
+ The newly-created PositionedModel.
+
+
+
+ Whether or not this model has animation information
+
+
+
+
+ Sets the model's texture
+ Will not work if the model is using custom effects or if
+ the model loads its own fx files unless you are using
+ the same parameter name for texture as BasicEffect uses.
+
+
+
+
+ Gets or sets the type of LOD drawing to use for this model
+
+
+
+
+ Gets the transformation (world) matrix for this model
+
+
+
+
+ The index of the mesh in the model's mesh collection
+
+
+
+
+ The distance after which this mesh will be drawn (up until the next
+ mesh's distance, if it exists)
+
+
+
+
+ A list of IAttachables which is by default two-way.
+
+ Type of the list which is of IAttachable.
+
+
+
+ Interface defining that an object has a RemoveObject method. This standardizes the way that objects remove themselves from
+ two-way lists.
+
+
+ This should not be implemented outside of the FlatRedBall Engine, but is public so that PositionedOjbect-inheriting
+ objects can access the lists of objects that they belong to.
+
+
+
+
+ Creates a new AttachableList.
+
+
+
+
+ Creates a new AttachableList with the argument capacity.
+
+ The initial capacity of the new AttachableList.
+
+
+
+ Returns the top parents in the argument AttachableList
+
+ The type of object in the returned list.
+ Tye type of object in the argument list
+ The list to search through.
+ List of T's that are the top parents of the objects in the argument AttachableList.
+
+
+
+ Adds the argument to the AttachableList and creates a two-way relationship.
+
+ The IAttachable to add.
+
+
+
+ Adds all IAttachables contained in the argument AttachableList to this AttachableList and creates two
+ way relationships.
+
+
+
+
+
+ Adds the argument attachable to this without creating a two-way relationship.
+
+ The IAttachable to add to this.
+
+
+
+ Adds all IAttachables contained in the argument AttachableList to this
+ without creating two-way relationships.
+
+ The list of IAttachables to add.
+
+
+
+ Adds a new IAttachable if it is not already in the list.
+
+ The IAttachable to add.
+ Index where the IAttachable was added. -1 is returned if the list already contains the argument attachable
+
+
+
+ Adds the argument IAttachable to this and creates a two-way relationship if
+ this does not already contain the IAttachable.
+
+ The IAttachable to add.
+
+
+
+ Removes all IAttachables contained in this and eliminates all
+ two-way relationships.
+
+
+
+
+ Returns whether this contains the argument IAttachable.
+
+
+ If the argument is part of this instance and the two share a
+ two-way relationship then this method is able to use this two-way
+ relationship to speed up the method call.
+
+ The argument IAttachable to search for.
+ Whether the argument attachable is contained in this list.
+
+
+
+ Returns the IAttachable with name matching the argument.
+
+ This method performs a case-sensitive search.
+ The name to match when searching.
+ The IAttachable with matching name or null if none are found.
+
+
+
+ Returns the first IAttachable with a name containing the argument string.
+
+ This method returns any IAttachable that has a name that contains the argument.
+ For example, an object with the name "MySprite" would return if the argument was "Sprite".
+ The string to check IAttachables for.
+ The IAttachable with a name containing the argument string or null if none are found.
+
+
+
+ Returns the first IAttachable with a name containing the argument string, case insensitive.
+
+ This method returns any IAttachable that has a name that contains the argument.
+ For example, an object with the name "MySprite" would return if the argument was "Sprite".
+ The string to check IAttachables for.
+ The IAttachable with a name containing the argument string or null if none are found.
+
+
+
+ Inserts the argument IAttachable at the argument index and creates a
+ two-way relationship.
+
+ The index to insert at.
+ The IAttachable to insert.
+
+
+
+ Inserts the argument IAttachable at the argument index but does not create
+ a two-way relationship.
+
+ The index to insert at.
+ The IAttachable to insert.
+
+
+
+ Breaks all two-way relationships between this and all contained
+ IAttachables.
+
+
+ This will still contain the same number of IAttachables before and
+ after the call.
+
+
+
+
+ Makes the relationship between all contained IAttachables and this a two way relationship.
+
+
+ If an IAttachable is added (through the Add method), the relationship is already a
+ two-way relationship. IAttachables which already have two-way relationships will not be affected
+ by this call. IAttachables that have been added through the AddOneWay call or added
+ through a call that returns a one-way array will be modified so that they hold a reference to
+ this instance in their ListsBelongingTo field. One-way relationships are often created in
+ FRB methods which return AttachableLists.
+
+
+
+
+ Moves the position of a block of IAttachables beginning at the argument
+ sourceIndex of numberToMove count to the argument destinationIndex.
+
+ The index of the first IAttachable in the block.
+ The number of elements in the block.
+ The index to insert the block at.
+
+
+
+ Removes the argument IAttachable from this and clears the two-way relationship.
+
+ The IAttachable to remove from this.
+
+
+
+ Removes all IAttachables contained in the argument attachableList from this and clears the two-way relationships between
+ this and all IAttachables removed.
+
+ The list of IAttachables to remove.
+
+
+
+ Removes the IAttachable at the argument index and clears two-way relationships.
+
+ The index of the object to remove.
+
+
+
+ Removes the IAttachable at the argument index from the list, but the IAttachable will continue to reference
+ this List in its ListsBelongingTo.
+
+
+
+
+
+ Returns a string with the name and the number of elements that this contains.
+
+ The string with this instance's name and element count.
+
+
+
+ The number of elements contained in the list.
+
+
+
+
+ Gets and sets the name of this instance.
+
+
+
+
+ Gets the first object found after the argument "value" on the argument "axis". Lists
+ must be sorted for this method to work effectively. WARNING: This method uses an inclusive upper bound. Use GetFirstAfter instead which uses an exclusive upper bound.
+
+ The value to search after. For example, this method will return objects with their position values greater than
+ the argument value. In other words, if 0 is passed as the value, then objects with position values greater than (not equal to) will be returned.
+ The axis representing the value to use (x, y, or z)
+ The lower (inclusive) bound.
+ The upper (inclusive) bound. This argument is why GetFirstAfterPosition is obsolete.
+ The index of the first object after the given value.
+
+
+
+ Gets the first object found after the argument "value" on the argument "axis". Lists
+ must be sorted ascending for this method to work effectively.
+
+
+ This method is useful when searching for items in a list after a given value.
+
+ The value to search after. For example, this method will return objects with their position values greater than
+ the argument value. In other words, if 0 is passed as the value, then objects with position values greater than (not equal to) will be returned.
+ The axis representing the value to use (x, y, or z)
+ The lower (inclusive) bound.
+ The upper (exclusive) bound.
+ The index of the first object after the given value.
+
+
+
+ Returns a one-way List containing the TopParents of all items in the list without duplication.
+
+ The list of parents.
+
+
+
+ Shifts all contained objects' Position by the arguments x,y,z.
+
+ Amount to move on the X axis.
+ Amount to move on the Y axis.
+ Amount to move on the Z axis.
+
+
+
+ Shifts all contained objects' Position by the argument vector.
+
+ The amount to change Position by.
+
+
+
+ Shifts all contained objects' RelativePosition by the argument vector.
+
+ The amount to change RelativePosition by.
+
+
+
+ This template contains animations referencing a previous frame. It should contain one reference
+ to a frame and at least one set of AnimationKeys. It also can contain an AnimationOptions data object.
+
+
+
+
+ Used as the base class that binds all template types together.
+
+
+
+
+ universally unique identifier (UUID) formatted to the Open Software Foundation's Distributed
+ Computing Environment standard and surrounded by angle brackets < and >
+
+
+
+
+ This template contains animations referencing a previous frame. It should contain one reference
+ to a frame and at least one set of AnimationKeys. It also can contain an AnimationOptions data object.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ This template defines a set of animation keys. The keyType member specifies whether the keys are rotation,
+ scale or position keys (using the integers 0, 1, or 2 respectively).
+
+
+
+
+ This template defines a set of animation keys. The keyType member specifies whether the keys are rotation,
+ scale or position keys (using the integers 0, 1, or 2 respectively).
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ The Type of Key by an integer value.
+ 0 - Rotation
+ 1 - Scale
+ 2 - Position
+
+
+
+
+ An integer value for the amount of Keys.
+
+
+
+
+ A TimedFloatKeys array for ths AnimationKey.
+
+
+
+
+ This template enables you to set the Direct3D Retained Mode Animation options.
+ The openclosed member can be either 0 for a closed or 1 for an open animation.
+ The positionquality member is used to set the position quality for any position keys specified and can either be 0
+ for spline positions or 1 for linear positions. By default, an animation is closed.
+
+
+
+
+ This template enables you to set the Direct3D Retained Mode Animation options.
+ The openclosed member can be either 0 for a closed or 1 for an open animation.
+ The positionquality member is used to set the position quality for any position keys specified and can either be 0
+ for spline positions or 1 for linear positions. By default, an animation is closed.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ An integer value for whether or not the animation is open or closed.
+
+
+
+
+ An integer value for whether or not the animation using spline or linear positions for
+ interpolation.
+
+
+
+
+ An AnimationSet template contains one or more Animation objects and is the equivalent to the Direct3D Retained Mode
+ concept of animation sets. This means each animation within an animation set has the same time at any given point.
+ Increasing the animation set's time will increase the time for all the animations it contains.
+
+
+
+
+ An AnimationSet template contains one or more Animation objects and is the equivalent to the Direct3D Retained Mode
+ concept of animation sets. This means each animation within an animation set has the same time at any given point.
+ Increasing the animation set's time will increase the time for all the animations it contains.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Defines a simple Boolean type. This template should be set to 0 or 1.
+
+
+
+
+ A private value which is used to keep the TrueFalse within the 0 - 1 range.
+
+
+
+
+ Defines a simple Boolean type. This template should be set to 0 or 1.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Returns a Microsoft XNA bool representation of this Boolean
+
+ The Boolean to convert.
+
+
+
+ An integer value to represent True or False.
+ 1 = True, 0 = False.
+
+
+
+
+ This template defines a set of two Boolean values used in the MeshFaceWraps template to
+ define the texture topology of an individual face.
+
+
+
+
+ This template defines a set of two Boolean values used in the MeshFaceWraps template to
+ define the texture topology of an individual face.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ A boolean value for the 2 dimensional U value
+
+
+
+
+ A boolean value for the 2 dimensional V value
+
+
+
+
+ This template defines the basic RGB color object.
+
+
+
+
+ This template defines the basic RGB color object.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Returns a Microsoft XNA Color representation of this ColorRGB
+
+ The ColorRGB to convert.
+
+
+
+ Returns a Microsoft XNA Vector4 representation of this ColorRGB
+
+ The ColorRGB to convert.
+
+
+
+ Returns a Microsoft XNA Vector3 representation of this ColorRGB
+
+ The ColorRGB to convert.
+
+
+
+ A Float value that represents the Red amount.
+
+
+
+
+ A Float value that represents the Green amount.
+
+
+
+
+ A Float value that represents the Blue amount.
+
+
+
+
+ This template defines a color object with an alpha component.
+ This is used for the face color in the material template definition.
+
+
+
+
+ This template defines a color object with an alpha component.
+ This is used for the face color in the material template definition.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Returns a Microsoft XNA Color representation of this ColorRGBA
+
+ The ColorRGBA to convert.
+
+
+
+ Returns a Microsoft XNA Vector4 representation of this ColorRGBA
+
+ The ColorRGBA to convert.
+
+
+
+ Returns a Microsoft XNA Vector3 representation of this ColorRGBA
+
+ The ColorRGBA to convert.
+
+
+
+ A Float value that represents the Red amount.
+
+
+
+
+ A Float value that represents the Green amount.
+
+
+
+
+ A Float value that represents the Blue amount.
+
+
+
+
+ A Float value that represents the Alpha amount.
+
+
+
+
+ A two dimensional vector used to define a mesh's texture coordinates.
+
+
+
+
+ A two dimensional vector used to define a mesh's texture coordinates.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Returns a Microsoft XNA Vector3 representation of this Vector
+
+ The Coords2d to convert
+
+
+
+ The U Coorinate for Texture Coordinates
+
+
+
+
+ The V Coorinate for Texture Coordinates
+
+
+
+
+ This template defines an array of floating-point numbers (floats) and the number of floats in that array.
+ This is used for defining sets of animation keys.
+
+
+
+
+ This template defines an array of floating-point numbers (floats) and the number of floats in that array.
+ This is used for defining sets of animation keys.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ A integer value for the amount of Float values.
+
+
+
+
+ A float array of the values for the Float Keys.
+
+
+
+
+ This template defines a frame. Currently, the frame can contain objects of the type Mesh and a FrameTransformMatrix.
+
+
+
+
+ This template defines a frame. Currently, the frame can contain objects of the type Mesh and a FrameTransformMatrix.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ The Name for this Frame.
+
+
+
+
+ This template defines a local transform for a frame (and all its child objects).
+
+
+
+
+ This template defines a local transform for a frame (and all its child objects).
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ A Matrix4x4 value for the Frame.
+
+
+
+
+ This template defines the application-specific header for the Direct3D Retained Mode usage of the DirectX file format.
+ The Retained Mode uses the major and minor flags to specify the current major and minor versions for the Retained Mode
+ file format.
+
+
+
+
+ This template defines the application-specific header for the Direct3D Retained Mode usage of the DirectX file format.
+ The Retained Mode uses the major and minor flags to specify the current major and minor versions for the Retained Mode
+ file format.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Major Version of this File Format
+
+
+
+
+ Minor Version of this File Format
+
+
+
+
+ 32 or 64 Bit Flag
+
+
+
+
+ This template consists of an index parameter and an RGBA color and is used for defining mesh vertex colors.
+ The index defines the vertex to which the color is applied.
+
+
+
+
+ This template consists of an index parameter and an RGBA color and is used for defining mesh vertex colors.
+ The index defines the vertex to which the color is applied.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ An integer value for the Index of this color.
+
+
+
+
+ The ColorRGBA value for this IndexedColor
+
+
+
+
+ This template defines a basic material color that can be applied to either a complete mesh or a mesh's individual faces.
+ The power is the specular exponent of the material. Note that the ambient color requires an alpha component.
+ TextureFilename is an optional data object used by Direct3D Retained Mode. If this object is not present,
+ the face is untextured.
+
+
+
+
+ This template defines a basic material color that can be applied to either a complete mesh or a mesh's individual faces.
+ The power is the specular exponent of the material. Note that the ambient color requires an alpha component.
+ TextureFilename is an optional data object used by Direct3D Retained Mode. If this object is not present,
+ the face is untextured.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ The Name of this Material.
+
+
+
+
+ A ColorRGBA value for the Diffuse Color
+
+
+
+
+ A Float value for the Specular Power.
+
+
+
+
+ A ColorRGB value for the Specular Color
+
+
+
+
+ A ColorRGB value for the Emissive Color
+
+
+
+
+ This template defines a 4×4 matrix. This is used as a frame transformation matrix.
+
+
+
+
+ This template defines a 4×4 matrix. This is used as a frame transformation matrix.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Returns a Microsoft XNA Matrix representation of this Matrix4x4
+
+ The Matrix4x4 to convert.
+
+
+
+ A float array used as the matrix.
+
+
+
+
+ This template defines a simple mesh. The first array is a list of vertices, and the second array defines the faces
+ of the mesh by indexing into the vertex array.
+
+
+
+
+ This template defines a simple mesh. The first array is a list of vertices, and the second array defines the faces
+ of the mesh by indexing into the vertex array.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ The Name of this Mesh.
+
+
+
+
+ An integer value of Verticies for this Mesh.
+
+
+
+
+ A Vector array of verticies for this Mesh.
+
+
+
+
+ An integer value of Faces for this Mesh.
+
+
+
+
+ A MeshFace array of Faces for this Mesh.
+
+
+
+
+ This template is used by the Mesh template to define a mesh's faces. Each element of the nFaceVertexIndices
+ array references a mesh vertex used to build the face
+
+
+
+
+ This template is used by the Mesh template to define a mesh's faces. Each element of the nFaceVertexIndices
+ array references a mesh vertex used to build the face
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Mesh face Vertex Indicies Count
+
+
+
+
+ An int array of the Mesh Face Indicies
+
+
+
+
+ This template is used to define the texture topology of each face in a wrap.
+ The value of the nFaceWrapValues member should be equal to the number of faces in a mesh.
+
+
+
+
+ This template is used to define the texture topology of each face in a wrap.
+ The value of the nFaceWrapValues member should be equal to the number of faces in a mesh.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ An integer value for the value of this MeshFaceWraps
+
+
+
+
+ A Boolean2d value for this MeshFaceWrap values.
+
+
+
+
+ This template is used in a mesh object to specify which material applies to which faces. The nMaterials member
+ specifies how many materials are present, and materials specify which material to apply.
+
+
+
+
+ This template is used in a mesh object to specify which material applies to which faces. The nMaterials member
+ specifies how many materials are present, and materials specify which material to apply.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ A integer value for the amount of Matrials for this Mesh.
+
+
+
+
+ A integer value of the amount of faces.
+
+
+
+
+ A integer array of the Faces.
+
+
+
+
+ This template defines normals for a mesh. The first array of vectors is the normal vectors themselves,
+ and the second array is an array of indexes specifying which normals should be applied to a given face.
+ The value of the nFaceNormals member should be equal to the number of faces in a mesh.
+
+
+
+
+ This template defines normals for a mesh. The first array of vectors is the normal vectors themselves,
+ and the second array is an array of indexes specifying which normals should be applied to a given face.
+ The value of the nFaceNormals member should be equal to the number of faces in a mesh.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ A integer value of the amount of Normals for this Mesh.
+
+
+
+
+ A Vector array of the Normals for this mesh.
+
+
+
+
+ An integer value of the Amount of Face Normals.
+
+
+
+
+ A Mesh Face array of the Face Normals.
+
+
+
+
+ This template defines a mesh's texture coordinates
+
+
+
+
+ This template defines a mesh's texture coordinates
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Returns a Microsoft XNA Vector2 List representation of this MeshTextureCoords
+
+ The MeshTextureCoords to convert.
+
+
+
+ Returns a Microsoft XNA Vector2 array representation of this MeshTextureCoords
+
+ The MeshTextureCoords to convert.
+
+
+
+ An integer value of the Total amount of Texture Coordinates.
+
+
+
+
+ A Coords2d array of TextureCoords
+
+
+
+
+ This template specifies vertex colors for a mesh, instead of applying a material per face or per mesh.
+
+
+
+
+ This template specifies vertex colors for a mesh, instead of applying a material per face or per mesh.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Amount of VertexColors
+
+
+
+
+ An Array of IndexedColors.
+
+
+
+
+ Currently unused.
+
+
+
+
+ Currently unused.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ An angle value for this Quanternion
+
+
+
+
+ A 3d vector for this Quanterion
+
+
+
+
+ This template allows you to specify the file name of a texture to apply to a mesh or a face.
+ This template should appear within a material object.
+
+
+
+
+ This template allows you to specify the file name of a texture to apply to a mesh or a face.
+ This template should appear within a material object.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ A string representation of where to load the texture from.
+
+
+
+
+ This template defines a set of floats and a positive time used in animations.
+
+
+
+
+ This template defines a set of floats and a positive time used in animations.
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ A integer value for the time of this TimedFloatKeys
+
+
+
+
+ FloatKeys for this timed Float Key.
+
+
+
+
+ This template defines a vector
+
+
+
+
+ This template defines a vector
+
+
+
+
+ Returns a string representation of this template.
+
+
+
+
+ Returns a Microsoft XNA Vector3 representation of this Vector
+
+ The Vector to convert
+
+
+
+ The X Cordinate in 3D space.
+
+
+
+
+ The Y Cordinate in 3D space.
+
+
+
+
+ The Z Cordinate in 3D space.
+
+
+
+
+ Defines the state of Sprites immediately after being created by the containing Emitter.
+
+
+
+
+ Sets the type of velocity to use. This impacts which Velocity values are
+ applied to emitted Sprites.
+
+
+
+
+ Each individual component (X, Y, Z) had an independent range.
+
+
+
+
+ The X and Y components are set according to a random angle spanning a full circle and a radial velocity or rate value.
+
+
+
+
+ The X,Y,and Z components are set according to a random point on a full sphere and a radial velocity or rate value.
+
+
+
+
+ The X and Y components are set according to a random angle within wedge values using a radial velocity or rate value.
+
+
+
+
+ The X, Y, and Z components are set according to a random point on a
+
+
+
+
+ An emitter is an invisible object which can create one or more Sprites at a specific
+ rate or on a method call.
+
+
+
+
+ This is used only in the ParticleEditor.
+
+
+
+
+ Emits particles as specified by the Emitter class
+
+
+ This method initiates one emission of particles. The number of particles emitted
+ depends on the numberPerEmission variable. This method does not consider emission timing, and the time
+ is not recorded for emission timing.
+
+ The argument SpriteList stores all Sprites which were emitted
+ during the call. The Sprites are added regularly, rather than in a one way relationship. This enables
+ modification of emitted particles after the method ends. null can be passed as an argument
+ if specific action is not needed for emitted particles. Particles are automatically created
+ through the SpriteManager as Particle Sprites.
+
+
+
+
+ The list of Sprites (which can be null) to add all Sprites created
+ by this call.
+
+
+
+ Specifies the number of seconds that particles will remain on the screen and in memory. This is only considered
+ if the RemovalEvent is set to RemovalEventType.TIMED;
+
+
+
+
+ No removal event specified.
+
+
+
+
+ Particles will be removed when out of the screen.
+
+
+ This uses the camera's IsSpriteInView method.
+
+
+
+
+ Particles will be removed when Alpha is 0
+
+
+ Setting the Alpha to 0 manually on a particle created by an emitter with this removal event will
+ also remove the Sprite.
+
+
+
+
+ Particles will be removed after a certain amount of time has passed after emission. This value is set through the
+ SecondsLasting property.
+
+
+
+
+ List of Emitters provoding shortcut methods for interacting with all contained Emittes.
+
+
+ This is the runtime object created when loading .emix files.
+
+
+
+
+ Rendering modes available in FlatRedBall
+
+
+
+
+ Default rendering mode (uses embedded effects in models)
+
+
+
+
+ Color rendering mode - renders color values for a model
+ (does not include lighting information)
+ Effect technique: RenderColor
+
+
+
+
+ Normals rendering mode - renders normals
+ Effect technique: RenderNormals
+
+
+
+
+ Depth rendering mode - renders depth
+ Effect technique: RenderDepth
+
+
+
+
+ Position rendering mode - renders position
+ Effect technique: RenderPosition
+
+
+
+
+ Static class responsible for drawing/rendering content to the cameras on screen.
+
+ This class is called by
+
+
+
+ Ensures that a render target pair of this surface format exists
+
+ The surface format for the render targets
+
+
+
+ Draws a quad
+ The effect must already be started
+
+
+
+
+ Draws a full-screen quad
+ The effect must already be started
+
+
+
+
+ Gets the default Camera (SpriteManager.Camera)
+
+
+
+
+ Gets the list of cameras (SpriteManager.Cameras)
+
+
+
+ Temporary Fix to resolve issues with render states while async loading
+
+
+
+ The possible ways to sort objects which should be sorted (Sprites, Texts, IDrawableBatches).
+
+
+
+
+ Renders objects
+
+
+
+
+ Prepares objects on the specified camera for drawing before beginning the drawing loop.
+
+ The camera to prepare.
+
+
+
+ Sets up render states for this renderer. Called when the last renderer to draw was not
+ this renderer.
+
+
+
+
+
+
+ Draws objects on the specified layer. For renderers that DrawSorted, this should draw the
+ next object on the layer, and GetNextObjectDepth should now return the following object.
+
+ The camera to draw.
+ The layer to draw.
+
+
+
+
+ Returns the depth of the next object to draw on this layer for the current sort mode.
+
+ The Camera currently being drawn.
+ The layer currently being drawn.
+ The depth of the next object on this layer for the current sort mode.
+
+
+
+ Returns true if this layer hasn't drawn all of its objects for this Renderer.
+
+ The Camera to check
+ The layer to check.
+ Whether or not the renderer has drawn all objects on the layer.
+
+
+
+ Called to remove layer information from a renderer (for renderers that store
+ layer information).
+
+ The Camera to move the Layer from
+ The layer to remove
+
+
+
+ Whether or not the objects in this renderer are drawn in order with order renderers.
+
+
+
+
+ Gets or sets the current sorting mode.
+
+
+
+
+ Render overrides are a way to inject new information into the BasicEffect
+
+
+
+
+ Resolves the texture by setting the current render target to null (back buffer) and then
+ getting the texture from the previously drawing render target
+
+
+
+
+ Sets this render target on the device
+
+
+
+
+ Manages a swappable pair of render targets (of the same surface format)
+
+
+
+
+ This switches the currently active render target.
+ Use to set this type of target, or switch the currently used
+ target of this type.
+
+
+
+
+ This switches the currently active render target and gets the
+ resolved texture from the previous target.
+ Use to set this type of target, or switch the currently used
+ target of this type.
+
+
+
+
+ Gets the current render target
+
+
+
+
+ Gets the width of this render target pair
+
+
+
+
+ Gets the height of this render target pair
+
+
+
+
+ Interface for checking mouse over's
+
+
+
+
+ Check to see if object is under mouse.
+
+ Cursor to check against.
+ True if under mouse.
+
+
+
+ Check to see if object is under mouse.
+
+ Cursor to check against.
+ Layer object is on.
+ True if under mouse.
+
+
+
+ Creates a new Text object.
+
+
+ Reference to the new Text object. The object will not
+ be in the TextManager's memory.
+
+
+
+
+ Set the RGB properties of this all at once. 0,0,0 is Black, 1,1,1 is White.
+
+ 0 to 1
+ 0 to 1
+ 0 to 1
+
+
+
+ Sets the Scale and Spacing such that the Text is drawn pixel-perfect at its given Z position.
+
+ Reference to the camera to use when calculating the Scale and Spacing.
+
+
+
+ Sets the Scale and Spacing such that the Text is drawn pixel-perfect at the given Z position.
+ This method obeys the Layer's overridden field of view if it uses one.
+
+
+
+
+
+ Updates the displayed text according to the MaxWidth.
+
+
+
+
+ Gets or sets the string that the Text object is to display.
+
+
+
+
+ Returns the center of the text object.
+
+
+ If the text is centered (the format.alignment equals TextManager.Alignment.CENTER),
+ this will simply return the x value of the text. Otherwise, this property
+ calculates the center of the text based on the contained string, the format, whether
+ the text uses 3D fonts, and the x position of the text.
+
+
+
+
+ The rate of change of the alpha component in units per second.
+
+
+
+
+ Returns the number of lines in the text object.
+
+
+ This currently reports the number of lines only when the text
+ object is using a bitmap font. 3D text does not use the newline
+ character.
+
+
+
+
+ The maximum width of the text in world units. This modifies the DisplayedText property.
+
+
+
+
+ Returns the distance from the center of the Text object to the edge;
+
+
+
+
+ Returns the vertical center of the text.
+
+
+ Since the y value of text marks either the top or bottom of the Text
+ depending on vertical alignment, this value can be useful for finding
+ the Text's center.
+
+
+
+
+ The ContentManager used to store
+ textures generated by the Text. This
+ is required for proper cleanup.
+
+
+
+
+ Creates a new Text with the argument string which will only be drawn in the argument Camera's
+ destination.
+
+
+ The new text will be stored both by the camera and the TextManager's managed invisible Texts array.
+ The text is automatically attached to the argument Camera so to be moved, it must either
+ be detached or moved with relative variables.
+
+ The string to show.
+ The camera that the newly created Text belongs to.
+ Reference to the newly created Text.
+
+
+
+ Adds an already-created Text instance to the argument camera.
+
+
+ The argument Text should not already be in the TextManager's memory when this
+ method is called.
+
+ Reference to the text object to add.
+ Reference to the camera to be added to.
+ The added text.
+
+
+
+ Returns the width of the rendered text assuming the spacing is 1.
+
+
+ If there are newline characters in the string, GetWidth returns the width of the longest line.
+ Spaces are considered characters as well so "Hello " will be longer than "Hello".
+
+ The text to measure.
+ The width of the longest line in the text.
+
+
+
+ A list of Bitmaps which can be created from a loaded .gif.
+
+
+ This class can be created through the FlatRedBallServices.Load method.
+
+
+
+
+ Removes the index row from the contained data. Row 0 is the top of the texture.
+
+ The index of the row to remove. Index 0 is the top row.
+
+
+
+ The relative X position.
+
+
+
+
+ The relative Y position.
+
+
+
+
+ The cursor is a controllable graphical icon which can interact with FRB elements and
+ stores information about mouse activity.
+
+
+
+
+ Controls how sensitive the cursor is to mouse movements.
+
+
+ Default value is 1, so setting the value to 2 will make the mouse
+ twice as sensitive.
+
+
+
+
+ The Sprite that the cursor uses to draw itself.
+
+
+ This field can be modified to change how the Sprite is drawn. The following Sprite values modify the cursor:
+
+ x - relative to the camera
+ y - relative to the camera
+ ScaleX
+ ScaleY
+ RotationX
+ RotationY
+ RotationZ
+ texture
+ fade
+ visible
+
+ Other values will not modify how the Sprite is drawn.
+
+
+
+
+
+ The x distance from the center of the Cursor which is used as the cursor's tip for selection.
+
+
+
+
+ The y distance from the center of the Cursor which is used as the cursor's tip for selection.
+
+
+
+
+ The window that the cursor was over when the mouse button was pressed.
+
+
+ When the secondary (right) mouse button is pushed down, this value is set - either to null
+ if the mouse is not over any Windows or to the Window that the mouse is over.
+ When the secondary mouse button is released (clicked), this value is set to null.
+ This value is useful for clicking on Windows. Specifically, when the cursor is clicked
+ on a Button, the WindowPushed value is tested to make sure that it is the same as
+ the Window clicked on. This allows for players to push on a Button but move
+ the mouse away and click elsewhere without clicking on the Button originally
+ pushed and without accidentally clicking on other Buttons. This is also used
+ with ToggleButtons to control when they are pressed and unpressed.
+
+
+
+
+ If this value is true, the Cursor will not move in response to the mouse or gamepad.
+
+
+ This value can be set to true if the Cursor should not move in response to input.
+ The staticPosition value is only used by the engine when over the button on an UpDown. When pushing down
+ on an UpDown button, the staticPosition is set to true, and set to false when releasing the mouse button.
+
+
+
+
+ The window that the cursor has grabbed.
+
+
+ When the mouse button is released, the windowGrabbed reference is set to null. If a Window is grabbed, it will
+ move as the mouse moves. This is used commonly for dragging on menu bars and scroll bars. The cursor does
+ not recognize which types of Windows can be dragged, so windows must be grabbed through the Cursor.GrabWindow
+ method. The windowGrabbed's onDrag event is fired every frame.
+
+
+
+
+ Storage for reference to a grabbed object.
+
+
+ This variable has no internal engine functionality. It merely provies a place to store a reference
+ to a grabbed Object - useful in graphical applications where the Cursor can grab and move objects such
+ as Sprites or Text objects.
+ The ObjectGrabbedRelativeX and ObjectGrabbedRelativeY can also be set to keep the object static after a click rather than
+ "snapping" its center to the Cursor's tip.
+
+
+
+
+
+ The relative x position of a grabbed object from the center of the cursor.
+
+
+ This value can be set through the SetObjectRelativePosition.
+ This value used in the GetCursorPositionForSprite method.
+
+
+
+
+
+
+ The relative y position of a grabbed object from the center of the cursor.
+
+
+ This value can be set through the SetObjectRelativePosition.
+ This value used in the GetCursorPositionForSprite method.
+
+
+
+
+
+
+ Determines whether the primary button was pushed this frame.
+
+
+
+
+ Determines whether the primary button is down this frame.
+
+
+
+
+ Determines whether the primary button was clicked (released) this frame.
+
+
+
+
+ Determines whether the primary button was double clicked this frame.
+
+
+
+
+ Determines whether the secondary button was pushed this frame.
+
+
+
+
+ Determines whether the secondary button is down this frame.
+
+
+
+
+ Determines whether the secondary button was clicked (released) this frame.
+
+
+
+
+ Determines whether the secondary button was double clicked this frame.
+
+
+
+
+ Reference to the camera to which the cursor belongs.
+
+
+
+
+ Creates a new Cursor
+
+
+ Usually the cursor does not have to be created explicitly. Calling
+ the GuiManager's constructor without a cursor reference (default in the
+ FrbTemplate) creates a cursor automatically. New cursors should only
+ be created if multiple cursors are needed, or if you are inheriting
+ from the Cursor class. Usually multiple cursors are only needed
+ in games with multiple cameras.
+
+ The camera that the cursor will belong to.
+
+
+
+ Returns the xVelocity of the cursor at a particular Z.
+
+
+ As the cursor can control objects at various Z values, this method returns the X velocity
+ of the cursor at a paritular Z. This method assumes that the Camera is unrotated (looking
+ down the Z axis.
+
+ The z value to measure the velocity at.
+ The X velocity at the particular Z.
+
+
+
+ Returns the yVelocity of the cursor at a particular Z.
+
+
+ As the cursor can control objects at various Z values, this method returns the Y velocity
+ of the cursor at a paritular Z. This method assumes that the Camera is unrotated (looking
+ down the Z axis.
+
+ The z value to measure the velocity at.
+ The Y velocity at the particular Z.
+
+
+
+ Modifies the x and y arguments to show the point of the cursor's tip at at the z value.
+
+
+ This method assumes that the Camera is unrotated (looking
+ down the Z axis).
+
+ The x value to change.
+ The y value to change.
+ The z value to use.
+
+
+
+ Modifies the x and y arguments to show the position that the grabbed Sprite should be at.
+
+
+ This method assumes that the camera's currentFollowingStyle is Camera.LOOKINGSTYLE.DOWNZ. The x and y
+ arguments will represent the location of the cursor's tip and adds the relative Sprite positions.
+
+
+
+
+
+
+
+
+
+ Gets the cursor's position and sets the argument positionedObject's
+ x and y values to the cursor's position at the argument Z value.
+
+
+ This is a simple way to set the position of an object
+ to the cursor's position.
+
+ Reference to the positioned object.
+ The Z value at which the position should be set.
+
+
+
+ Returns the Sprite the cursor is over giving preference to the closest Sprite to the Camera.
+
+
+ This method will not return inactive Sprites (Sprites with the .active variable set to false). To consider inactives as well
+ call the GetSpriteOver(SpriteArray, bool) overload.
+
+ The SpriteArray to search through.
+ The Sprite that is found, or null if the cursor is not over any Sprites.
+
+
+
+ Returns the Sprite the cursor is over giving preference to the closest Sprite to the Camera.
+
+ The SpriteArray to search through.
+ Whether inactive Sprites (Sprites with the .active variable set to false) are considered.
+
+ The Sprite that is found, or null if the cursor is not over any Sprites.
+
+
+
+ Returns the Sprite the cursor is over giving preference to the closest Sprite to the Camera.
+
+ The SpriteArrayArray to search through.
+ The Sprite that is found, or null if the cursor is not over any Sprites.
+
+
+
+ Returns the Sprite the cursor is over giving preference to the closest Sprite to the Camera.
+
+ The SpriteLayer to search through.
+ The Sprite that is found, or null if the Cursor is not over any Sprites.
+
+
+
+ Returns the Sprite that the cursor is over in the argument SpriteGridArray.
+
+ Reference to the SpriteGridArray.
+ The Sprite that the cursor is over.
+
+
+
+ Grabs a Window with the Cursor.
+
+
+ The windowGrabbed reference will automatically be set to null when the primary button is
+ released (clicked) by the GuiManager.Control method.
+
+
+ The Window to grab.
+
+
+
+ Determines whether the cursor is on a Sprite, but only considers rotation on the z axis (RotationZ).
+
+
+ This method will not consider whether spriteToTest is rotated on the x or y axes, and assumes
+ that the camera is looking down the Z axis (the Camera is unrotated). Cursor.IsOn3D
+ works properly for any rotation..
+
+ This method will not select Sprites which are closer that the camera's nearClipPlane or
+ further than the camera's farClipPlane.
+
+ The Sprite to test if the cursor is over.
+ Whether the cursor is on the Sprite.
+
+
+
+ Determines whether the cursor is over a textObject.
+
+
+ This method will not consider whether the Text is rotated on the x or y axes, and assumes
+ that the cursor is looking down the Z axis(the camera.LookStyle is DOWNZ).
+
+ This method will not select Texts which are closer that the camera's nearClipPlane or
+ further than the camera's farClipPlane.
+
+ Currently, the method treats the text object as one rectangle, so the width of the Text will be equal
+ to the widest line. For example:
+
+
+ // if the text were centered, the collidable area would be as follows
+ +-------------------------+
+ | The outline |
+ |represents the collidable|
+ | area of the Text. |
+ | Notice that the border |
+ | extends to include |
+ | the longest line. |
+ +-------------------------+
+
+ // if the text were left aligned, the area would still be the same:
+ +-------------------------+
+ |The outline |
+ |represents the collidable|
+ |area of the Text. |
+ |Notice that the border |
+ |extends to include |
+ |the longest line. |
+ +-------------------------+
+
+
+ The TextObject to test if the cursor is over.
+ Whether the cursor is on the TextObject.
+
+
+
+ Returns whether the cursor is over the argument windowToTest.
+
+
+ This method will work accurately for both GuiManager-drawn Windows
+ and SpriteFrame Windows.
+
+ Reference to the window to test.
+ Whether the cursor is over the argument Window.
+
+
+
+ Returns whether the cursor is over the argument SpriteFrame.
+
+ Reference to the SpriteFrame to test.
+ Whether the cursor is over the argument SpriteFrame.
+
+
+
+ Determines whether the Cursor is on a Sprite.
+
+
+ This is the "full featured" version of the IsOn method, considering rotation on all axes for
+ both the spriteToTest and the camera. All lookingStyles are considered and will return accurate results.
+ This method is slower than the IsOn method, and if Sprites are facing the camera under its
+ default orientation, the IsOn method should be used.
+
+ This method will not select Sprites if the cursor is over them on a point
+ that is closer that the camera's nearClipPlane or further than the camera's
+ farClipPlane.
+
+
+ The Sprite to test if the Cursor is over.
+ Whether the Cursor is over the Sprite.
+
+
+
+ Determines whether the Cursor is on a Sprite and stores the intersection point in a Vector3.
+
+
+ This is the "full featured" version of the IsOn method, considering rotation on all axes for
+ both the spriteToTest and the camera. All lookingStyles are considered and will return accurate results.
+ This method is slower than the IsOn method, and if Sprites are facing the camera under its
+ default orientation, the IsOn method should be used.
+
+ This method also modifies a Vector3 which marks the intersection point on the Sprite.
+
+ This method will not select Sprites if the cursor is over them on a point
+ that is closer that the camera's nearClipPlane or further than the camera's
+ farClipPlane.
+
+ The Sprite to test if the Cursor is over.
+ The point where the cursor touches the Sprite.
+ Whether the Cursor is on the Sprite.
+
+
+
+ Checks to see if the Cursor's texture matches the passed argument.
+
+ The texture to compare to.
+ Whether the argument is the same as the Cursor's texture.
+
+
+
+ Determines whether the cursor is currently in the active Control which owns the application.
+
+ Whether the cursor is currently in the active Control which owns the application.
+
+
+
+ Sets the texture, ScaleX and ScaleY, and the tip offsets.
+
+
+ This method just sets the properties in one call. The individual properties can
+ also be set individually.
+
+ Texture to use.
+ The ScaleX to set. ScaleY will be set according to the source texture's dimensions.
+ The relative x value of the tip of the Cursor from its center.
+ the relative y value of the tip of the Cursor from its center.
+
+
+
+ Sets the cursor to be controlled by the joystick rather than the mouse.
+
+ Refernce to the joystick that will control the cursor.
+
+
+
+ Tells the Cursor to store the relative position of the Sprite to the Cursor's tip.
+
+
+ The relative Sprite position is used in the GetCursorPositionForSprite method. Relative values
+ keep objects from "snapping" to the center of the cursor when grabbed.
+
+ The PositionedObject that the relative values should be set to.
+
+
+
+ Sets whether the cursor is active.
+
+
+ An inactive cursor will not move or read any input.
+ Setting the active property to false will also clear the following
+ fields:
+
+ primaryClick
+ primaryDoubleClick
+ primaryDown
+ primaryPush
+ secondaryClick
+ secondaryDoubleClick
+ secondaryDown
+ secondaryPush
+
+
+
+
+
+ The cursor's X position relative to the camera at 100 units away from the camera.
+
+
+ As objects can have varying distances away from the camera, when trying to move
+ objects with the cursor, it is usually not accurate to say:
+
+ someObject.X = cursor.X;
+ someObject.Y = cursor.Y;
+
+ This will only be accurate if the object is also 100 units away from the camera and
+ if the camera is centered on the origin. The
+ x and y values must be passed to the GetCursorPosition method.
+
+
+
+
+
+ The cursor's Y position relative to the camera at 100 units away from the camera.
+
+
+ As objects can have varying distances away from the camera, when trying to move
+ objects with the cursor, it is usually not accurate to say:
+
+ someObject.X = cursor.X;
+ someObject.Y = cursor.Y;
+
+ This will only be accurate if the object is also 100 units away from the camera and
+ if the camera is centered on the origin. The
+ x and y values must be passed to the GetCursorPosition method.
+
+
+
+
+ The change in x since last frame in world units at 100 units away from the camera.
+
+
+ Cursor velocity properties do not counsider bounds; that is, a cursor will still have an xVelocity
+ even if it is pressed against the right side of the screen and being moved to the right.
+
+
+
+
+ The change in y since last frame in world units at 100 units away from the camera.
+
+
+ Cursor velocity properties do not counsider bounds; that is, a cursor will still have an xVelocity
+ even if it is pressed against the right side of the screen and being moved to the right.
+
+
+
+
+ The movement rate of the controlling input (usually mouse) on the z axis.
+
+
+ Cursor velocity properties do not counsider bounds; that is, a cursor will still have an xVelocity
+ even if it is pressed against the right side of the screen and being moved to the right.
+
+
+
+
+ The window that the cursor was over when the mouse button was pressed.
+
+
+ When the mouse button is pushed down, this value is set - either to null
+ if the mouse is not over any Windows or to the Window that the mouse is over.
+ When the mouse button is released (clicked), this value is set to null.
+ This value is useful for clicking on Windows. Specifically, when the cursor is clicked
+ on a Button, the WindowPushed value is tested to make sure that it is the same as
+ the Window clicked on. This allows for players to push on a Button but move
+ the mouse away and click elsewhere without clicking on the Button originally
+ pushed and without accidentally clicking on other Buttons. This is also used
+ with ToggleButtons to control when they are pressed and unpressed.
+
+
+
+
+ Assigns the ObjectGrabbed and calculates the relative position of the
+ grabbed object. After this method is called, UpdateObjectGrabbedPosition can be called
+ every frame to position the grabbed object.
+
+
+
+
+ A stack of Windows which demand input from the cursor.
+
+
+ When a dominantWindow is valid, the cursor will not be able to interact with other windows. If RemoveInvisibleDominantWindows
+ is set to true (default is true) then the GuiManager will remove any invisible dominant windows from its
+ memory.
+ In other words a DominantWindow can be removed either through the traditional Remove methods or by
+ setting the Window's Visible property to false if RemoveInvisibleDominantWindows is true.
+
+
+
+
+ Sets the tool tip to show
+
+
+ Some UI elements like Buttons automatically show
+ a tool tip. This property can be used to overwrite
+ what is shown, or to show tool tips when the user is
+ over a non-UI element.
+
+
+
+
+ Adds a window as a Dominant Window. If the window is a regular Window
+ already managed by the GuiManager it will be removed from the regularly-managed
+ windows.
+
+ The window to add to the Dominant Window stack.
+
+
+
+ Sorts all contained IWindows according to their
+ Z values and Layers. This will usually result in
+ clicks being received in the same order that objects
+ are drawn, which is what the user will usually expect
+
+
+
+
+ Event raised by the Keyboard every frame on the InputManager's ReceivingInput reference.
+
+ The current IInputReceiver.
+
+
+
+ Interface for objects which can receive input from the InputManager.
+
+
+
+ This interface should only be used for Gui elements specifically because the GuiManager will change the InputManager.ReceivingInput
+ reference depending on the activity of the cursor and other Gui elements. The InputManager will only keep track of one IInputReceiver
+ at a time, and each IInputReceiver needs to assign itself as the target for input through the static InputManager.ReceivingInput field.
+
+ Since this is only used for Gui elements, this interface is rarely used in games.
+
+
+
+
+ Called by the InputManager automatically every frame.
+
+
+ The implementation of this method should raise the FocusUpdate event.
+
+
+
+
+ Called by the engine automatically when an IInputReceiver gains focus.
+
+
+ The implementation of this method should raise the GainFocus event.
+
+
+
+
+ Called by the engine automatically when an IInputReceiver loses focus.
+
+
+
+
+ The method called every frame by the InputManager in the Update method
+ if this is the IInputReceiver referenced by the InputManager. This does
+ not have to be called automatically.
+
+
+
+
+ A method which determines whether the instance can currently receive focus as an input receiver.
+
+ Whether the instance is taking input.
+
+
+
+ The next IInputReceiver in the tab sequence. In other words, if this element is currently
+ receiving input (is the InputManager's ReceivingInput), pressing tab will set the NextInTabSequence
+ to be the InputManager's ReceivingInput.
+
+
+
+
+ Event raised every frame if there is a non-null InputManager.ReceivingInput. This allows
+ the IInputReceiver to perform custom every-frame logic when it has focus, such as a ListBox
+ listening for the Delete key to delete highlighted elements.
+
+
+
+
+ Object which holds a list of strings that can be used
+ to tell the PropertyGrid which members to exclude when
+ creating a new PropertyGrid of a specific type.
+
+
+
+
+ Summary description for WindowArray.
+
+
+
+
+ A button or single-axis input device which can return a range of values like the shoulder triggers.
+
+
+
+
+ The current value of the AnalogButton.
+
+
+
+
+ A two-axis input device which can return a range of values on both axes.
+
+
+
+
+ The mDPadOnValue and mDPadOffValue
+ values are used to simulate D-Pad control
+ with the analog stick. When the user is above
+ the absolute value of the mDPadOnValue then it is
+ as if the DPad is held down. To release the DPad the
+ value must come under the off value. If there was only
+ one value then the user could hold the stick near the threshold
+ and get rapid on/off values due to the inaccuracy of the analog stick.
+
+
+
+
+ Returns the angle of the analog stick. 0 is to the right, Pi/2 is up, Pi is to the left, and 3*Pi/2 is down.
+
+
+
+
+ Gets the distance from the center position of the analog stick.
+
+
+
+
+ The position of the analog stick. The range for each component is -1 to 1.
+
+
+
+
+ Containing functionality for keyboard, mouse, and joystick input.
+
+
+
+
+ Reference to an IInputReceiver which will have its ReceiveInput method called every frame.
+
+
+ If this reference is not null, the reference's ReceiveInput method is called in the InputManager.GetInputState method.
+
+
+
+
+
+ Returns whether a key was "typed". A type happens either when the user initially pushes a key down, or when
+ it gets typed again from holding the key down. This works similar to how the keyboard types in text editors
+ when holding down a key.
+
+ The key to check for.
+ Whether the key was typed.
+
+
+
+ The camera-relative X coordinate position of the Mouse at 100 units away.
+
+
+
+
+ Returns whether the Mouse is over the argument Circle.
+
+ The Circle to check.
+ Whether the mouse is over the argument Circle.
+
+
+
+ Determines whether the Mouse is over the objectToTest argument.
+
+
+ If a Text object is passed this method will only work appropriately if
+ the Text object has centered text. See the IsOn3D overload which takes a Text argument.
+
+ The type of the first argument.
+ The object to test if the mouse is on.
+ Whether the object's Position is relative to the Camera.
+
+ The point where the intersection between the ray casted from the
+ mouse into the distance and the argument objectToTest occurred.
+ Whether the mouse is over the argument objectToTest
+
+
+
+ Grabs a PositionedObject. The PositionedObject will automatically update
+ its position according to mouse movement while the reference remains.
+
+
+
+
+ Returns the client rectangle-relative X pixel coordinate of the cursor.
+
+
+
+
+ Returns the client rectangle-Y pixel coordinate of the cursor.
+
+
+
+
+ The number of pixels that the mouse has moved on the
+ X axis during the last frame.
+
+
+
+
+ The number of pixels that the mouse has moved on the
+ Y axis during the last frame.
+
+
+
+
+ The rate of change of the X property in
+ pixels per second.
+
+
+
+
+ The rate of change of the Y property in
+ pixels per second.
+
+
+
+
+ Base interface for class which can record input.
+
+
+
+
+ Information about an input event that has occurred. This class can be used for playbacks
+ or for saving input information.
+
+ The event type. This can be enum values defined by the end user or enums
+ provided by other libraries, such as a Keys value representing which key experienced the event.
+ The type of actions that can be performed on the given EventType. For example
+ this could be an enum defining whether a key was pressed or released.
+
+
+
+ Interface for an object which has a specified time.
+
+
+
+
+ The time associated with the object.
+
+
+
+
+ Gets and sets the time that playback started. Setting this value simulates changing
+ when the playback started.
+
+
+
+
+ Creates a ButtomMap for this controller using the default bindings. This is
+ a quick way to simulate an Xbox360 controller using the keyboard.
+
+
+ This creates the following bindings:
+ * Left analog stick = arrow keys
+ * A button = A key
+ * B button = S key
+ * X button = Q key
+ * Y button = W key
+ * Left trigger = E key
+ * Right trigger = R key
+ * Left shoulder = D key
+ * Right Shoulder = F key
+ * Back button = Backspace key
+ * Start button = Enter key
+
+ This will not simulate that the controller is connected, so you will have to set
+ FakeIsConnected to true if your game checks the connected state.
+
+
+
+
+ Makes this Xbox360Gamepad ignore the argument button for the rest of the current frame.
+
+ The button that should be ignored for the rest of the current frame.
+
+
+
+ Sets the vibration of the game pad.
+
+ The low-frequency motor. Set between 0.0f and 1.0f
+ The high-frequency motor. Set between 0.0f and 1.0f
+ True if the vibration motors were successfully set; false if the controller
+ was unable to process the request.
+
+
+
+
+ This value can force an Xbox360GamePad's
+ IsConnected to be true even if the controller
+ is not connected. This can be used if game logic
+ requires a certain number of GamePads to be connected.
+
+
+
+
+ Returns the left trigger's current value. When not pressed this property returns
+ 0.0f. When fully pressed this property returns 1.0f;
+
+
+
+
+ Returns the right trigger's current value. When not pressed this property returns
+ 0.0f. When fully pressed this property returns 1.0f;
+
+
+
+
+ Enumeration representing the buttons on the Xbox360 controller. The values for each
+ entry matches the value of the Xbox 360 button index in Managed DirectX. This improves
+ portability between FlatRedBall Managed DirectX and FlatRedBall XNA.
+
+
+
+
+ Represents an Instruction which can execute an instruction. This is commonly used
+ with IInstructables to perform logic at a delayed time.
+
+
+
+
+ Class that supports the execution of custom logic at a future time.
+
+
+ Instructions are either stored and executed through the InstructionManager or
+ managed IInstructable instances.
+
+
+
+
+ The system time to execute the instruction at.
+
+
+
+
+ The amount of time to add to the instruction for cycled execution. Default of 0
+ instructs the executing logic to not cycle the Instruction.
+
+
+
+
+ Creates and redturns a member-wise clone.
+
+ The clone of the calling instance.
+
+
+
+ Executes the Instruction.
+
+
+
+
+ Executes an instruction on the target passed as an argument
+
+
+
+
+ The system time to execute the instruction at.
+
+
+ The TimeManager.CurrentTime property is used for comparisons.
+
+
+
+
+ The amount of time to add to the instruction for cycled execution. Default of 0
+ instructs the executing logic to not cycle the Instruction.
+
+
+
+
+ Gets reference to the object that is the target of the Instruction.
+
+
+
+
+ Base class for typed Instructions. This type can be used
+ to identify if an Instruction is a generic Instruction.
+
+
+
+
+ Sets the object which this instruction operates on.
+
+ The object that this instruction operates on.
+
+
+
+ Returns the FullName of the Type that this GenericInstruction operates on.
+
+
+
+
+ The Name of the member (such as "X" or "Width") that this instruction modifies.
+
+
+
+
+
+
+
+
+
+ The FullName of the type of the Member that is being modified. For example, this would return "System.String" for a float member like X.
+
+
+
+
+ Returns a ToString() representation of the member.
+
+
+
+
+ Returns the value of the member casted as an object.
+
+
+
+
+ Generic method of setting a particular variable at a given time.
+
+ The type of object to operate on (ex. PositionedObject)
+ The type of the value. For example, the X value in PositionedObject is float.
+
+
+
+ Used when deserializing .istx files. Not to be called otherwise.
+
+
+
+
+ To be used when inheriting from this class since you won't need the property's name
+
+ The object to operate on (ex. a PositionedObject)
+ The value to set to the property when the instruction is executed
+ Absolute time to executing this instruction
+
+
+ The object to operate on (ex. a PositionedObject)
+ The name of the property to set
+ The value to set to the property when the instruction is executed
+ Absolute time to executing this instruction
+
+
+
+ Uses reflection to set the target object's property.
+
+ If you need more performance out of a section, you can simply
+ inherit from this generic class and override the Execute method to avoid
+ delegating the call to the late binder class.
+
+
+
+ List of Instructions which also provides methods for common
+ actions such as sorting and executing the contained Instructions.
+
+
+
+
+ Executes all contained Instructions in order of index. Contained instructions are not removed.
+
+
+
+
+ Sets the relative rotational velcoities of a PositionedObject so that it rotates
+ to the desired relative orientation in a given amount of time.
+
+
+ This method first sets the relative rotational velocities of the PositionedObject then
+ sets instructions to stop the relative rotational velocities and
+ finally sets the rotational values to fix any problems introduced by timing.
+
+ The Sprite to rotate.
+ The final relative rotX value.
+ The final relative rotY value.
+ The final relative rotZ value.
+ The number of seconds to take in the rotation.
+
+
+
+ Sets a member on an uncasted object. If the type of objectToSetOn is known, use
+ LateBinder for performance and safety reasons.
+
+ The object whose field or property should be set.
+ The name of the field or property to set.
+ The value of the field or property to set.
+
+
+
+ Executes contained instructions.
+
+ The number of seconds since the start of application execution.
+
+
+
+ Holds instructions which will be executed by the InstructionManager
+ in its Update method (called automatically by FlatRedBallServices).
+
+
+ Instructions for managed PositionedObjects like Sprites and Text objects
+ should be added to the object's internal InstructionList. This prevents instructions
+ from referencing removed objects and helps with debugging. This list should only be used
+ on un-managed objects or for instructions which do not associate with a particular object.
+
+
+
+
+ Whether the (automatically called) Update method executes instructions. Default true.
+
+
+
+
+ Represents a set of KeyframeLists which can be applied to objects or
+ used to perform scripted events.
+
+
+ When used to perform scripted events, InstructionSets can be compared
+ to texture animation. There are many levels of Lists in an InstructionSet.
+ The following comparison to AnimationChainLists provides some clarity to the
+ layers:
+
+ InstructionSet (List of KeyframeLists) : AnimationChainList (List of AnimationChains)
+
+
+ KeyframeList (List of Keyframes - aka InstructionLists) : AnimationChain (List of AnimationFrames)
+
+
+ InstructionList (Applied to an object to change any properties) : AnimationFrame (Applied to an object to change its appearance);
+
+
+
+
+
+ Gets a KeyframeList by name. Returns null if none is found
+
+ Name of the KeyframeList to return.
+ Reference to the KeyframeList with the specified name.
+
+
+
+ A class that can be used to quickly create create identical Instructions for individual targets.
+
+ Cannot be serialized as an InstructionBlueprint, but can be converted into an InstructionSave via
+ InstructionSave.FromInstructionBlueprint().
+
+
+
+ Builds an Instruction using the information stored in the InstructionBlueprint.
+
+ The object that the returned Instruction will execute on
+ The current time to use as an offset for the Instruction's Time of execution
+ If target's type is not this InstructionBlueprint's TargetType
+ If this InstructionBlueprint was fully initialized before this call to BuildInstruction.
+ An Instruction created from this InstructionBlueprint's information
+
+
+
+ A list of InstructionBlueprint objects
+
+ Can be used to quickly create InstructionLists for a specific target.
+
+
+
+
+ Creates an InstructionList containing Instructions that were created by the InstructionBlueprints in
+ this list.
+
+ The object that the Instructions will be executed on.
+ The current time to be used as an offset for each Instruction's execution.
+
+
+
+ A save class containing a list of InstructionSaves.
+
+
+
+
+ Provides interpolation for doubles - used for interpolating between
+ Keyframes in InstructionSets.
+
+
+
+
+ Generic interface for an interpolator. These are used to interpolate
+ Keyframes in InstructionSets.
+
+ The type that the Interpolator interpolates.
+
+
+
+ Base interface for interpolators - to be used in lists.
+
+
+
+
+ Interpolates between the first two arguments using the third as the interpolation value.
+
+ The first value to use in interpolation.
+ The second value to use in interpolation.
+ The interpolation value - should be between 0 and 1.
+ The result of the interpolation.
+
+
+
+ Interolates between the two argument doubles using the interpolation value.
+
+ The first or starting value.
+ The end value.
+ A value between 0 and 1 that determines how
+ the values are interpolated.
+ The interpolated value.
+
+
+
+ An interpolator which interpolates between angle floats.
+
+
+
+
+ An IInterpolator which can interpolate float values.
+
+
+
+
+ An IInterpolator which can interpolate integer values.
+
+
+
+
+ Provides interplation methods for longs.
+
+
+
+
+ Gets a KeyframeList by name. Returns null if none is found
+
+ Name of the KeyframeList to return.
+ Reference to the KeyframeList with the specified name.
+
+
+
+ Base abstract class for the generic MethodInstruction class.
+
+
+ This class is provided to support lists of MethodInstructions.
+
+
+
+
+ Generic Instruction class which calls a method when executed.
+
+ The type of the object which contains the method to be called.
+
+
+
+ The game time when the instruction was created. This is compared to the
+ TimeManager's CurrentTime property when Execute is called to delay the instructions
+ by the appropriate amount of time.
+
+
+
+
+ Used to pause the timed removal list in the SpriteManager
+
+
+
+
+ Provides a simple interface to late bind a class.
+
+ The first time you attempt to get or set a property, it will dynamically generate the get and/or set
+ methods and cache them internally. Subsequent gets uses the dynamic methods without having to query the type's
+ meta data.
+
+
+
+ Sets the supplied property on the supplied target
+
+ the type of the value
+
+
+
+ Gets the supplied property on the supplied target
+
+ The type of the property being returned
+
+
+
+ The instance that this binder operates on by default
+
+ This can be overridden by the caller explicitly passing a target to the indexer
+
+
+
+ Gets or Sets the supplied property on the contained
+
+ Throws if the contained Instance is null.
+
+
+
+ Gets or Sets the supplied property on the supplied target
+
+
+
+
+ provides helper functions for late binding a class
+
+
+ Class found here:
+ http://www.codeproject.com/useritems/Dynamic_Code_Generation.asp
+
+
+
+
+ Enumeration used to define relationships between two values. Used in MemberCondition.
+
+
+
+
+ Base class for the generic MemberCondition class provided for List storage.
+
+
+
+
+ Class which can be used to query the relationship of a member relative to a value. This
+ can be used in scripting and trigger data.
+
+ The type of the object containing the property to compare.
+ The type of the property to compare.
+
+
+
+ Stores a list of properties and values for those properties (PropertyValuePair)
+
+
+ This class can be used to either store states of objects or abstract the setting of states.
+
+
+
+
+ Base class for the generic TypedMember class.
+
+
+
+
+ Class containing information about a member which can tell if two instances have
+ identical members.
+
+ The type of the member.
+
+
+
+ A list of TimedKeyframeLists which represents an Animation which can be
+ played.
+
+
+ This class interfaces with the InstructionSetSaveList class when saving/loading.
+
+
+
+
+ Instruction which calls a Static class' method.
+
+
+ This class must be used instead of
+ FlatRedBall.Instructions.MethodInstruction
+ because MethodInstruction takes a reference
+ to an instance of the object containing the method
+ to call. If the object is a static class then the
+ compiler will complain about static objects being used
+ as arguments to methods.
+
+
+
+
+ A list of timed keyframes which can be used to play an animation.
+
+
+
+
+ Stores the related state, velocity, and acceleration values.
+
+
+ This is used when interpolating instructions.
+
+
+
+
+ Class responsible for creating ImageDatas from BMP files.
+
+
+
+
+ ImageData takes a fileName (string) and loads the BMP from the file.
+
+
+ a new ImageData, containing the width, height, and data of the BMP that was loaded
+
+
+
+ Class providing methods for interacting with .CSV spreadsheet files.
+
+
+
+
+ Represents a reader that provides fast, non-cached, forward-only access to CSV data.
+
+
+
+
+ Defines the default buffer size.
+
+
+
+
+ Defines the default delimiter character separating each field.
+
+
+
+
+ Defines the default quote character wrapping every field.
+
+
+
+
+ Defines the default escape character letting insert quotation characters inside a quoted field.
+
+
+
+
+ Defines the default comment character indicating that a line is commented out.
+
+
+
+
+ Contains the field header comparer.
+
+
+
+
+ Contains the pointing to the CSV file.
+
+
+
+
+ Contains the buffer size.
+
+
+
+
+ Contains the comment character indicating that a line is commented out.
+
+
+
+
+ Contains the escape character letting insert quotation characters inside a quoted field.
+
+
+
+
+ Contains the delimiter character separating each field.
+
+
+
+
+ Contains the quotation character wrapping every field.
+
+
+
+
+ Indicates if spaces at the start and end of a field are trimmed.
+
+
+
+
+ Indicates if field names are located on the first non commented line.
+
+
+
+
+ Contains the default action to take when a parsing error has occured.
+
+
+
+
+ Contains the action to take when a field is missing.
+
+
+
+
+ Indicates if the reader supports multiline.
+
+
+
+
+ Indicates if the reader will skip empty lines.
+
+
+
+
+ Indicates if the class is initialized.
+
+
+
+
+ Contains the field headers.
+
+
+
+
+ Contains the dictionary of field indexes by header. The key is the field name and the value is its index.
+
+
+
+
+ Contains the current record index in the CSV file.
+ A value of means that the reader has not been initialized yet.
+ Otherwise, a negative value means that no record has been read yet.
+
+
+
+
+ Contains the starting position of the next unread field.
+
+
+
+
+ Contains the index of the next unread field.
+
+
+
+
+ Contains the array of the field values for the current record.
+ A null value indicates that the field have not been parsed.
+
+
+
+
+ Contains the maximum number of fields to retrieve for each record.
+
+
+
+
+ Contains the read buffer.
+
+
+
+
+ Contains the current read buffer length.
+
+
+
+
+ Indicates if the end of the reader has been reached.
+
+
+
+
+ Indicates if the first record is in cache.
+ This can happen when initializing a reader with no headers
+ because one record must be read to get the field count automatically
+
+
+
+
+ Indicates if fields are missing for the current record.
+ Resets after each successful record read.
+
+
+
+
+ Initializes a new instance of the CsvReader class.
+
+ A pointing to the CSV file.
+ if field names are located on the first non commented line, otherwise, .
+
+ is a .
+
+
+ Cannot read from .
+
+
+
+
+ Initializes a new instance of the CsvReader class.
+
+ A pointing to the CSV file.
+ if field names are located on the first non commented line, otherwise, .
+ The buffer size in bytes.
+
+ is a .
+
+
+ Cannot read from .
+
+
+
+
+ Initializes a new instance of the CsvReader class.
+
+ A pointing to the CSV file.
+ if field names are located on the first non commented line, otherwise, .
+ The delimiter character separating each field (default is ',').
+
+ is a .
+
+
+ Cannot read from .
+
+
+
+
+ Initializes a new instance of the CsvReader class.
+
+ A pointing to the CSV file.
+ if field names are located on the first non commented line, otherwise, .
+ The delimiter character separating each field (default is ',').
+ The buffer size in bytes.
+
+ is a .
+
+
+ Cannot read from .
+
+
+
+
+ Initializes a new instance of the CsvReader class.
+
+ A pointing to the CSV file.
+ if field names are located on the first non commented line, otherwise, .
+ The delimiter character separating each field (default is ',').
+ The quotation character wrapping every field (default is ''').
+
+ The escape character letting insert quotation characters inside a quoted field (default is '\').
+ If no escape character, set to '\0' to gain some performance.
+
+ The comment character indicating that a line is commented out (default is '#').
+ if spaces at the start and end of a field are trimmed, otherwise, . Default is .
+
+ is a .
+
+
+ Cannot read from .
+
+
+
+
+ Initializes a new instance of the CsvReader class.
+
+ A pointing to the CSV file.
+ if field names are located on the first non commented line, otherwise, .
+ The delimiter character separating each field (default is ',').
+ The quotation character wrapping every field (default is ''').
+
+ The escape character letting insert quotation characters inside a quoted field (default is '\').
+ If no escape character, set to '\0' to gain some performance.
+
+ The comment character indicating that a line is commented out (default is '#').
+ if spaces at the start and end of a field are trimmed, otherwise, . Default is .
+ The buffer size in bytes.
+
+ is a .
+
+
+ must be 1 or more.
+
+
+
+
+ Raises the event.
+
+ The that contains the event data.
+
+
+
+ Gets the field headers.
+
+ The field headers or an empty array if headers are not supported.
+
+ The instance has been disposed of.
+
+
+
+
+ Ensures that the reader is initialized.
+
+
+
+
+ Gets the field index for the provided header.
+
+ The header to look for.
+ The field index for the provided header. -1 if not found.
+
+ The instance has been disposed of.
+
+
+
+
+ Copies the field array of the current record to a one-dimensional array, starting at the beginning of the target array.
+
+ The one-dimensional that is the destination of the fields of the current record.
+
+ is .
+
+
+
+
+ Copies the field array of the current record to a one-dimensional array, starting at the beginning of the target array.
+
+ The one-dimensional that is the destination of the fields of the current record.
+ The zero-based index in at which copying begins.
+
+ is .
+
+
+ is les than zero or is equal to or greater than the length .
+
+
+ No current record.
+
+
+ The number of fields in the record is greater than the available space from to the end of .
+
+
+
+
+ Gets the current raw CSV data.
+
+ Used for exception handling purpose.
+ The current raw CSV data.
+
+
+
+ Indicates whether the specified Unicode character is categorized as white space.
+
+ A Unicode character.
+ if is white space; otherwise, .
+
+
+
+ Moves to the specified record index.
+
+ The record index.
+
+ Record index must be > 0.
+
+
+ Cannot move to a previous record in forward-only mode.
+
+
+ The instance has been disposed of.
+
+
+
+
+ Parses a new line delimiter.
+
+ The starting position of the parsing. Will contain the resulting end position.
+ if a new line delimiter was found; otherwise, .
+
+ The instance has been disposed of.
+
+
+
+
+ Determines whether the character at the specified position is a new line delimiter.
+
+ The position of the character to verify.
+
+ if the character at the specified position is a new line delimiter; otherwise, .
+
+
+
+
+ Fills the buffer with data from the reader.
+
+ if data was successfully read; otherwise, .
+
+ The instance has been disposed of.
+
+
+
+
+ Reads the field at the specified index.
+ Any unread fields with an inferior index will also be read as part of the required parsing.
+
+ The field index.
+ Indicates if the reader is currently initializing.
+ Indicates if the value(s) are discarded.
+
+ The field at the specified index.
+ A indicates that an error occured or that the last field has been reached during initialization.
+
+
+ is out of range.
+
+
+ There is no current record.
+
+
+ The instance has been disposed of.
+
+
+
+
+ Reads the next record.
+
+ if a record has been successfully reads; otherwise, .
+
+ The instance has been disposed of.
+
+
+
+
+ Reads the next record.
+
+
+ Indicates if the reader will proceed to the next record after having read headers.
+ if it stops after having read headers; otherwise, .
+
+
+ Indicates if the reader will skip directly to the next line without parsing the current one.
+ To be used when an error occurs.
+
+ if a record has been successfully reads; otherwise, .
+
+ The instance has been disposed of.
+
+
+
+
+ Skips empty and commented lines.
+ If the end of the buffer is reached, its content be discarded and filled again from the reader.
+
+
+ The position in the buffer where to start parsing.
+ Will contains the resulting position after the operation.
+
+ if the end of the reader has not been reached; otherwise, .
+
+ The instance has been disposed of.
+
+
+
+
+ Worker method.
+ Skips empty and commented lines.
+
+
+ The position in the buffer where to start parsing.
+ Will contains the resulting position after the operation.
+
+
+ The instance has been disposed of.
+
+
+
+
+ Skips whitespace characters.
+
+ The starting position of the parsing. Will contain the resulting end position.
+ if the end of the reader has not been reached; otherwise, .
+
+ The instance has been disposed of.
+
+
+
+
+ Skips ahead to the next NewLine character.
+ If the end of the buffer is reached, its content be discarded and filled again from the reader.
+
+
+ The position in the buffer where to start parsing.
+ Will contains the resulting position after the operation.
+
+ if the end of the reader has not been reached; otherwise, .
+
+ The instance has been disposed of.
+
+
+
+
+ Handles a parsing error.
+
+ The parsing error that occured.
+ The current position in the buffer.
+
+ is .
+
+
+
+
+ Handles a missing field error.
+
+ The partially parsed value, if available.
+ The missing field index.
+ The current position in the raw data.
+
+ The resulting value according to .
+ If the action is set to ,
+ then the parse error will be handled according to .
+
+
+
+
+ Validates the state of the data reader.
+
+ The validations to accomplish.
+
+ No current record.
+
+
+ This operation is invalid when the reader is closed.
+
+
+
+
+ Copy the value of the specified field to an array.
+
+ The index of the field.
+ The offset in the field value.
+ The destination array where the field value will be copied.
+ The destination array offset.
+ The number of characters to copy from the field value.
+
+
+
+
+ Returns an that can iterate through CSV records.
+
+ An that can iterate through CSV records.
+
+ The instance has been disposed of.
+
+
+
+
+ Returns an that can iterate through CSV records.
+
+ An that can iterate through CSV records.
+
+ The instance has been disposed of.
+
+
+
+
+ Returns an that can iterate through CSV records.
+
+ An that can iterate through CSV records.
+
+ The instance has been disposed of.
+
+
+
+
+ Contains the stack when the object was allocated.
+
+
+
+
+ Contains the disposed status flag.
+
+
+
+
+ Contains the locking object for multi-threading purpose.
+
+
+
+
+ Raises the event.
+
+ A that contains the event data.
+
+
+
+ Checks if the instance has been disposed of, and if it has, throws an ; otherwise, does nothing.
+
+
+ The instance has been disposed of.
+
+
+ Derived classes should call this method at the start of all methods and properties that should not be accessed after a call to .
+
+
+
+
+ Releases all resources used by the instance.
+
+
+ Calls with the disposing parameter set to to free unmanaged and managed resources.
+
+
+
+
+ Releases the unmanaged resources used by this instance and optionally releases the managed resources.
+
+
+ to release both managed and unmanaged resources; to release only unmanaged resources.
+
+
+
+
+ Releases unmanaged resources and performs other cleanup operations before the instance is reclaimed by garbage collection.
+
+
+
+
+ Occurs when there is an error while parsing the CSV stream.
+
+
+
+
+ Gets the comment character indicating that a line is commented out.
+
+ The comment character indicating that a line is commented out.
+
+
+
+ Gets the escape character letting insert quotation characters inside a quoted field.
+
+ The escape character letting insert quotation characters inside a quoted field.
+
+
+
+ Gets the delimiter character separating each field.
+
+ The delimiter character separating each field.
+
+
+
+ Gets the quotation character wrapping every field.
+
+ The quotation character wrapping every field.
+
+
+
+ Indicates if field names are located on the first non commented line.
+
+ if field names are located on the first non commented line, otherwise, .
+
+
+
+ Indicates if spaces at the start and end of a field are trimmed.
+
+ if spaces at the start and end of a field are trimmed, otherwise, .
+
+
+
+ Gets the buffer size.
+
+
+
+
+ Gets or sets the default action to take when a parsing error has occured.
+
+ The default action to take when a parsing error has occured.
+
+
+
+ Gets or sets the action to take when a field is missing.
+
+ The action to take when a field is missing.
+
+
+
+ Gets or sets a value indicating if the reader supports multiline fields.
+
+ A value indicating if the reader supports multiline field.
+
+
+
+ Gets or sets a value indicating if the reader will skip empty lines.
+
+ A value indicating if the reader will skip empty lines.
+
+
+
+ Gets the maximum number of fields to retrieve for each record.
+
+ The maximum number of fields to retrieve for each record.
+
+ The instance has been disposed of.
+
+
+
+
+ Gets a value that indicates whether the current stream position is at the end of the stream.
+
+ if the current stream position is at the end of the stream; otherwise .
+
+
+
+ Gets the current record index in the CSV file.
+
+ The current record index in the CSV file.
+
+
+
+ Gets the field with the specified name and record position. must be .
+
+
+ The field with the specified name and record position.
+
+
+ is or an empty string.
+
+
+ The CSV does not have headers ( property is ).
+
+
+ not found.
+
+
+ Record index must be > 0.
+
+
+ Cannot move to a previous record in forward-only mode.
+
+
+ Cannot read record at .
+
+
+ The CSV appears to be corrupt at the current position.
+
+
+ The instance has been disposed of.
+
+
+
+
+ Gets the field at the specified index and record position.
+
+
+ The field at the specified index and record position.
+ A is returned if the field cannot be found for the record.
+
+
+ must be included in [0, [.
+
+
+ Record index must be > 0.
+
+
+ Cannot move to a previous record in forward-only mode.
+
+
+ Cannot read record at .
+
+
+ The CSV appears to be corrupt at the current position.
+
+
+ The instance has been disposed of.
+
+
+
+
+ Gets the field with the specified name. must be .
+
+
+ The field with the specified name.
+
+
+ is or an empty string.
+
+
+ The CSV does not have headers ( property is ).
+
+
+ not found.
+
+
+ The CSV appears to be corrupt at the current position.
+
+
+ The instance has been disposed of.
+
+
+
+
+ Gets the field at the specified index.
+
+ The field at the specified index.
+
+ must be included in [0, [.
+
+
+ No record read yet. Call ReadLine() first.
+
+
+ The CSV appears to be corrupt at the current position.
+
+
+ The instance has been disposed of.
+
+
+
+
+ Occurs when the instance is disposed of.
+
+
+
+
+ Gets a value indicating whether the instance has been disposed of.
+
+
+ if the instance has been disposed of; otherwise, .
+
+
+
+
+ Defines the data reader validations.
+
+
+
+
+ No validation.
+
+
+
+
+ Validate that the data reader is initialized.
+
+
+
+
+ Validate that the data reader is not closed.
+
+
+
+
+ Supports a simple iteration over the records of a .
+
+
+
+
+ Contains the enumerated .
+
+
+
+
+ Contains the current record.
+
+
+
+
+ Contains the current record index.
+
+
+
+
+ Initializes a new instance of the class.
+
+ The to iterate over.
+
+ is a .
+
+
+
+
+ Advances the enumerator to the next record of the CSV.
+
+ if the enumerator was successfully advanced to the next record, if the enumerator has passed the end of the CSV.
+
+
+
+ Sets the enumerator to its initial position, which is before the first record in the CSV.
+
+
+
+
+ Performs application-defined tasks associated with freeing, releasing, or resetting unmanaged resources.
+
+
+
+
+ Gets the current record.
+
+
+
+
+ Gets the current record.
+
+
+
+
+ Provides data for the event.
+
+
+
+
+ Contains the error that occured.
+
+
+
+
+ Contains the action to take.
+
+
+
+
+ Initializes a new instance of the ParseErrorEventArgs class.
+
+ The error that occured.
+ The default action to take.
+
+
+
+ Gets the error that occured.
+
+ The error that occured.
+
+
+
+ Gets or sets the action to take.
+
+ The action to take.
+
+
+
+ Specifies the action to take when a field is missing.
+
+
+
+
+ Treat as a parsing error.
+
+
+
+
+ Replaces by an empty value.
+
+
+
+
+ Replaces by a null value ().
+
+
+
+
+ Specifies the action to take when a parsing error has occured.
+
+
+
+
+ Raises the event.
+
+
+
+
+ Tries to advance to next line.
+
+
+
+
+ Throws an exception.
+
+
+
+
+ A strongly-typed resource class, for looking up localized strings, etc.
+
+
+
+
+ Returns the cached ResourceManager instance used by this class.
+
+
+
+
+ Overrides the current thread's CurrentUICulture property for all
+ resource lookups using this strongly typed resource class.
+
+
+
+
+ Looks up a localized string similar to Buffer size must be 1 or more..
+
+
+
+
+ Looks up a localized string similar to Cannot move to a previous record in forward-only mode..
+
+
+
+
+ Looks up a localized string similar to Cannot read record at index '{0}'..
+
+
+
+
+ Looks up a localized string similar to Enumeration has either not started or has already finished..
+
+
+
+
+ Looks up a localized string similar to Collection was modified; enumeration operation may not execute..
+
+
+
+
+ Looks up a localized string similar to '{0}' field header not found..
+
+
+
+
+ Looks up a localized string similar to Field index must be included in [0, FieldCount[. Specified field index was : '{0}'..
+
+
+
+
+ Looks up a localized string similar to The CSV appears to be corrupt near record '{0}' field '{1} at position '{2}'. Current raw data : '{3}'..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a supported missing field action..
+
+
+
+
+ Looks up a localized string similar to No current record..
+
+
+
+
+ Looks up a localized string similar to The CSV does not have headers (CsvReader.HasHeaders property is false)..
+
+
+
+
+ Looks up a localized string similar to The number of fields in the record is greater than the available space from index to the end of the destination array..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a valid ParseErrorAction while inside a ParseError event..
+
+
+
+
+ Looks up a localized string similar to '{0}' is not a supported ParseErrorAction..
+
+
+
+
+ Looks up a localized string similar to This operation is invalid when the reader is closed..
+
+
+
+
+ Looks up a localized string similar to Record index must be 0 or more..
+
+
+
+
+ The name of the header - such as "Health"
+
+
+
+
+ Whether objects must have a value in this header. This is true for dictionaries, and to
+ help the csv deserialization understand when a column belongs to a new instance or if it is
+ a column used for lists.
+
+
+
+
+ Represents the raw data loaded from a csv file. This is
+ used if the data must be processed or converted by hand to
+ other object types.
+
+
+
+
+ Returns whether the file exists considering the relative directory.
+
+ The file to search for.
+ Whether the argument file exists.
+
+
+
+ Searches the passed directory and all subdirectories for the passed file.
+
+ The name of the file including extension.
+ The directory to search in, including all subdirectories.
+ The full path of the first file found matching the name, or an empty string if none is found.
+
+
+
+ Searches the executable's director and all subdirectories for the passed file.
+
+ The name of the file which may or may not include an extension.
+ The full path of the first file found matching the name, or an empty string if none is found
+
+
+
+ Returns the extension in a filename.
+
+
+ The extension returned will not contain a period.
+
+
+
+ // this code will return a string containing "png", not ".png"
+ FileManager.GetExtension(@"FolderName/myImage.png");
+
+
+
+ The filename.
+ Returns the extension or an empty string if no period is found in the filename.
+
+
+
+ Returns a List containing all of the files found in a particular directory and its subdirectories.
+
+ The directory to search in.
+
+
+
+
+ Returns a List containing all files which match the fileType argument which are
+ in the directory argument or a subfolder. This recurs, returning all files.
+
+ String representing the directory to search. If an empty
+ string is passed, the method will search starting in the directory holding the .exe.
+ The file type to search for specified as an extension. The extension
+ can either have a period or not. That is ".jpg" and "jpg" are both valid fileType arguments. An empty
+ or null value for this parameter will return all files regardless of file type.
+ A list containing all of the files found which match the fileType.
+
+
+
+ Returns a List containing all files which match the fileType argument which are within
+ the depthToSearch folder range relative to the directory argument.
+
+ String representing the directory to search. If an empty
+ string is passed, the method will search starting in the directory holding the .exe.
+ The file type to search for specified as an extension. The extension
+ can either have a period or not. That is ".jpg" and "jpg" are both valid fileType arguments. An empty
+ or null value for this parameter will return all files regardless of file type.
+ The depth to search through. If the depthToSearch
+ is 0, only the argument directory will be searched.
+ A list containing all of the files found which match the fileType.
+
+
+
+ Determines whether a particular file is a graphical file that can be loaded by the FRB Engine.
+
+
+ This method does conducts the simple test of looking at the extension of the filename. If the extension inaccurately
+ represents the actual format of the file, the method may also inaccurately report whether the file is graphical.
+
+ The file name to test.
+ Whether the file is a graphic file.
+
+
+
+ Returns the fileName without an extension, or makes no changes if fileName has no extension.
+
+ The file name.
+ The file name with extension removed if an extension existed.
+
+
+
+ Modifies the fileName by removing its path, or makes no changes if the fileName has no path.
+
+ The file name to change
+
+
+
+ Returns the fileName without a path, or makes no changes if the fileName has no path.
+
+ The file name.
+ The modified fileName if a path is found.
+
+
+
+ Sets the relative directory to the current directory.
+
+
+ The current directory is not necessarily the same as the directory of the .exe. If the
+ .exe is called from a different location (such as the command line in a different folder),
+ the current directory will differ.
+
+
+
+
+ Replaces back slashes with forward slashes, but
+ doesn't break network addresses.
+
+ The string to replace slashes in.
+
+
+
+ The directory that FlatRedBall will use when loading assets. Defaults to the application's directory.
+
+
+
+
+ Gets the path to the user specific application data directory.
+
+ If your game/application will be writing anything to the file system, you will want
+ to do so somewhere in this directory. The reason for this is because you cannot anticipate
+ whether the user will have the needed permissions to write to the directory where the
+ executable lives.
+ C:\Documents and Settings\<username>\Application Data
+
+
+
+ Contains an indexed array of Colors to be used by images with ColorType 3 and possibly ColorTypes
+ 2 and 6.
+
+
+
+
+ Simple struct used to hold sample values.
+
+
+
+
+ Class responsible for loading GIF files.
+
+
+ For information, see:
+ http://www.fileformat.info/format/gif/
+
+
+
+
+ A list of ImageDatas with timing information on each element.
+
+
+ This class is used when loading GIF files to an AnimationChain.
+
+
+
+ This class let's you easily make HTTP requests and, if required,
+ deserialize the results into local strongly typed objects. Callbacks called
+ on separate thread.
+
+
+ Simple HTTP Get, gives you the string result
+
+
+ Simple HTTP Get, gives you the string result
+
+
+ Does an HTTP Get, and deserializes the XML result (assumes UTF8) with the File Manager Deserializer.
+
+
+ Does an HTTP Get, and deserializes the XML result (assumes UTF8) with the File Manager Deserializer.
+
+
+ Does an HTTP Get, and deserializes the JSON result (assumes UTF8) with the .
+
+
+ Does an HTTP Get, and deserializes the JSON result (assumes UTF8) with the .
+
+
+
+ Computes Adler32 checksum for a stream of data. An Adler32
+ checksum is not as reliable as a CRC32 checksum, but a lot faster to
+ compute.
+
+ The specification for Adler32 may be found in RFC 1950.
+ ZLIB Compressed Data Format Specification version 3.3)
+
+
+ From that document:
+
+ "ADLER32 (Adler-32 checksum)
+ This contains a checksum value of the uncompressed data
+ (excluding any dictionary data) computed according to Adler-32
+ algorithm. This algorithm is a 32-bit extension and improvement
+ of the Fletcher algorithm, used in the ITU-T X.224 / ISO 8073
+ standard.
+
+ Adler-32 is composed of two sums accumulated per byte: s1 is
+ the sum of all bytes, s2 is the sum of all s1 values. Both sums
+ are done modulo 65521. s1 is initialized to 1, s2 to zero. The
+ Adler-32 checksum is stored as s2*65536 + s1 in most-
+ significant-byte first (network) order."
+
+ "8.2. The Adler-32 algorithm
+
+ The Adler-32 algorithm is much faster than the CRC32 algorithm yet
+ still provides an extremely low probability of undetected errors.
+
+ The modulo on unsigned long accumulators can be delayed for 5552
+ bytes, so the modulo operation time is negligible. If the bytes
+ are a, b, c, the second sum is 3a + 2b + c + 3, and so is position
+ and order sensitive, unlike the first sum, which is just a
+ checksum. That 65521 is prime is important to avoid a possible
+ large class of two-byte errors that leave the check unchanged.
+ (The Fletcher checksum uses 255, which is not prime and which also
+ makes the Fletcher check insensitive to single byte changes 0 -
+ 255.)
+
+ The sum s1 is initialized to 1 instead of zero to make the length
+ of the sequence part of s2, so that the length does not have to be
+ checked separately. (Any sequence of zeroes has a Fletcher
+ checksum of zero.)"
+
+
+
+
+
+
+ Interface to compute a data checksum used by checked input/output streams.
+ A data checksum can be updated by one byte or with a byte array. After each
+ update the value of the current checksum can be returned by calling
+ getValue. The complete checksum object can also be reset
+ so it can be used again with new data.
+
+
+
+
+ Resets the data checksum as if no update was ever called.
+
+
+
+
+ Adds one byte to the data checksum.
+
+
+ the data value to add. The high byte of the int is ignored.
+
+
+
+
+ Updates the data checksum with the bytes taken from the array.
+
+
+ buffer an array of bytes
+
+
+
+
+ Adds the byte array to the data checksum.
+
+
+ The buffer which contains the data
+
+
+ The offset in the buffer where the data starts
+
+
+ the number of data bytes to add.
+
+
+
+
+ Returns the data checksum computed so far.
+
+
+
+
+ largest prime smaller than 65536
+
+
+
+
+ Creates a new instance of the Adler32 class.
+ The checksum starts off with a value of 1.
+
+
+
+
+ Resets the Adler32 checksum to the initial value.
+
+
+
+
+ Updates the checksum with a byte value.
+
+
+ The data value to add. The high byte of the int is ignored.
+
+
+
+
+ Updates the checksum with an array of bytes.
+
+
+ The source of the data to update with.
+
+
+
+
+ Updates the checksum with the bytes taken from the array.
+
+
+ an array of bytes
+
+
+ the start of the data used for this update
+
+
+ the number of bytes to use for this update
+
+
+
+
+ Returns the Adler32 data checksum computed so far.
+
+
+
+
+ SharpZipBaseException is the base exception class for the SharpZipLibrary.
+ All library exceptions are derived from this.
+
+ NOTE: Not all exceptions thrown will be derived from this class.
+ A variety of other exceptions are possible for example
+
+
+
+ Initializes a new instance of the SharpZipBaseException class.
+
+
+
+
+ Initializes a new instance of the SharpZipBaseException class with a specified error message.
+
+ A message describing the exception.
+
+
+
+ Initializes a new instance of the SharpZipBaseException class with a specified
+ error message and a reference to the inner exception that is the cause of this exception.
+
+ A message describing the exception.
+ The inner exception
+
+
+
+ This is the Deflater class. The deflater class compresses input
+ with the deflate algorithm described in RFC 1951. It has several
+ compression levels and three different strategies described below.
+
+ This class is not thread safe. This is inherent in the API, due
+ to the split of deflate and setInput.
+
+ author of the original java version : Jochen Hoenicke
+
+
+
+
+ The best and slowest compression level. This tries to find very
+ long and distant string repetitions.
+
+
+
+
+ The worst but fastest compression level.
+
+
+
+
+ The default compression level.
+
+
+
+
+ This level won't compress at all but output uncompressed blocks.
+
+
+
+
+ The compression method. This is the only method supported so far.
+ There is no need to use this constant at all.
+
+
+
+
+ Creates a new deflater with default compression level.
+
+
+
+
+ Creates a new deflater with given compression level.
+
+
+ the compression level, a value between NO_COMPRESSION
+ and BEST_COMPRESSION, or DEFAULT_COMPRESSION.
+
+ if lvl is out of range.
+
+
+
+ Creates a new deflater with given compression level.
+
+
+ the compression level, a value between NO_COMPRESSION
+ and BEST_COMPRESSION.
+
+
+ true, if we should suppress the Zlib/RFC1950 header at the
+ beginning and the adler checksum at the end of the output. This is
+ useful for the GZIP/PKZIP formats.
+
+ if lvl is out of range.
+
+
+
+ Resets the deflater. The deflater acts afterwards as if it was
+ just created with the same compression level and strategy as it
+ had before.
+
+
+
+
+ Flushes the current input block. Further calls to deflate() will
+ produce enough output to inflate everything in the current input
+ block. This is not part of Sun's JDK so I have made it package
+ private. It is used by DeflaterOutputStream to implement
+ flush().
+
+
+
+
+ Finishes the deflater with the current input block. It is an error
+ to give more input after this method was called. This method must
+ be called to force all bytes to be flushed.
+
+
+
+
+ Sets the data which should be compressed next. This should be only
+ called when needsInput indicates that more input is needed.
+ If you call setInput when needsInput() returns false, the
+ previous input that is still pending will be thrown away.
+ The given byte array should not be changed, before needsInput() returns
+ true again.
+ This call is equivalent to setInput(input, 0, input.length).
+
+
+ the buffer containing the input data.
+
+
+ if the buffer was finished() or ended().
+
+
+
+
+ Sets the data which should be compressed next. This should be
+ only called when needsInput indicates that more input is needed.
+ The given byte array should not be changed, before needsInput() returns
+ true again.
+
+
+ the buffer containing the input data.
+
+
+ the start of the data.
+
+
+ the number of data bytes of input.
+
+
+ if the buffer was Finish()ed or if previous input is still pending.
+
+
+
+
+ Sets the compression level. There is no guarantee of the exact
+ position of the change, but if you call this when needsInput is
+ true the change of compression level will occur somewhere near
+ before the end of the so far given input.
+
+
+ the new compression level.
+
+
+
+
+ Get current compression level
+
+ Returns the current compression level
+
+
+
+ Sets the compression strategy. Strategy is one of
+ DEFAULT_STRATEGY, HUFFMAN_ONLY and FILTERED. For the exact
+ position where the strategy is changed, the same as for
+ SetLevel() applies.
+
+
+ The new compression strategy.
+
+
+
+
+ Deflates the current input block with to the given array.
+
+
+ The buffer where compressed data is stored
+
+
+ The number of compressed bytes added to the output, or 0 if either
+ IsNeedingInput() or IsFinished returns true or length is zero.
+
+
+
+
+ Deflates the current input block to the given array.
+
+
+ Buffer to store the compressed data.
+
+
+ Offset into the output array.
+
+
+ The maximum number of bytes that may be stored.
+
+
+ The number of compressed bytes added to the output, or 0 if either
+ needsInput() or finished() returns true or length is zero.
+
+
+ If Finish() was previously called.
+
+
+ If offset or length don't match the array length.
+
+
+
+
+ Sets the dictionary which should be used in the deflate process.
+ This call is equivalent to setDictionary(dict, 0, dict.Length).
+
+
+ the dictionary.
+
+
+ if SetInput () or Deflate () were already called or another dictionary was already set.
+
+
+
+
+ Sets the dictionary which should be used in the deflate process.
+ The dictionary is a byte array containing strings that are
+ likely to occur in the data which should be compressed. The
+ dictionary is not stored in the compressed output, only a
+ checksum. To decompress the output you need to supply the same
+ dictionary again.
+
+
+ The dictionary data
+
+
+ The index where dictionary information commences.
+
+
+ The number of bytes in the dictionary.
+
+
+ If SetInput () or Deflate() were already called or another dictionary was already set.
+
+
+
+
+ Compression level.
+
+
+
+
+ If true no Zlib/RFC1950 headers or footers are generated
+
+
+
+
+ The current state.
+
+
+
+
+ The total bytes of output written.
+
+
+
+
+ The pending output.
+
+
+
+
+ The deflater engine.
+
+
+
+
+ Gets the current adler checksum of the data that was processed so far.
+
+
+
+
+ Gets the number of input bytes processed so far.
+
+
+
+
+ Gets the number of output bytes so far.
+
+
+
+
+ Returns true if the stream was finished and no more output bytes
+ are available.
+
+
+
+
+ Returns true, if the input buffer is empty.
+ You should then call setInput().
+ NOTE: This method can also return true when the stream
+ was finished.
+
+
+
+
+ This class contains constants used for deflation.
+
+
+
+
+ Set to true to enable debugging
+
+
+
+
+ Written to Zip file to identify a stored block
+
+
+
+
+ Identifies static tree in Zip file
+
+
+
+
+ Identifies dynamic tree in Zip file
+
+
+
+
+ Header flag indicating a preset dictionary for deflation
+
+
+
+
+ Sets internal buffer sizes for Huffman encoding
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Internal compression engine constant
+
+
+
+
+ Strategies for deflater
+
+
+
+
+ The default strategy
+
+
+
+
+ This strategy will only allow longer string repetitions. It is
+ useful for random data with a small character set.
+
+
+
+
+ This strategy will not look for string repetitions at all. It
+ only encodes with Huffman trees (which means, that more common
+ characters get a smaller encoding.
+
+
+
+
+ Low level compression engine for deflate algorithm which uses a 32K sliding window
+ with secondary compression from Huffman/Shannon-Fano codes.
+
+
+
+
+ Construct instance with pending buffer
+
+
+ Pending buffer to use
+ >
+
+
+
+ Deflate drives actual compression of data
+
+ True to flush input buffers
+ Finish deflation with the current input.
+ Returns true if progress has been made.
+
+
+
+ Sets input data to be deflated. Should only be called when NeedsInput()
+ returns true
+
+ The buffer containing input data.
+ The offset of the first byte of data.
+ The number of bytes of data to use as input.
+
+
+
+ Determines if more input is needed.
+
+ Return true if input is needed via SetInput
+
+
+
+ Set compression dictionary
+
+ The buffer containing the dictionary data
+ The offset in the buffer for the first byte of data
+ The length of the dictionary data.
+
+
+
+ Reset internal state
+
+
+
+
+ Reset Adler checksum
+
+
+
+
+ Set the deflate level (0-9)
+
+ The value to set the level to.
+
+
+
+ Fill the window
+
+
+
+
+ Inserts the current string in the head hash and returns the previous
+ value for this hash.
+
+ The previous hash value
+
+
+
+ Find the best (longest) string in the window matching the
+ string starting at strstart.
+
+ Preconditions:
+
+ strstart + MAX_MATCH <= window.length.
+
+
+ True if a match greater than the minimum length is found
+
+
+
+ Hashtable, hashing three characters to an index for window, so
+ that window[index]..window[index+2] have this hash code.
+ Note that the array should really be unsigned short, so you need
+ to and the values with 0xffff.
+
+
+
+
+ prev[index & WMASK] points to the previous index that has the
+ same hash code as the string starting at index. This way
+ entries with the same hash code are in a linked list.
+ Note that the array should really be unsigned short, so you need
+ to and the values with 0xffff.
+
+
+
+
+ Points to the current character in the window.
+
+
+
+
+ lookahead is the number of characters starting at strstart in
+ window that are valid.
+ So window[strstart] until window[strstart+lookahead-1] are valid
+ characters.
+
+
+
+
+ This array contains the part of the uncompressed stream that
+ is of relevance. The current character is indexed by strstart.
+
+
+
+
+ The current compression function.
+
+
+
+
+ The input data for compression.
+
+
+
+
+ The total bytes of input read.
+
+
+
+
+ The offset into inputBuf, where input data starts.
+
+
+
+
+ The end offset of the input data.
+
+
+
+
+ The adler checksum
+
+
+
+
+ Get current value of Adler checksum
+
+
+
+
+ Total data processed
+
+
+
+
+ Get/set the deflate strategy
+
+
+
+
+ This is the DeflaterHuffman class.
+
+ This class is not thread safe. This is inherent in the API, due
+ to the split of Deflate and SetInput.
+
+ author of the original java version : Jochen Hoenicke
+
+
+
+
+ Pending buffer to use
+
+
+
+
+ Construct instance with pending buffer
+
+ Pending buffer to use
+
+
+
+ Reset internal state
+
+
+
+
+ Write all trees to pending buffer
+
+ The number/rank of treecodes to send.
+
+
+
+ Compress current buffer writing data to pending buffer
+
+
+
+
+ Flush block to output with no compression
+
+ Data to write
+ Index of first byte to write
+ Count of bytes to write
+ True if this is the last block
+
+
+
+ Flush block to output with compression
+
+ Data to flush
+ Index of first byte to flush
+ Count of bytes to flush
+ True if this is the last block
+
+
+
+ Get value indicating if internal buffer is full
+
+ true if buffer is full
+
+
+
+ Add literal to buffer
+
+ Literal value to add to buffer.
+ Value indicating internal buffer is full
+
+
+
+ Add distance code and length to literal and distance trees
+
+ Distance code
+ Length
+ Value indicating if internal buffer is full
+
+
+
+ Reverse the bits of a 16 bit value.
+
+ Value to reverse bits
+ Value with bits reversed
+
+
+
+ Resets the internal state of the tree
+
+
+
+
+ Check that all frequencies are zero
+
+
+ At least one frequency is non-zero
+
+
+
+
+ Set static codes and length
+
+ new codes
+ length for new codes
+
+
+
+ Build dynamic codes and lengths
+
+
+
+
+ Get encoded length
+
+ Encoded length, the sum of frequencies * lengths
+
+
+
+ Scan a literal or distance tree to determine the frequencies of the codes
+ in the bit length tree.
+
+
+
+
+ Write tree values
+
+ Tree to write
+
+
+
+ This class stores the pending output of the Deflater.
+
+ author of the original java version : Jochen Hoenicke
+
+
+
+
+ This class is general purpose class for writing data to a buffer.
+
+ It allows you to write bits as well as bytes
+ Based on DeflaterPending.java
+
+ author of the original java version : Jochen Hoenicke
+
+
+
+
+ Internal work buffer
+
+
+
+
+ construct instance using default buffer size of 4096
+
+
+
+
+ construct instance using specified buffer size
+
+
+ size to use for internal buffer
+
+
+
+
+ Clear internal state/buffers
+
+
+
+
+ Write a byte to buffer
+
+
+ The value to write
+
+
+
+
+ Write a short value to buffer LSB first
+
+
+ The value to write.
+
+
+
+
+ write an integer LSB first
+
+ The value to write.
+
+
+
+ Write a block of data to buffer
+
+ data to write
+ offset of first byte to write
+ number of bytes to write
+
+
+
+ Align internal buffer on a byte boundary
+
+
+
+
+ Write bits to internal buffer
+
+ source of bits
+ number of bits to write
+
+
+
+ Write a short value to internal buffer most significant byte first
+
+ value to write
+
+
+
+ Flushes the pending buffer into the given output array. If the
+ output array is to small, only a partial flush is done.
+
+ The output array.
+ The offset into output array.
+ The maximum number of bytes to store.
+ The number of bytes flushed.
+
+
+
+ Convert internal buffer to byte array.
+ Buffer is empty on completion
+
+
+ The internal buffer contents converted to a byte array.
+
+
+
+
+ The number of bits written to the buffer
+
+
+
+
+ Indicates if buffer has been flushed
+
+
+
+
+ Construct instance with default buffer size
+
+
+
+
+ Inflater is used to decompress data that has been compressed according
+ to the "deflate" standard described in rfc1951.
+
+ By default Zlib (rfc1950) headers and footers are expected in the input.
+ You can use constructor public Inflater(bool noHeader) passing true
+ if there is no Zlib header information
+
+ The usage is as following. First you have to set some input with
+ SetInput(), then Inflate() it. If inflate doesn't
+ inflate any bytes there may be three reasons:
+
+
IsNeedingInput() returns true because the input buffer is empty.
+ You have to provide more input with SetInput().
+ NOTE: IsNeedingInput() also returns true when, the stream is finished.
+
+
IsNeedingDictionary() returns true, you have to provide a preset
+ dictionary with SetDictionary().
+
IsFinished returns true, the inflater has finished.