A* Pathfinding Project  3.6
The A* Pathfinding Project for Unity 3D
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Properties Events Macros Groups Pages
AstarSerializer Class Reference

Handles low level serialization and deserialization of graph settings and data. More...

Detailed Description

Handles low level serialization and deserialization of graph settings and data.

Public Member Functions

 AstarSerializer (AstarData data)
 
 AstarSerializer (AstarData data, SerializeSettings settings)
 
void AddChecksum (byte[] bytes)
 
void CloseDeserialize ()
 
byte[] CloseSerialize ()
 
void DeserializeEditorSettings (GraphEditorBase[] graphEditors)
 Deserializes graph editor settings.
 
void DeserializeExtraInfo ()
 Deserializes extra graph info.
 
NavGraph[] DeserializeGraphs ()
 Deserializes graph settings.
 
void DeserializeNodes ()
 Deserializes nodes.
 
UserConnection[] DeserializeUserConnections ()
 Deserializes manually created connections.
 
uint GetChecksum ()
 
bool OpenDeserialize (byte[] bytes)
 
void OpenSerialize ()
 
void PostDeserialization ()
 
byte[] Serialize (NavGraph graph)
 Serializes the graph settings to JSON and returns the data.
 
void SerializeEditorSettings (GraphEditorBase[] editors)
 
void SerializeExtraInfo ()
 
void SerializeGraphs (NavGraph[] _graphs)
 
void SerializeNodes ()
 
void SerializeUserConnections (UserConnection[] conns)
 

Static Public Member Functions

static byte[] LoadFromFile (string path)
 
static void SaveToFile (string path, byte[] data)
 

Public Attributes

JsonReaderSettings readerSettings
 
JsonWriterSettings writerSettings
 

Private Member Functions

GraphMeta DeserializeMeta (ZipEntry entry)
 
void DeserializeNodeConnections (int index, BinaryReader reader)
 Deserializes node connections for a specified graph.
 
void DeserializeNodes (int index, BinaryReader reader)
 Deserializes nodes for a specified graph.
 
string GetString (ZipEntry entry)
 
byte[] SerializeMeta ()
 Serialize metadata about alll graphs.
 
byte[] SerializeNodeConnections (int index)
 Serialize node connections for given graph index.
 
byte[] SerializeNodes (int index)
 

Static Private Member Functions

static System.Text.StringBuilder GetStringBuilder ()
 Returns a cached StringBuilder.
 

Private Attributes

const string binaryExt = ".binary"
 
uint checksum = 0xffffffff
 
AstarData data
 
System.Text.UTF8Encoding encoding =new System.Text.UTF8Encoding()
 
NavGraph[] graphs
 
const string jsonExt = ".json"
 
GraphMeta meta
 
SerializeSettings settings
 
MemoryStream str
 
ZipFile zip
 

Static Private Attributes

static System.Text.StringBuilder _stringBuilder = new System.Text.StringBuilder()
 

Constructor & Destructor Documentation

AstarSerializer ( AstarData  data,
SerializeSettings  settings 
)

Member Function Documentation

void AddChecksum ( byte[]  bytes)
void CloseDeserialize ( )
byte [] CloseSerialize ( )
void DeserializeEditorSettings ( GraphEditorBase[]  graphEditors)

Deserializes graph editor settings.

For future compatibility this method does not assume that the graphEditors array matches the graphs array in order and/or count. It searches for a matching graph (matching if graphEditor.target == graph) for every graph editor. Multiple graph editors should not refer to the same graph.

Note
Stored in files named "graph#_editor.json" where # is the graph number.
void DeserializeExtraInfo ( )

Deserializes extra graph info.

Extra graph info is specified by the graph types.

See Also
Pathfinding.NavGraph.DeserializeExtraInfo
Note
Stored in files named "graph#_extra.binary" where # is the graph number.
NavGraph [] DeserializeGraphs ( )

Deserializes graph settings.

Note
Stored in files named "graph#.json" where # is the graph number.
GraphMeta DeserializeMeta ( ZipEntry  entry)
private
void DeserializeNodeConnections ( int  index,
BinaryReader  reader 
)
private

Deserializes node connections for a specified graph.

void DeserializeNodes ( )

Deserializes nodes.

Nodes can be saved to enable loading a full scanned graph from memory/file without scanning the graph first.

Note
Node info is stored in files named "graph#_nodes.binary" where # is the graph number.
Connectivity info is stored in files named "graph#_conns.binary" where # is the graph number.
void DeserializeNodes ( int  index,
BinaryReader  reader 
)
private

Deserializes nodes for a specified graph.

UserConnection [] DeserializeUserConnections ( )

Deserializes manually created connections.

Connections are created in the A* inspector.

Note
Stored in a file named "connections.json".
uint GetChecksum ( )
string GetString ( ZipEntry  entry)
private
static System.Text.StringBuilder GetStringBuilder ( )
staticprivate

Returns a cached StringBuilder.

This function only has one string builder cached and should thus only be called from a single thread and should not be called while using an earlier got string builder.

static byte [] LoadFromFile ( string  path)
static
bool OpenDeserialize ( byte[]  bytes)
void OpenSerialize ( )
void PostDeserialization ( )
static void SaveToFile ( string  path,
byte[]  data 
)
static
byte [] Serialize ( NavGraph  graph)

Serializes the graph settings to JSON and returns the data.

void SerializeEditorSettings ( GraphEditorBase[]  editors)
void SerializeExtraInfo ( )
void SerializeGraphs ( NavGraph[]  _graphs)
byte [] SerializeMeta ( )
private

Serialize metadata about alll graphs.

byte [] SerializeNodeConnections ( int  index)
private

Serialize node connections for given graph index.

Connections structure is as follows. Bracket structure has nothing to do with data, just how it is structured:

for every node {
Int32 NodeIndex
Int16 ConnectionCount
for every connection of the node {
Int32 OtherNodeIndex
Int32 ConnectionCost
}
}
void SerializeNodes ( )
byte [] SerializeNodes ( int  index)
private
void SerializeUserConnections ( UserConnection[]  conns)

Member Data Documentation

System.Text.StringBuilder _stringBuilder = new System.Text.StringBuilder()
staticprivate
const string binaryExt = ".binary"
private
uint checksum = 0xffffffff
private
AstarData data
private
System.Text.UTF8Encoding encoding =new System.Text.UTF8Encoding()
private
NavGraph [] graphs
private
const string jsonExt = ".json"
private
GraphMeta meta
private
JsonReaderSettings readerSettings
SerializeSettings settings
private
MemoryStream str
private
JsonWriterSettings writerSettings
ZipFile zip
private

The documentation for this class was generated from the following file: