Welcome to TalkGraphics.com
Results 1 to 10 of 201

Hybrid View

  1. #1
    Join Date
    Sep 2000
    Location
    Bracknell, UK
    Posts
    8,659

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Regarding symmetrical bezier handles, John said..

    Quote Originally Posted by covoxer View Post
    The main problem is that the new attribute would be added and all the existing core code has to work perfectly reliably with it as we can't risk stability, can we? So we have to go through all the code that works with shapes, and that practically means almost the entire core code, analyse all it's parts and introduce changes where needed. Needless to say this is a tremendous amount of work and resulting number of small changes can be very large thus introducing a risk of possible mistakes (bugs) and additional time needed for testing and fixing.
    Thanks for the rather scary insight John. I know Xara started out written in assembler, and it sounds as though the world of object orientation has yet to reach the software (since symmetrical movement of a pair of points is basically two sequential operations that already exist in the software and in an OO world this would be a very isolated change).

    Maybe we're paying for Xtremes speed now in more costly development overheads?

    Anyway, thanks for the info and for putting up with critics, like me!

    Paul
    IP

  2. #2
    Join Date
    Aug 2004
    Location
    Ukraine
    Posts
    3,904

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Quote Originally Posted by pauland View Post
    Thanks for the rather scary insight John.

    Nothing to do with asm (it's only used for rendering engine) and all is object oriented as well. You can see the actual code in the XaraLX open source project page if you are interested.
    John.
    IP

  3. #3
    Join Date
    Sep 2000
    Location
    Bracknell, UK
    Posts
    8,659

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Quote Originally Posted by covoxer View Post

    Nothing to do with asm (it's only used for rendering engine) and all is object oriented as well. You can see the actual code in the XaraLX open source project page if you are interested.
    C++. Spit, cough. I spent two years working on a project written in C++. The GUI was written in C++ (I was the DB guy) and after spending six weeks hunting down one nasty UI bug, I was allowed to rewrite the GUI in a DB related tehnology (and that took a month).

    I haven't written any C++ since (Java and actionscript).

    I have my own queue of people wanting updates to code I've written!

    Paul
    IP

  4. #4
    Join Date
    Aug 2004
    Location
    Ukraine
    Posts
    3,904

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Quote Originally Posted by pauland View Post
    C++. Spit, cough.
    I'm not sure what you are trying to insinuate, but I suppose you are not suggesting to rewrite Xara in Java or actionscript, don't you?
    John.
    IP

  5. #5
    Join Date
    Sep 2000
    Location
    Bracknell, UK
    Posts
    8,659

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Quote Originally Posted by covoxer View Post
    I'm not sure what you are trying to insinuate, but I suppose you are not suggesting to rewrite Xara in Java or actionscript, don't you?
    LOL, no insinuation, just some sympathy for using C++ perhaps, though still surprise that the symmetrical bezier should change anything but a limited section of code. I think we're way off topic now and boring people silly.
    IP

  6. #6

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Actually, this thread is getting interesting now
    IP

  7. #7
    Join Date
    Mar 2009
    Location
    St Ives
    Posts
    103

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Quote Originally Posted by sledger View Post
    Actually, this thread is getting interesting now
    Agreed. For us geeks who find enjoy programming - this is fascinating.

    I would quite happily watch a fly-on-the wall documentary about the development of Xara products...

    Rich
    IP

  8. #8
    Join Date
    Aug 2004
    Location
    Ukraine
    Posts
    3,904

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    Quote Originally Posted by pauland View Post
    ...still surprise that the symmetrical bezier should change anything but a limited section of code.
    The problem is in insuring stability. The essential change is not that big or complicated, the process of making sure that the rest of the code will remain reliable may require a lot of work and more code changes and testing e.t.c. As I say. The more basic feature we change the higher is the risk of having unpredictable consequences. For example, any changes in the HTML export filter are virtually safe so are much more trivial to implement safely.
    I think we're way off topic now and boring people silly.
    All this thread except for a handful of posts is off topic so why should we care?
    John.
    IP

  9. #9
    Join Date
    Sep 2000
    Location
    Bracknell, UK
    Posts
    8,659

    Default Re: Thank you and good bye! I'm no longer Xara's target audience.

    I haven't looked at the Xara source code, but in an ideal world the manipulation of a bezier curve might have an interface like this:

    onDrag(bezierHandle)
    {
    var thisControlPoint:BezierControlPoint = bezierHandle.getControlPoint();
    var handles:Array of BezierHandle = thisControlPoint.getHandles();
    for each (handle in handles) // there will only be two handles
    {
    if (handle == this)
    {
    handle.x = this.x;
    handle.y = this.y;
    }
    else if ( symmetricalMode )
    {
    newHandle = bezierControlPoint.getSymmetricalHandle(this); // calculates opposing position of symmetrical handle
    handle.x = newHandle.x;
    handle.y = newHandle.y;
    }
    thisControlPoint.updateParentBezier(); // updates curve to fit control point manipulation
    }

    So that's how I see the symmetrical operation working, as a pseudocode - i agree you need some more UI interaction to switch in and out of symmetrical mode, but the effect on other code should be minimal.

    It's not a criticism - Xara is written as it is written but ideally this kind of change should not be a big thing. I agree that there may be a lot of regression tests afterwards, but typically this would be on a collection of changes, not just this one. Naturally you may be unit testing changes, but the actuall symmetry change should only be a tiny section of code.

    John, I want to make it clear I'm not criticising you or any other developer because you have to work with the real code and actual situation, we're just having a bit of a discussion about a particular feature.

    Paul
    IP

 

 

Tags for this Thread

Bookmarks

Posting Permissions

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