diff mayachemtools/docs/modules/txt/Path.txt @ 0:73ae111cf86f draft

Uploaded
author deepakjadmin
date Wed, 20 Jan 2016 11:55:01 -0500
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mayachemtools/docs/modules/txt/Path.txt	Wed Jan 20 11:55:01 2016 -0500
@@ -0,0 +1,208 @@
+NAME
+    Path - Path class
+
+SYNOPSIS
+    use Graph::Path;
+
+    use Graph::Path qw(:all);
+
+DESCRIPTION
+    Path class provides the following methods:
+
+    new, AddVertex, AddVertices, Copy, GetCommonVertices, GetEdges,
+    GetEndVertex, GetLength, GetStartVertex, GetTerminalVertices, GetVertex,
+    GetVertices, IsCycle, IsIndependentCyclicPath, IsIndependentPath,
+    IsPath, Join, JoinAtVertex, PopVertex, PushVertex, PushVertices,
+    Reverse, ShiftVertex, StringifyPath, UnshiftVertex, UnshiftVertices
+
+    Path is a sequential list of vertices with an edge between two
+    successive vertices. The path becomes a cycle when start vertex and end
+    vertex are the same.
+
+    The following operators are overloaded:
+
+        "" == eq
+
+  METHODS
+    new
+            $NewPath = new Path();
+            $NewPath = new Path(@VertexIDs);
+
+        Using specified *VertexIDs*, new method creates a new Path object
+        and returns newly created Path object.
+
+    AddVertex
+            $Path->AddVertex($VertexID);
+
+        Adds *VertexID* to *Path* and returns *Path*.
+
+    AddVertices
+            $Path->AddVertices(@VertexIDs);
+
+        Adds vertices using *VertexIDs* to *Path* and returns *Graph*.
+
+    Copy
+            $Return = $Path->Copy();
+
+        Copies *Path* and its associated data using Storable::dclone and
+        returns a new Path object.
+
+    GetCommonVertices
+            @CommonVertices = $Path->GetCommonVertices($OtherPath);
+            $NumOfCommonVertices = $Path->GetCommonVertices($OtherPath);
+
+        Returns an array containing common vertex IDs between two paths. In
+        scalar context, number of common vertices is returned.
+
+    GetEdges
+            @EdgesVertexIDs = $Path->GetEdges();
+            $NumOfEdges = $Path->GetEdges();
+
+        Returns an array containg successive paris of vertex IDs
+        corresponding to all edges in *Path*. In scalar context, the number
+        of edges is returned.
+
+    GetEndVertex
+            $VertexID = $Path->GetEndVertex();
+
+        Returns VertexID of end vertex in *Path*.
+
+    GetLength
+            $Length = $Path->GetLength();
+
+        Returns Length of *Path* corresponding to number of vertices in
+        *Path*.
+
+    GetStartVertex
+            $VertexID = $Path->GetStartVertex();
+
+        Returns VertexID of start vertex in *Path*.
+
+    GetTerminalVertices
+            ($StartVertexID, $EndVertexID) = $Path->GetTerminalVertices();
+
+        Returns vertex IDs of start and end vertices in *Path*.
+
+    GetVertex
+            $VertexID = $Path->GetVertex($Index);
+
+        Returns specific vertex ID from *Path* corresponding to *Index* with
+        indicies starting from 0.
+
+    GetVertices
+            @Vertices = $Path->GetVertices();
+            $NumOfVertices = $Path->GetVertices();
+
+        Returns an array containing all vertex IDs in *Path*. In scalar
+        context, number of vertices is returned.
+
+    IsCycle
+            $Status = $Path->IsCycle();
+
+        Returns 1 or 0 based on whether *Path* is a CyclicPath which has the
+        same start and end vertex IDs.
+
+    IsIndependentCyclicPath
+            $Status = $Path->IsIndependentCyclicPath();
+
+        Returns 1 or 0 based on whether *Path* is an independent CyclicPath.
+        For a *Path* to be an independent cyclic path, it must be a cyclic
+        path and have unique vertices.
+
+    IsIndependentPath
+            $Status = $Path->IsIndependentPath();
+
+        Returns 1 or 0 based on whether *Path* is an independent Path. For a
+        *Path* to be an independent path, it must have unique vertices.
+
+    IsPath
+            $Status = Graph::Path::IsPath();
+
+        Returns 1 or 0 based on whether *Object* is a Path object
+
+    Join
+            $NewPath = $Path->Join($OtherPath);
+            $NewPath = $Path->Join(@VertexIDs);
+
+        Joins existing *Path* with a new path specified as a *OtherPath*
+        object or an array of *VertexIDs* and returns *NewPath*.
+
+        In order to successfully join two paths, terminal vertices must have
+        a common vertex. Based on the common terminal vertex found,
+        additional path vertices are added to the current *Path* in one of
+        the following four ways:
+
+            . EndVertex = NewStartVertex: New path at end of current path with
+              same vertices order
+
+            . EndVertex = NewEndVertex: New path at end of current path with
+              reversed vertices order
+
+            . StartVertex = NewEndVertex: New path at front of current path
+              with same vertices order
+
+            . StartVertex = NewStartVertex: New path at front of current path
+              with reversed vertices order
+
+    JoinAtVertex
+            $NewPath = $Path->JoinAtVertex($OtherPath, $CenterVertexID);
+
+        Joins existing *Path* with *OtherPath* at a specified
+        *CeterVertexID* and returns a *NewPath*.
+
+    PopVertex
+            $Path->PopVertex();
+
+        Removes end vertex from *Path* and returns *Path*.
+
+    PushVertex
+            $Path->PushVertex($VertexID);
+
+        Adds *VertexID* to *Path* after end vertex and returns *Path*.
+
+    PushVertices
+            $Path->PushVertices(@VertexIDs);
+
+        Adds *VertexIDs* to *Path* after end vertex and returns *Path*.
+
+    Reverse
+            $Path->Reverse();
+
+        Reverses order of vertices in *Path* and returns *Path*.
+
+    ShiftVertex
+            $Path->ShiftVertex();
+
+        Removes start vertex from *Path* and returns *Path*.
+
+    StringifyPath
+            $String = $Path->StringifyPath();
+
+        Returns a string containing information about *Path* object.
+
+    UnshiftVertex
+            $Path->UnshiftVertex($VertexID);
+
+        Adds *VertexID* to *Path* before start vertex and returns *Path*.
+
+    UnshiftVertices
+            $Path->UnshiftVertices(@VertexIDs);
+
+        Adds *VertexIDs* to *Path* before start vertex and returns *Path*.
+
+AUTHOR
+    Manish Sud <msud@san.rr.com>
+
+SEE ALSO
+    PathGraph.pm, PathsTraversal.pm
+
+COPYRIGHT
+    Copyright (C) 2015 Manish Sud. All rights reserved.
+
+    This file is part of MayaChemTools.
+
+    MayaChemTools is free software; you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as published by
+    the Free Software Foundation; either version 3 of the License, or (at
+    your option) any later version.
+