]> git.tdb.fi Git - netvis.git/commitdiff
Add a registered flag to Port
authorMikko Rasa <tdb@tdb.fi>
Sun, 15 Jun 2014 08:18:19 +0000 (11:18 +0300)
committerMikko Rasa <tdb@tdb.fi>
Sun, 15 Jun 2014 08:18:19 +0000 (11:18 +0300)
source/port.cpp
source/port.h

index 1c940af8a4c69e4ea5808cd668dfe42238b51060..1e4219da1025fbff77823a4aebd949178a851bce 100644 (file)
@@ -22,6 +22,7 @@ using namespace Msp;
 Port::Port(NetVis &v, unsigned n):
        netvis(v),
        number(n),
+       registered(false),
        mesh((GL::COLOR4_UBYTE, GL::VERTEX2))
 {
        char buf[128];
@@ -31,13 +32,16 @@ Port::Port(NetVis &v, unsigned n):
        addr.sin_addr.s_addr = 0;
        int err = getnameinfo(reinterpret_cast<sockaddr *>(&addr), sizeof(sockaddr_in), 0, 0, buf, sizeof(buf), 0);
        if(err==0)
+       {
                name = buf;
+               registered = !isdigit(name[0]);
+       }
        else
                name = Msp::lexical_cast(number);
 
        const map<unsigned, Port *> &ports = netvis.get_ports();
        unsigned tries = 100;
-       if(ports.size()>100 && number>=1024)
+       if(ports.size()>100 && !registered)
                tries = 10000/ports.size()+1;
        float best_score = 0;
        for(unsigned i=0; (i<tries && best_score<1); ++i)
@@ -48,7 +52,7 @@ Port::Port(NetVis &v, unsigned n):
                c.b = rand()*1.0/RAND_MAX;
                float high = max(max(c.r, c.g), c.b);
                c = c*(1.0/high);
-               if(number<1024)
+               if(registered)
                {
                        float low = min(min(c.r, c.g), c.b);
                        c = (c+-low)*(1/(1-low));
@@ -59,7 +63,7 @@ Port::Port(NetVis &v, unsigned n):
                float score = 2;
                for(map<unsigned, Port *>::const_iterator j=ports.begin(); j!=ports.end(); ++j)
                {
-                       if(number<1024 && j->first>1024)
+                       if(registered && !j->second->is_registered())
                                break;
                        const GL::Color &other = j->second->get_color();
                        float dr = c.r-other.r;
index d0511e96751c5ed6ca095a6a09a3677bb4fc9510..4ce9427fc6df5b6913afd0743e8a8fb38dbe9a22 100644 (file)
@@ -19,6 +19,7 @@ class Port
 private:
        NetVis &netvis;
        unsigned number;
+       bool registered;
        std::string name;
        Msp::GL::Color color;
        Msp::GL::Mesh mesh;
@@ -27,6 +28,7 @@ public:
        Port(NetVis &, unsigned);
 
        unsigned get_number() const { return number; }
+       bool is_registered() const { return registered; }
        const std::string &get_name() const { return name; }
        const Msp::GL::Color &get_color() const { return color; }