Mercurial > repos > deepakjadmin > mayatool3_test2
comparison docs/modules/txt/Path.txt @ 0:4816e4a8ae95 draft default tip
Uploaded
| author | deepakjadmin |
|---|---|
| date | Wed, 20 Jan 2016 09:23:18 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:4816e4a8ae95 |
|---|---|
| 1 NAME | |
| 2 Path - Path class | |
| 3 | |
| 4 SYNOPSIS | |
| 5 use Graph::Path; | |
| 6 | |
| 7 use Graph::Path qw(:all); | |
| 8 | |
| 9 DESCRIPTION | |
| 10 Path class provides the following methods: | |
| 11 | |
| 12 new, AddVertex, AddVertices, Copy, GetCommonVertices, GetEdges, | |
| 13 GetEndVertex, GetLength, GetStartVertex, GetTerminalVertices, GetVertex, | |
| 14 GetVertices, IsCycle, IsIndependentCyclicPath, IsIndependentPath, | |
| 15 IsPath, Join, JoinAtVertex, PopVertex, PushVertex, PushVertices, | |
| 16 Reverse, ShiftVertex, StringifyPath, UnshiftVertex, UnshiftVertices | |
| 17 | |
| 18 Path is a sequential list of vertices with an edge between two | |
| 19 successive vertices. The path becomes a cycle when start vertex and end | |
| 20 vertex are the same. | |
| 21 | |
| 22 The following operators are overloaded: | |
| 23 | |
| 24 "" == eq | |
| 25 | |
| 26 METHODS | |
| 27 new | |
| 28 $NewPath = new Path(); | |
| 29 $NewPath = new Path(@VertexIDs); | |
| 30 | |
| 31 Using specified *VertexIDs*, new method creates a new Path object | |
| 32 and returns newly created Path object. | |
| 33 | |
| 34 AddVertex | |
| 35 $Path->AddVertex($VertexID); | |
| 36 | |
| 37 Adds *VertexID* to *Path* and returns *Path*. | |
| 38 | |
| 39 AddVertices | |
| 40 $Path->AddVertices(@VertexIDs); | |
| 41 | |
| 42 Adds vertices using *VertexIDs* to *Path* and returns *Graph*. | |
| 43 | |
| 44 Copy | |
| 45 $Return = $Path->Copy(); | |
| 46 | |
| 47 Copies *Path* and its associated data using Storable::dclone and | |
| 48 returns a new Path object. | |
| 49 | |
| 50 GetCommonVertices | |
| 51 @CommonVertices = $Path->GetCommonVertices($OtherPath); | |
| 52 $NumOfCommonVertices = $Path->GetCommonVertices($OtherPath); | |
| 53 | |
| 54 Returns an array containing common vertex IDs between two paths. In | |
| 55 scalar context, number of common vertices is returned. | |
| 56 | |
| 57 GetEdges | |
| 58 @EdgesVertexIDs = $Path->GetEdges(); | |
| 59 $NumOfEdges = $Path->GetEdges(); | |
| 60 | |
| 61 Returns an array containg successive paris of vertex IDs | |
| 62 corresponding to all edges in *Path*. In scalar context, the number | |
| 63 of edges is returned. | |
| 64 | |
| 65 GetEndVertex | |
| 66 $VertexID = $Path->GetEndVertex(); | |
| 67 | |
| 68 Returns VertexID of end vertex in *Path*. | |
| 69 | |
| 70 GetLength | |
| 71 $Length = $Path->GetLength(); | |
| 72 | |
| 73 Returns Length of *Path* corresponding to number of vertices in | |
| 74 *Path*. | |
| 75 | |
| 76 GetStartVertex | |
| 77 $VertexID = $Path->GetStartVertex(); | |
| 78 | |
| 79 Returns VertexID of start vertex in *Path*. | |
| 80 | |
| 81 GetTerminalVertices | |
| 82 ($StartVertexID, $EndVertexID) = $Path->GetTerminalVertices(); | |
| 83 | |
| 84 Returns vertex IDs of start and end vertices in *Path*. | |
| 85 | |
| 86 GetVertex | |
| 87 $VertexID = $Path->GetVertex($Index); | |
| 88 | |
| 89 Returns specific vertex ID from *Path* corresponding to *Index* with | |
| 90 indicies starting from 0. | |
| 91 | |
| 92 GetVertices | |
| 93 @Vertices = $Path->GetVertices(); | |
| 94 $NumOfVertices = $Path->GetVertices(); | |
| 95 | |
| 96 Returns an array containing all vertex IDs in *Path*. In scalar | |
| 97 context, number of vertices is returned. | |
| 98 | |
| 99 IsCycle | |
| 100 $Status = $Path->IsCycle(); | |
| 101 | |
| 102 Returns 1 or 0 based on whether *Path* is a CyclicPath which has the | |
| 103 same start and end vertex IDs. | |
| 104 | |
| 105 IsIndependentCyclicPath | |
| 106 $Status = $Path->IsIndependentCyclicPath(); | |
| 107 | |
| 108 Returns 1 or 0 based on whether *Path* is an independent CyclicPath. | |
| 109 For a *Path* to be an independent cyclic path, it must be a cyclic | |
| 110 path and have unique vertices. | |
| 111 | |
| 112 IsIndependentPath | |
| 113 $Status = $Path->IsIndependentPath(); | |
| 114 | |
| 115 Returns 1 or 0 based on whether *Path* is an independent Path. For a | |
| 116 *Path* to be an independent path, it must have unique vertices. | |
| 117 | |
| 118 IsPath | |
| 119 $Status = Graph::Path::IsPath(); | |
| 120 | |
| 121 Returns 1 or 0 based on whether *Object* is a Path object | |
| 122 | |
| 123 Join | |
| 124 $NewPath = $Path->Join($OtherPath); | |
| 125 $NewPath = $Path->Join(@VertexIDs); | |
| 126 | |
| 127 Joins existing *Path* with a new path specified as a *OtherPath* | |
| 128 object or an array of *VertexIDs* and returns *NewPath*. | |
| 129 | |
| 130 In order to successfully join two paths, terminal vertices must have | |
| 131 a common vertex. Based on the common terminal vertex found, | |
| 132 additional path vertices are added to the current *Path* in one of | |
| 133 the following four ways: | |
| 134 | |
| 135 . EndVertex = NewStartVertex: New path at end of current path with | |
| 136 same vertices order | |
| 137 | |
| 138 . EndVertex = NewEndVertex: New path at end of current path with | |
| 139 reversed vertices order | |
| 140 | |
| 141 . StartVertex = NewEndVertex: New path at front of current path | |
| 142 with same vertices order | |
| 143 | |
| 144 . StartVertex = NewStartVertex: New path at front of current path | |
| 145 with reversed vertices order | |
| 146 | |
| 147 JoinAtVertex | |
| 148 $NewPath = $Path->JoinAtVertex($OtherPath, $CenterVertexID); | |
| 149 | |
| 150 Joins existing *Path* with *OtherPath* at a specified | |
| 151 *CeterVertexID* and returns a *NewPath*. | |
| 152 | |
| 153 PopVertex | |
| 154 $Path->PopVertex(); | |
| 155 | |
| 156 Removes end vertex from *Path* and returns *Path*. | |
| 157 | |
| 158 PushVertex | |
| 159 $Path->PushVertex($VertexID); | |
| 160 | |
| 161 Adds *VertexID* to *Path* after end vertex and returns *Path*. | |
| 162 | |
| 163 PushVertices | |
| 164 $Path->PushVertices(@VertexIDs); | |
| 165 | |
| 166 Adds *VertexIDs* to *Path* after end vertex and returns *Path*. | |
| 167 | |
| 168 Reverse | |
| 169 $Path->Reverse(); | |
| 170 | |
| 171 Reverses order of vertices in *Path* and returns *Path*. | |
| 172 | |
| 173 ShiftVertex | |
| 174 $Path->ShiftVertex(); | |
| 175 | |
| 176 Removes start vertex from *Path* and returns *Path*. | |
| 177 | |
| 178 StringifyPath | |
| 179 $String = $Path->StringifyPath(); | |
| 180 | |
| 181 Returns a string containing information about *Path* object. | |
| 182 | |
| 183 UnshiftVertex | |
| 184 $Path->UnshiftVertex($VertexID); | |
| 185 | |
| 186 Adds *VertexID* to *Path* before start vertex and returns *Path*. | |
| 187 | |
| 188 UnshiftVertices | |
| 189 $Path->UnshiftVertices(@VertexIDs); | |
| 190 | |
| 191 Adds *VertexIDs* to *Path* before start vertex and returns *Path*. | |
| 192 | |
| 193 AUTHOR | |
| 194 Manish Sud <msud@san.rr.com> | |
| 195 | |
| 196 SEE ALSO | |
| 197 PathGraph.pm, PathsTraversal.pm | |
| 198 | |
| 199 COPYRIGHT | |
| 200 Copyright (C) 2015 Manish Sud. All rights reserved. | |
| 201 | |
| 202 This file is part of MayaChemTools. | |
| 203 | |
| 204 MayaChemTools is free software; you can redistribute it and/or modify it | |
| 205 under the terms of the GNU Lesser General Public License as published by | |
| 206 the Free Software Foundation; either version 3 of the License, or (at | |
| 207 your option) any later version. | |
| 208 |
