From ab5f8ff5869021958f4ae8b838c3d707a2e85eaa Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sun, 29 Apr 2018 16:25:32 +0200 Subject: Put adaptagrams into its own folder --- src/libcola/tests/topology.cpp | 177 ----------------------------------------- 1 file changed, 177 deletions(-) delete mode 100644 src/libcola/tests/topology.cpp (limited to 'src/libcola/tests/topology.cpp') diff --git a/src/libcola/tests/topology.cpp b/src/libcola/tests/topology.cpp deleted file mode 100644 index c9ac63730..000000000 --- a/src/libcola/tests/topology.cpp +++ /dev/null @@ -1,177 +0,0 @@ -/* - * vim: ts=4 sw=4 et tw=0 wm=0 - * - * libcola - A library providing force-directed network layout using the - * stress-majorization method subject to separation constraints. - * - * Copyright (C) 2006-2008 Monash University - * - * This library 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 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library in the file LICENSE; if not, - * write to the Free Software Foundation, Inc., 59 Temple Place, - * Suite 330, Boston, MA 02111-1307 USA - * -*/ - -/** \file topology.cpp - * - * tests topology preserving layout. graph is a triangle. - * We have a fourth disconnected node starting inside the triangle. - * We give the disconnected node a desired position outside the triangle - * and begin layout. Layout should converge to near zero stress as all - * edges should be able to reach their desired lengths, and disconnected - * node should still be inside the triangle at the end. - * - * - * Authors: - * Tim Dwyer - */ -#include -#include -#include - -#include -#include -#include -#include -#include -#include -#include "graphlayouttest.h" -using namespace std; -using namespace cola; - -topology::Node* addNode( - topology::Nodes& vs, vpsc::Rectangle* r) { - topology::Node *v = new topology::Node(vs.size(), r); - vs.push_back(v); - return v; -} -void addToPath(topology::EdgePoints& ps, topology::Node *v, topology::EdgePoint::RectIntersect i) { - ps.push_back(new topology::EdgePoint(v,i)); -} -struct SetDesiredPos : public PreIteration { - SetDesiredPos(Locks& locks) : PreIteration(locks) {} - bool operator()() { - return true; - } -}; -void writeFile(const topology::Nodes& vs, const topology::Edges& es, const char *outputFileName) { - const unsigned n=vs.size(); - vector cedges; - - for(unsigned i=0;i routes; - for(topology::Edges::const_iterator e=es.begin();e!=es.end();++e) { - routes.push_back((*e)->getRoute()); - } - - vector labels(n); - for(unsigned i=0;i rs; - for(topology::Nodes::const_iterator i=vs.begin();i!=vs.end();++i) { - rs.push_back((*i)->rect); - } - OutputFile of(rs,cedges,NULL,outputFileName,true,false); - of.setLabels(labels); - of.routes=&routes; - of.generate(); - - for_each(routes.begin(),routes.end(),delete_object()); -} -struct Test : TestConvergence { - Test(const double d,const unsigned i,topology::Nodes& vs, topology::Edges& es) : TestConvergence(d,i), vs(vs), es(es) {} - bool operator()(const double new_stress, valarray & X, valarray & Y) { - cout << "stress="< es(edge_array,edge_array+E); - vector rs; - double x[]={200,250,300,250},y[]={200,250,200,225},size=10; - for(unsigned i=0;i::iterator i = rs.begin(); i!=rs.end();++i) { - addNode(vs,*i); - } - topology::Edges tes; - unsigned eID=0; - for(vector::iterator e=es.begin();e!=es.end();++e, ++eID) { - topology::EdgePoints ps; - addToPath(ps,vs[e->first],topology::EdgePoint::CENTRE); - addToPath(ps,vs[e->second],topology::EdgePoint::CENTRE); - tes.push_back(new topology::Edge(eID, idealLength, ps)); - } - writeFile(vs,tes,"topology-000.svg"); - Locks locks; - // we move the 4th node somewhere outside the triangle. The triangle should be - // dragged along! - const double PI = 2.0*acos(0.0); - double angle = getRand(2.0*PI); - double dx=150*cos(angle), dy=150*sin(angle); - - double lx=rs[3]->getCentreX()+dx, - ly=rs[3]->getCentreY()+dy; - //double lx=353.886210, ly=342.789705; - locks.push_back(Lock(3,lx,ly)); - printf(" Lock: %f,%f\n",lx,ly); - SetDesiredPos preIteration(locks); - Test test(0.00001,100,vs,tes); - ConstrainedFDLayout alg(rs,es,idealLength,NULL,test,&preIteration); - - alg.setTopology(&vs,&tes); - alg.run(true,true); - double finalStress=alg.computeStress(); - printf("finalStress=%f\n",finalStress); - - //assert(finalStress<1e-5); - for_each(rs.begin(),rs.end(),delete_object()); - for_each(tes.begin(),tes.end(),delete_object()); - for_each(vs.begin(),vs.end(),delete_object()); -} -int main() { - unsigned i=0; - for(;i<1;i++) { - randomMove(i); - } - return 0; -} -// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=4:softtabstop=4:textwidth=80 : -- cgit v1.2.3