Sender: |
|
Date: |
Fri, 3 Jul 2009 22:52:01 +0200 |
MIME-version: |
1.0 |
Reply-To: |
|
Content-type: |
text/plain; charset=ISO-8859-1; format=flowed |
Subject: |
|
From: |
|
In-Reply-To: |
|
Content-transfer-encoding: |
8BIT |
Comments: |
|
Parts/Attachments: |
|
|
Thanks, Maira! I'm at a conference right now and so can't easily do a
double-check and bugfix. But we'll get it updated soon enough.
Sean
Maíra Athanázio Gatti wrote:
> Hi all,
>
> I have found a bug in NetworkPortrayal2D.
> I am using the (sim.field.network.)Network field with a Continuous2D field.
> If I use a network directed graph, everything happens fine. But if it is
> an undirected graph, when the NetworkPortrayal2D is going to draw it, it
> includes an edge from every node to itself. It was happenning because
> for each node, it gets all edges and for each node.out of the edge, it
> tries to draw it. Then if the node.out is not the original node (what
> would happen for the edges entering into the original node), than we
> have the bug!
>
> To fix the problem I put this (italic) statement:
>
> Bag nodes = field.network.getAllNodes();
> for (int x = 0; x < nodes.numObjs; x++) {
> ...
> for (int y = 0; y < edges.numObjs; y++) {
> ...
> / if ( (locStop == locStart) && (edge.from() != nodes.objs[x])) continue;
> / ...
> }
> }
>
>
> which means, if the stop location is the same then the start location
> BUT node.out is different from edge.node.out then it skips drawing it.
> If there are "self-edges node" it will work fine, since edge.from will
> be equal to nodes.objs[x].
>
> Well, now everything is working fine.
>
> Cheers,
>
> --
> Maíra Athanázio de C. Gatti
> PhD student, PUC-Rio, Brazil
> King's College London
|
|
|