ipcSkillProcess or ITK

Discussion in 'Cadence' started by Jay, Mar 12, 2007.

  1. Jay

    Jay Guest

    Hi
    I am a skill newbie so please bear with my limited knowledge.

    I have to write an application that needs to draw a few million
    polygons on various layers on a Virtuoso Layout window. I understand
    that I have 2 options - use ipcSkillProcess or ITK to directly access
    CDBA. It seems that ipcSkillProcess can provide better user
    interactivity than ITK but I am not sure. My application needs to
    process a text file, which would be done externally by a C++ program,
    and should be capable of turning on/off layers, adding new layers on
    layout window, moving polygons from one layer to another, readjust
    zoom levels etc depending on user input. It would be calling the C++
    program to do all its back-end processing.

    My questions are:

    1. For drawing a few million polygons which is a faster and robust
    way?
    2. For supporting user-interactivity which is better?
    3. In terms of developement and debugging?

    Also if we move to OpenAcess in the near future I am guessing ITK code
    would not be portable?

    Thanks for your help.
    Jay
     
    Jay, Mar 12, 2007
    #1
  2. I guess fastest would be to do it in c with itkDb functions. Skill will
    also be faster if you are little careful with the usage of list traversals.
    When you use itkDb, any change you make in the db objects does not
    reflect in the user's screen as soon as you do the changes. Instead you
    will have to save the cellview and through the ipcSkillProcess special
    port you have to inform Skill toplevel to refresh that cellview. Not
    very straight forward.

    But trying to process everything in C++ in a ipcSkillProcess and calling
    skill procedures at the level of "dbCreateRect" from there would be dead
    slow ( without using itk.)

    I would go this way: Implement everything in Skill, and start the C++
    program from Skill using ipc. After processing the C++ program will
    write out its output into some file. As a callback for the ipc, write a
    skill procedure to read the file and update the cellview. You can use
    lineread which I think is the fastest way to read a file, and the way
    you write the data into the file should be modified so that it could be
    understood by lineread.

    eg. If you have only rectangles to be read, the format could be
    something like this:

    layerName x1 y1 x2 y2
    -
    Suresh
     
    Suresh Jeevanandam, Mar 12, 2007
    #2
  3. Jay

    Jay Guest

    Thanks for your response Suresh. It was quite helpful.
    Jay
     
    Jay, Mar 14, 2007
    #3
Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.