use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class SimpleNetwork method removeEdgesInternal.
protected boolean removeEdgesInternal(final Collection<CyEdge> edges) {
if (edges == null || edges.isEmpty())
return false;
boolean madeChanges = false;
synchronized (lock) {
for (CyEdge edge : edges) {
if (!containsEdge(edge))
continue;
final EdgePointer e = (EdgePointer) edgePointers.get(edge.getSUID());
edgePointers.removeKey(edge.getSUID());
e.remove();
edgeCount--;
madeChanges = true;
}
}
return madeChanges;
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class SimpleNetwork method getEdgeList.
public List<CyEdge> getEdgeList() {
synchronized (lock) {
final List<CyEdge> ret = new ArrayList<>(edgeCount);
EdgePointer edge = null;
int numRemaining = edgeCount;
NodePointer node = firstNode;
while (numRemaining > 0) {
final CyEdge retEdge;
if (edge != null) {
retEdge = edge.cyEdge;
} else {
for (edge = node.firstOutEdge; edge == null; node = node.nextNode, edge = node.firstOutEdge) ;
node = node.nextNode;
retEdge = edge.cyEdge;
}
edge = edge.nextOutEdge;
numRemaining--;
ret.add(retEdge);
}
return ret;
}
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class ScaleLayouter method scaleGraph.
/**
* A scaleFactor of 1.0 does not move anything.
*
* @exception IllegalArgumentException if
* scaleFactor < 0.001 or if scaleFactor > 1000.0.
*/
public void scaleGraph(double scaleFactor, final Direction direction) {
if ((scaleFactor < 0.001d) || (scaleFactor > 1000.0d))
throw new IllegalArgumentException("scaleFactor is outside allowable range [0.001, 1000.0]");
if (m_translationToOrig == null)
return;
double xFactor = scaleFactor, yFactor = scaleFactor;
switch(direction) {
case X_AXIS_ONLY:
yFactor = 1.0;
break;
case Y_AXIS_ONLY:
xFactor = 1.0;
break;
case BOTH_AXES:
/* Intentionally empty. */
break;
}
final AffineTransform3D xform = m_translationToOrig.concatenatePost((new Scale3D(xFactor, yFactor, 1.0d)).concatenatePost(m_translationFromOrig));
for (CyNode node : m_graph.nodes()) {
if (!m_graph.isMovableNode(node))
continue;
m_pointBuff[0] = m_graph.getNodePosition(node, true);
m_pointBuff[1] = m_graph.getNodePosition(node, false);
m_pointBuff[2] = 0.0d;
xform.transformArr(m_pointBuff);
m_graph.setNodePosition(node, m_pointBuff[0], m_pointBuff[1]);
}
for (CyEdge edge : m_graph.edges()) {
if (!(m_graph.isMovableNode(edge.getSource())) && m_graph.isMovableNode(edge.getTarget()))
continue;
/* TODO support anchors
final int numAnchors = m_graph.getNumAnchors(edge);
for (int j = 0; j < numAnchors; j++) {
m_pointBuff[0] = m_graph.getAnchorPosition(edge, j, true);
m_pointBuff[1] = m_graph.getAnchorPosition(edge, j, false);
m_pointBuff[2] = 0.0d;
xform.transformArr(m_pointBuff);
m_graph.setAnchorPosition(edge, j, m_pointBuff[0], m_pointBuff[1]);
}
*/
}
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class CyRootNetworkImpl method addEdge.
@Override
public CyEdge addEdge(final CyNode s, final CyNode t, final boolean directed) {
final CyEdge edge;
synchronized (lock) {
edge = new CyEdgeImpl(SUIDFactory.getNextSUID(), s, t, directed, getNextEdgeIndex());
addEdgeInternal(s, t, directed, edge);
}
return edge;
}
use of org.cytoscape.model.CyEdge in project cytoscape-impl by cytoscape.
the class CySubNetworkImpl method copyTableData.
/**
* This method is called when an edge or a node is added to the networks
* which is indeed a copy of another edge/node. Hence, it copies all of the
* default attributes from the shared table referenced to that edge/node to
* the new edge/node.
* @param graphObject
*/
private void copyTableData(final CyIdentifiable graphObject) {
final String name = parent.getRow(graphObject).get(NAME, String.class);
final CyRow sharedTableRow = parent.getRow(graphObject, CyRootNetwork.SHARED_ATTRS);
final CyRow defaultTableRow = parent.getRow(graphObject);
// final String name = parent.getCachedAttributes(graphObject).get(NAME, String.class);
// final CyRow sharedTableRow = parent.getCachedAttributes(graphObject, CyRootNetwork.SHARED_ATTRS);
// final CyRow defaultTableRow = parent.getCachedAttributes(graphObject);
final CyRow targetRow = this.getRow(graphObject);
// Step 1: Copy shared name as name of this new node
final String sharedName = sharedTableRow.get(CyRootNetwork.SHARED_NAME, String.class);
if (sharedName != null)
targetRow.set(CyNetwork.NAME, sharedName);
else
targetRow.set(CyNetwork.NAME, name);
// Step 2: Copy selection state
targetRow.set(CyNetwork.SELECTED, defaultTableRow.get(CyNetwork.SELECTED, Boolean.class));
// Step 3: Copy Interaction if edge
if (graphObject instanceof CyEdge) {
final String interaction = sharedTableRow.get(CyRootNetwork.SHARED_INTERACTION, String.class);
targetRow.set(CyEdge.INTERACTION, interaction);
}
}
Aggregations