823 lines
33 KiB
HTML
Executable File
823 lines
33 KiB
HTML
Executable File
<?xml version="1.0" encoding="ascii"?>
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
|
"DTD/xhtml1-transitional.dtd">
|
|
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
|
<head>
|
|
<title>Libs.immvcglib</title>
|
|
<link rel="stylesheet" href="epydoc.css" type="text/css" />
|
|
<script type="text/javascript" src="epydoc.js"></script>
|
|
</head>
|
|
|
|
<body bgcolor="white" text="black" link="blue" vlink="#204080"
|
|
alink="#204080">
|
|
<!-- ==================== NAVIGATION BAR ==================== -->
|
|
<table class="navbar" border="0" width="100%" cellpadding="0"
|
|
bgcolor="#a0c0ff" cellspacing="0">
|
|
<tr valign="middle">
|
|
|
|
<!-- Tree link -->
|
|
<th> <a
|
|
href="module-tree.html">Trees</a> </th>
|
|
|
|
<!-- Index link -->
|
|
<th> <a
|
|
href="identifier-index.html">Indices</a> </th>
|
|
|
|
<!-- Help link -->
|
|
<th> <a
|
|
href="help.html">Help</a> </th>
|
|
|
|
<!-- Project homepage -->
|
|
<th class="navbar" align="right" width="100%">
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><th class="navbar" align="center"
|
|
>Immunity Debugger API Reference</th>
|
|
</tr></table></th>
|
|
</tr>
|
|
</table>
|
|
<table width="100%" cellpadding="0" cellspacing="0">
|
|
<tr valign="top">
|
|
<td width="100%">
|
|
<span class="breadcrumbs">
|
|
Package Libs ::
|
|
Module immvcglib
|
|
</span>
|
|
</td>
|
|
<td>
|
|
<table cellpadding="0" cellspacing="0">
|
|
<!-- hide/show private -->
|
|
<tr><td align="right"><span class="options">[<a href="javascript:void(0);" class="privatelink"
|
|
onclick="toggle_private();">hide private</a>]</span></td></tr>
|
|
<tr><td align="right"><span class="options"
|
|
>[<a href="frames.html" target="_top">frames</a
|
|
>] | <a href="Libs.immvcglib-module.html"
|
|
target="_top">no frames</a>]</span></td></tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<!-- ==================== MODULE DESCRIPTION ==================== -->
|
|
<h1 class="epydoc">Module immvcglib</h1><p class="nomargin-top"><span class="codelink"><a href="Libs.immvcglib-pysrc.html">source code</a></span></p>
|
|
<p>Reads vcg buffer and creates the graph using Immunity Debugger lib</p>
|
|
<p>(c) Immunity, Inc. 2004-2007</p>
|
|
<p><a href="http://www.immunityinc.com" target="_top">Immunity
|
|
Inc.</a></p>
|
|
|
|
<!-- ==================== CLASSES ==================== -->
|
|
<a name="section-Classes"></a>
|
|
<table class="summary" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="table-header">
|
|
<td colspan="2" class="table-header">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr valign="top">
|
|
<td align="left"><span class="table-header">Classes</span></td>
|
|
<td align="right" valign="top"
|
|
><span class="options">[<a href="#section-Classes"
|
|
class="privatelink" onclick="toggle_private();"
|
|
>hide private</a>]</span></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<a href="Libs.immvcglib.graphTree-class.html" class="summary-name">graphTree</a>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<a href="Libs.immvcglib.ParseVCGList-class.html" class="summary-name">ParseVCGList</a><br />
|
|
recursive VCG parser
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<!-- ==================== FUNCTIONS ==================== -->
|
|
<a name="section-Functions"></a>
|
|
<table class="summary" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="table-header">
|
|
<td colspan="2" class="table-header">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr valign="top">
|
|
<td align="left"><span class="table-header">Functions</span></td>
|
|
<td align="right" valign="top"
|
|
><span class="options">[<a href="#section-Functions"
|
|
class="privatelink" onclick="toggle_private();"
|
|
>hide private</a>]</span></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="testVCGParse"></a><span class="summary-sig-name">testVCGParse</span>(<span class="summary-sig-arg">path</span>)</span><br />
|
|
test our new VCG parsing logic</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#testVCGParse">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="generateGraphFromBuf"></a><span class="summary-sig-name">generateGraphFromBuf</span>(<span class="summary-sig-arg">buf</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#generateGraphFromBuf">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="generateGraph"></a><span class="summary-sig-name">generateGraph</span>(<span class="summary-sig-arg">address</span>)</span><br />
|
|
generates a VCG given a function address</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#generateGraph">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="adjustStartCoords"></a><span class="summary-sig-name">adjustStartCoords</span>(<span class="summary-sig-arg">vertices</span>,
|
|
<span class="summary-sig-arg">G</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#adjustStartCoords">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="createVertexList"></a><span class="summary-sig-name">createVertexList</span>(<span class="summary-sig-arg">nodes</span>,
|
|
<span class="summary-sig-arg">handler</span>)</span><br />
|
|
iterate vcg file to get vertex list and vertices's buffers</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#createVertexList">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="finalAttemptToPlace"></a><span class="summary-sig-name">finalAttemptToPlace</span>(<span class="summary-sig-arg">vertices</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#finalAttemptToPlace">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="searchForDummyPathsH2South"></a><span class="summary-sig-name">searchForDummyPathsH2South</span>(<span class="summary-sig-arg">edgelist</span>,
|
|
<span class="summary-sig-arg">vertices</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#searchForDummyPathsH2South">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="searchForDummyPathsH2North"></a><span class="summary-sig-name">searchForDummyPathsH2North</span>(<span class="summary-sig-arg">edgelist</span>,
|
|
<span class="summary-sig-arg">vertices</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#searchForDummyPathsH2North">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="applyDummyPathsH2SouthTrue"></a><span class="summary-sig-name">applyDummyPathsH2SouthTrue</span>(<span class="summary-sig-arg">vertexlist</span>,
|
|
<span class="summary-sig-arg">edgelist</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#applyDummyPathsH2SouthTrue">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="applyDummyPathsH2South"></a><span class="summary-sig-name">applyDummyPathsH2South</span>(<span class="summary-sig-arg">vertexlist</span>,
|
|
<span class="summary-sig-arg">edgelist</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#applyDummyPathsH2South">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="applyDummyPathsH2North2"></a><span class="summary-sig-name">applyDummyPathsH2North2</span>(<span class="summary-sig-arg">vertexlist</span>,
|
|
<span class="summary-sig-arg">edgelist</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#applyDummyPathsH2North2">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="applyDummyPathsH2North"></a><span class="summary-sig-name">applyDummyPathsH2North</span>(<span class="summary-sig-arg">vertexlist</span>,
|
|
<span class="summary-sig-arg">edgelist</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#applyDummyPathsH2North">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="searchForDummyPathsW"></a><span class="summary-sig-name">searchForDummyPathsW</span>(<span class="summary-sig-arg">edgelist</span>,
|
|
<span class="summary-sig-arg">vertices</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#searchForDummyPathsW">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="pathFinder"></a><span class="summary-sig-name">pathFinder</span>(<span class="summary-sig-arg">vertices</span>)</span><br />
|
|
find edge's path To find an endge path we start joining two vertex
|
|
with 3 basic strokes, A -> B -> C after placing each of this
|
|
basci strokes we check if it is not overlapping a vertex, if so we
|
|
decide a alternate path based on dummy blank points A -> A' ->
|
|
A'' -> B -> C where A' (x2,y2) is the original A (x2,y2) so the
|
|
next basic stroke B, knows how to keep going</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#pathFinder">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="addEndPointToEdge"></a><span class="summary-sig-name">addEndPointToEdge</span>(<span class="summary-sig-arg">edgelist</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#addEndPointToEdge">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="drawVertices"></a><span class="summary-sig-name">drawVertices</span>(<span class="summary-sig-arg">vertices</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#drawVertices">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="drawEdges"></a><span class="summary-sig-name">drawEdges</span>(<span class="summary-sig-arg">edgelist</span>,
|
|
<span class="summary-sig-arg">handler</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#drawEdges">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="createAdjacencyList"></a><span class="summary-sig-name">createAdjacencyList</span>(<span class="summary-sig-arg">G</span>,
|
|
<span class="summary-sig-arg">vertices</span>,
|
|
<span class="summary-sig-arg">edges</span>)</span><br />
|
|
creates a directed adjacency list for every vertex</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#createAdjacencyList">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="checkPlanarity"></a><span class="summary-sig-name">checkPlanarity</span>(<span class="summary-sig-arg">vertices</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#checkPlanarity">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="firstAttemptToPlace"></a><span class="summary-sig-name">firstAttemptToPlace</span>(<span class="summary-sig-arg">vertices</span>)</span><br />
|
|
First attempt to place vertices We are going to suppose Graph is
|
|
planar and attempt to place vertices directly, in real world this
|
|
wont happens, but at least we'll have temptative coords for every
|
|
vertex</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#firstAttemptToPlace">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Libs.immvcglib-module.html#checkForPlacedVertex" class="summary-sig-name">checkForPlacedVertex</a>(<span class="summary-sig-arg">vertex2check</span>,
|
|
<span class="summary-sig-arg">vertices</span>)</span><br />
|
|
Note: needs to divide graph in layers</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#checkForPlacedVertex">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a href="Libs.immvcglib-module.html#checkForPlacedVertex2" class="summary-sig-name">checkForPlacedVertex2</a>(<span class="summary-sig-arg">vertex2check</span>,
|
|
<span class="summary-sig-arg">vertices</span>)</span><br />
|
|
Note: needs to divide graph in layers</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#checkForPlacedVertex2">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="defineVertexRelation"></a><span class="summary-sig-name">defineVertexRelation</span>(<span class="summary-sig-arg">vertices</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#defineVertexRelation">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="generateVCG"></a><span class="summary-sig-name">generateVCG</span>(<span class="summary-sig-arg">address</span>)</span><br />
|
|
this function will generate a vcg compatible buffer to create the
|
|
graph</td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#generateVCG">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr>
|
|
<td><span class="summary-sig"><a name="saveVCG"></a><span class="summary-sig-name">saveVCG</span>(<span class="summary-sig-arg">address</span>,
|
|
<span class="summary-sig-arg">filename</span>)</span></td>
|
|
<td align="right" valign="top">
|
|
<span class="codelink"><a href="Libs.immvcglib-pysrc.html#saveVCG">source code</a></span>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<!-- ==================== VARIABLES ==================== -->
|
|
<a name="section-Variables"></a>
|
|
<table class="summary" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="table-header">
|
|
<td colspan="2" class="table-header">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr valign="top">
|
|
<td align="left"><span class="table-header">Variables</span></td>
|
|
<td align="right" valign="top"
|
|
><span class="options">[<a href="#section-Variables"
|
|
class="privatelink" onclick="toggle_private();"
|
|
>hide private</a>]</span></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<a href="Libs.immvcglib-module.html#__VERSION__" class="summary-name">__VERSION__</a> = <code title="'1.2'"><code class="variable-quote">'</code><code class="variable-string">1.2</code><code class="variable-quote">'</code></code><br />
|
|
NOTES:
|
|
need to divide graph in layers
|
|
save max layer in graph
|
|
every set of childs [unique and different part vertex] E a different layer
|
|
save vertex of layer in each layer
|
|
mark blank path points in each layer [i preffer path points to dummy vertices]
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td width="15%" align="right" valign="top" class="summary">
|
|
<span class="summary-type"> </span>
|
|
</td><td class="summary">
|
|
<a href="Libs.immvcglib-module.html#PALETTE" class="summary-name">PALETTE</a> = <code title="['''manhattan_edges: yes\r
|
|
''',
|
|
'''layoutalgorithm: mindepth\r
|
|
''',
|
|
'''finetuning: no\r
|
|
''',
|
|
'''layout_downfactor: 100\r
|
|
''',
|
|
..."><code class="variable-group">[</code><code class="variable-quote">'</code><code class="variable-string">manhattan_edges: yes\r\n</code><code class="variable-quote">'</code><code class="variable-op">, </code><code class="variable-quote">'</code><code class="variable-string">layoutalgorithm: minde</code><code class="variable-ellipsis">...</code></code>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<!-- ==================== FUNCTION DETAILS ==================== -->
|
|
<a name="section-FunctionDetails"></a>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="table-header">
|
|
<td colspan="2" class="table-header">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr valign="top">
|
|
<td align="left"><span class="table-header">Function Details</span></td>
|
|
<td align="right" valign="top"
|
|
><span class="options">[<a href="#section-FunctionDetails"
|
|
class="privatelink" onclick="toggle_private();"
|
|
>hide private</a>]</span></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a name="checkForPlacedVertex"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">checkForPlacedVertex</span>(<span class="sig-arg">vertex2check</span>,
|
|
<span class="sig-arg">vertices</span>)</span>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
><span class="codelink"><a href="Libs.immvcglib-pysrc.html#checkForPlacedVertex">source code</a></span>
|
|
</td>
|
|
</tr></table>
|
|
|
|
<p>Note: needs to divide graph in layers</p>
|
|
<p>Draft notes: step 1 get temptative coords to place vertex step 2 check
|
|
if coords overlaps already placed vertex</p>
|
|
<p>step 2 a) first we have to check if (y,y2) of vertex is in range of
|
|
the placed vertex,</p>
|
|
<p>if y >= yp and y <= y2p or y2 >= yp and y2 <= y2p:</p>
|
|
<p>if that condition is true, means we have a vertex in the same y that
|
|
an already placed vertex, so it might be possible of an overlapping to
|
|
exists, so we are going to ask:</p>
|
|
<p>if x >= xp and x <= x2p: if that condition is true, then we have
|
|
an overlapping over the y coord of the vertex (left point)</p>
|
|
<p>if x2 >= xp and x <= x2p: if that condition is true, then we
|
|
have an overlapping over the y coord of the vertex (right point)</p>
|
|
<p>and if does, check whether x or x2 is overlapping once we know that,
|
|
we need to check wheter x or x2 of overlapped vertex is touched if x ,
|
|
move west x - 10 and recheck</p>
|
|
<dl class="fields">
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<a name="checkForPlacedVertex2"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<table width="100%" cellpadding="0" cellspacing="0" border="0">
|
|
<tr valign="top"><td>
|
|
<h3 class="epydoc"><span class="sig"><span class="sig-name">checkForPlacedVertex2</span>(<span class="sig-arg">vertex2check</span>,
|
|
<span class="sig-arg">vertices</span>)</span>
|
|
</h3>
|
|
</td><td align="right" valign="top"
|
|
><span class="codelink"><a href="Libs.immvcglib-pysrc.html#checkForPlacedVertex2">source code</a></span>
|
|
</td>
|
|
</tr></table>
|
|
|
|
<p>Note: needs to divide graph in layers</p>
|
|
<p>Draft notes: step 1 get temptative coords to place vertex step 2 check
|
|
if coords overlaps already placed vertex</p>
|
|
<p>step 2 a) first we have to check if (y,y2) of vertex is in range of
|
|
the placed vertex,</p>
|
|
<p>if y >= yp and y <= y2p or y2 >= yp and y2 <= y2p:</p>
|
|
<p>if that condition is true, means we have a vertex in the same y that
|
|
an already placed vertex, so it might be possible of an overlapping to
|
|
exists, so we are going to ask:</p>
|
|
<p>if x >= xp and x <= x2p: if that condition is true, then we have
|
|
an overlapping over the y coord of the vertex (left point)</p>
|
|
<p>if x2 >= xp and x <= x2p: if that condition is true, then we
|
|
have an overlapping over the y coord of the vertex (right point)</p>
|
|
<p>and if does, check whether x or x2 is overlapping once we know that,
|
|
we need to check wheter x or x2 of overlapped vertex is touched if x ,
|
|
move west x - 10 and recheck</p>
|
|
<dl class="fields">
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<br />
|
|
<!-- ==================== VARIABLES DETAILS ==================== -->
|
|
<a name="section-VariablesDetails"></a>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr bgcolor="#70b0f0" class="table-header">
|
|
<td colspan="2" class="table-header">
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%">
|
|
<tr valign="top">
|
|
<td align="left"><span class="table-header">Variables Details</span></td>
|
|
<td align="right" valign="top"
|
|
><span class="options">[<a href="#section-VariablesDetails"
|
|
class="privatelink" onclick="toggle_private();"
|
|
>hide private</a>]</span></td>
|
|
</tr>
|
|
</table>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<a name="__VERSION__"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<h3 class="epydoc">__VERSION__</h3>
|
|
<pre class="literalblock">
|
|
|
|
NOTES:
|
|
need to divide graph in layers
|
|
save max layer in graph
|
|
every set of childs [unique and different part vertex] E a different layer
|
|
save vertex of layer in each layer
|
|
mark blank path points in each layer [i preffer path points to dummy vertices]
|
|
|
|
for layer in layers:
|
|
move east and west vertices, depending on their type *
|
|
|
|
pathfinder(graph)
|
|
search empy spots where edge lines might travel
|
|
|
|
|
|
a cool thing might be mark the whole graph as east-slanted or west-slanted, according the graph
|
|
the n east or n west it will move
|
|
|
|
if the graph is slanting too much to east from center point, we can start thinking on going west
|
|
that can be too fuzzy, but will try to make an aproach for human eye
|
|
|
|
|
|
new lib against old lib:
|
|
orphan vertices from old lib has been solved, now every vertex has at least 1 relationship saved
|
|
parent<->child type of vertex are correctly relationed now
|
|
|
|
</pre>
|
|
<dl class="fields">
|
|
</dl>
|
|
<dl class="fields">
|
|
<dt>Value:</dt>
|
|
<dd><table><tr><td><pre class="variable">
|
|
<code class="variable-quote">'</code><code class="variable-string">1.2</code><code class="variable-quote">'</code>
|
|
</pre></td></tr></table>
|
|
</dd>
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<a name="PALETTE"></a>
|
|
<div>
|
|
<table class="details" border="1" cellpadding="3"
|
|
cellspacing="0" width="100%" bgcolor="white">
|
|
<tr><td>
|
|
<h3 class="epydoc">PALETTE</h3>
|
|
|
|
<dl class="fields">
|
|
</dl>
|
|
<dl class="fields">
|
|
<dt>Value:</dt>
|
|
<dd><table><tr><td><pre class="variable">
|
|
<code class="variable-group">[</code><code class="variable-quote">'''</code><code class="variable-string">manhattan_edges: yes\r</code>
|
|
<code class="variable-string"></code><code class="variable-quote">'''</code><code class="variable-op">,</code>
|
|
<code class="variable-quote">'''</code><code class="variable-string">layoutalgorithm: mindepth\r</code>
|
|
<code class="variable-string"></code><code class="variable-quote">'''</code><code class="variable-op">,</code>
|
|
<code class="variable-quote">'''</code><code class="variable-string">finetuning: no\r</code>
|
|
<code class="variable-string"></code><code class="variable-quote">'''</code><code class="variable-op">,</code>
|
|
<code class="variable-quote">'''</code><code class="variable-string">layout_downfactor: 100\r</code>
|
|
<code class="variable-string"></code><code class="variable-quote">'''</code><code class="variable-op">,</code>
|
|
<code class="variable-ellipsis">...</code>
|
|
</pre></td></tr></table>
|
|
</dd>
|
|
</dl>
|
|
</td></tr></table>
|
|
</div>
|
|
<br />
|
|
<!-- ==================== NAVIGATION BAR ==================== -->
|
|
<table class="navbar" border="0" width="100%" cellpadding="0"
|
|
bgcolor="#a0c0ff" cellspacing="0">
|
|
<tr valign="middle">
|
|
|
|
<!-- Tree link -->
|
|
<th> <a
|
|
href="module-tree.html">Trees</a> </th>
|
|
|
|
<!-- Index link -->
|
|
<th> <a
|
|
href="identifier-index.html">Indices</a> </th>
|
|
|
|
<!-- Help link -->
|
|
<th> <a
|
|
href="help.html">Help</a> </th>
|
|
|
|
<!-- Project homepage -->
|
|
<th class="navbar" align="right" width="100%">
|
|
<table border="0" cellpadding="0" cellspacing="0">
|
|
<tr><th class="navbar" align="center"
|
|
>Immunity Debugger API Reference</th>
|
|
</tr></table></th>
|
|
</tr>
|
|
</table>
|
|
<table border="0" cellpadding="0" cellspacing="0" width="100%%">
|
|
<tr>
|
|
<td align="left" class="footer">
|
|
Generated by Epydoc 3.0.1 on Thu Sep 11 14:06:32 2008
|
|
</td>
|
|
<td align="right" class="footer">
|
|
<a target="mainFrame" href="http://epydoc.sourceforge.net"
|
|
>http://epydoc.sourceforge.net</a>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
|
|
<script type="text/javascript">
|
|
<!--
|
|
// Private objects are initially displayed (because if
|
|
// javascript is turned off then we want them to be
|
|
// visible); but by default, we want to hide them. So hide
|
|
// them unless we have a cookie that says to show them.
|
|
checkCookie();
|
|
// -->
|
|
</script>
|
|
</body>
|
|
</html>
|