Professional Web Applications Themes

graph theory - Mac Programming

Are there any cocoa libraries that can be used to handle the edge and node data structures for a graph theory project?...

  1. #1

    Default graph theory

    Are there any cocoa libraries that can be used to handle the edge and
    node data structures for a graph theory project?
    jimcath Guest

  2. #2

    Default Re: graph theory

    In article <>,
    net (jimcath) wrote:

    You'd be off using the free Boost Graph Library, from
    <>. It is C++, so you'd interface to it in files with a suffix, so they can contain both objective-C and C++. Have a pure
    Objective-C user interface, a pure C++ model, and your "controller"
    glues them together, reflecting the state of the model in the U.I, and
    reflecting changes to the U.I. down to changes in the model.

    Boost Graph Library is wonderful: it uses iterators as adapters so that
    you separate graph algorithms from data structures. It comes with
    multiple data structures for representing graphs, and directions for
    adapting arbitrary data structures for use with it. There is a book,
    published by Addison Wesley, written by Siek, Lee & Lumsdaine on it.
    David Guest

  3. #3

    Default Re: graph theory

    Thank you for your suggestion. The boost doentation is now on my
    reading list. I have been searching the web for the past few days and
    have spotted a few other packages.

    GraphViz from PixelGlow <> is a
    Panther port of the ATT software. I look forward to the objective-c
    source code release. Their demo program ran nicely. And a native
    objective-c library is appealing.

    The Graph Template Library has been compileled for Panther by the
    University of Passau <> As I do
    not understand what generic programming is all about I am a little
    scared to touch this one. I did email them twice for the download
    password but have not received a reply.

    JDSL from Brown University <> is a Java Library but this
    would require the java bridge to work. Although every comment I have
    read recommends avoiding the bridge at all costs, the only exception
    to the chorus was when a specific java libraya was needed. One of the
    thing I liked about JDSL was the decoratable interface which allows
    data to be attached to an edges (or node?) without having to subclass.
    It also dispenses with the complexities and overhead of a graph
    drawing system.
    jimcath Guest

  4. #4

    Default Re: graph theory

    On 5 Feb 2004, net wrote: 

    Awesome! I've used graphviz off and on for years (former AT&T/Lucent
    employee) and even had the x11 version on my mac, but I really love
    being able to click on a .dot file and have it open in a window. then
    throw in the ability to change colors, node parameters,etc on the fly...
    That's really nice.

    Now I just need to be able to select a subset of the nodes and apply the
    changes only to them...

    I must say, 10.3 seems really to have made some changes that speed the
    system up, too. I'm surprised at the speed those graphs redraw on my
    quicksilver G4 with 1.2 GB ram. Compiles seem significantly faster,
    too -- was just updating my fink installation and it was screaming
    through the files.

    Joe Guest

  5. #5

    Default Re: graph theory

    Joe Davison <net> wrote in message news:>

    The latest graphviz release (Feb 23rd) notes the following Graphviz
    now re-renders when the underlying file changes, so you can edit the
    file in your favorite text editor and have it pick up the changes on
    saving. Is this a possible answer to your request.

    Now a question. The product page <>
    notes that GraphViz is Developer-friendly with Libraries packaged as
    OS X-style private frameworks. Where are these private frameworks? I
    used the contextual menu "show contents" and found the following 5
    frameworks included:


    Are these the frameworks that I can use or am I just poking around in
    the bowles of the program? If so is there any doentation on how to
    use them?

    jimcath Guest

  6. #6

    Default Re: graph theory

    > Now a question. The product page <> 

    Thanks all for the high praise and having a look at my port. The
    frameworks wrap the underlying dylibs of Graphviz; I haven't yet
    ported the headers over, but if you download the original sources off, you can try matching the headers to the libs.

    The easiest way to use Graphviz programmatically is not through the
    frameworks but by calling the CLI tools via a task like Cocoa's
    NSTask. Just ask for the new -Tepdf output, which outputs Quartz PDF
    and chuck into into an NSImage or Quartz PDF context and viola, a
    beautifully rendered graph.

    I'm thinking of tacking a full-n graph editor based on Graphviz
    (in answer to one of the other posts), which will likely be shareware.
    The editor may include a proper Cocoa wrapper for agraph. Is there a
    market need for this?

    Glen Low, Pixelglow Software
    Glen Guest

Similar Threads

  1. Replies: 2
    Last Post: January 24th, 04:32 PM
  2. GD::Graph - how to get rid of leading gap in line graph?
    By in forum PERL Modules
    Replies: 0
    Last Post: October 1st, 04:56 PM
  3. string theory
    By klcmx in forum Macromedia Flash Actionscript
    Replies: 2
    Last Post: January 19th, 01:05 PM
  4. GD::Graph: "mixed" graph doesn't recognize "area" graph type
    By Emilio in forum PERL Miscellaneous
    Replies: 5
    Last Post: October 8th, 02:14 AM


Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139