NURBS curve connecting

View: New views
12 Messages — Rating Filter:   Alert me  

NURBS curve connecting

by Carsten Haubold :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hey folks,

I need some feedback from the point of view of a user..
I'm playing around which is the best way to connect Nurbs curves:
  • select two curves and the end points you want to connect -> only connects 2 curves and needs lot of input
  • select a bunch of curves, I'll loop through all ending control points and choose the nearest other ending CP and connect these both -> this way the resulting curve will be closed and will (hopefully) have the shape the user expected

I'm not sure which one to choose.. At the moment I'm heading to the 2nd one testing the user_input_properties in combination with a python script to fill the list. Perhaps I should provide both ways..? Probably thats the way to go, as they dont differ too much really from developers view.

Regards,
Carsten


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by hoako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Carsten Haubold wrote:

> Hey folks,
>
> I need some feedback from the point of view of a user..
> I'm playing around which is the best way to connect Nurbs curves:
>
>     * select two curves and the end points you want to connect -> only
>       connects 2 curves and needs lot of input
>     * select a bunch of curves, I'll loop through all ending control
>       points and choose the nearest other ending CP and connect these
>       both -> this way the resulting curve will be closed and will
>       (hopefully) have the shape the user expected
>
>
> I'm not sure which one to choose.. At the moment I'm heading to the 2nd
> one testing the user_input_properties in combination with a python
> script to fill the list. Perhaps I should provide both ways..? Probably
> thats the way to go, as they dont differ too much really from developers
> view.
Hi!
I my opinion you should do both. The 1st option is good when the user don't know
how to do the "trick" of the 2nd option. The 1st is what a newbie user would expect.

Proposed names: (joe should confirm)
ConnectCurves
AutoConnectCurves

In the first option it would be great to receive more than 2 points selected and
connect the closest ones.

I hope this helps.

Cheers!
Joaquín


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 4/22/08, Carsten Haubold <CarstenHaubold@...> wrote:
>     * select two curves and the end points you want to connect -> only
>       connects 2 curves and needs lot of input
>     * select a bunch of curves, I'll loop through all ending control
>       points and choose the nearest other ending CP and connect these
>       both -> this way the resulting curve will be closed and will
>       (hopefully) have the shape the user expected

I agree with Joaquín that both would be ideal. Perhaps they can be
combined into the same plugin, however:
- Connect all selected points
- Connect the ends of all selected curves
Maybe the second mode can be complemented with a threshold distance,
so end points are only connected if they are closer than that
distance.

Regards,

--
Bart

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by Carsten Haubold :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I agree with Joaquín that both would be ideal. Perhaps they can be
> combined into the same plugin, however:
> - Connect all selected points
> - Connect the ends of all selected curves
> Maybe the second mode can be complemented with a threshold distance,
> so end points are only connected if they are closer than that
> distance.
>  
Thats a good idea, as I'm looking which is the smallest distance to
another end point anyway its no big deal to add in a user defined treshold.

Sorry for having committed to SVN without using the "ENH:" tag..

Cheers
Carsten

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 4/22/08, Carsten Haubold <CarstenHaubold@...> wrote:

> I agree with Joaquín that both would be ideal. Perhaps they can be
> > combined into the same plugin, however:
> > - Connect all selected points
> > - Connect the ends of all selected curves
> > Maybe the second mode can be complemented with a threshold distance,
> > so end points are only connected if they are closer than that
> > distance.
> >
> Thats a good idea, as I'm looking which is the smallest distance to
> another end point anyway its no big deal to add in a user defined treshold.
>
> Sorry for having committed to SVN without using the "ENH:" tag..

No problem, we hadn't mentioned it yet. Also, I forgot to mention this
in my last mail, but in your commit the connect_curves plugin is
already mentioned in module.cpp, resulting in a linker error. You
should remove or comment it out and commit a fix until the
connect_curves plugin is ready to be committed (no worries here either
- it's easy to overlook).

Cheers,

--
Bart

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by hoako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Bart Janssens wrote:

> On 4/22/08, Carsten Haubold <CarstenHaubold@...> wrote:
>>     * select two curves and the end points you want to connect -> only
>>       connects 2 curves and needs lot of input
>>     * select a bunch of curves, I'll loop through all ending control
>>       points and choose the nearest other ending CP and connect these
>>       both -> this way the resulting curve will be closed and will
>>       (hopefully) have the shape the user expected
>
> I agree with Joaquín that both would be ideal. Perhaps they can be
> combined into the same plugin, however:
> - Connect all selected points
> - Connect the ends of all selected curves
> Maybe the second mode can be complemented with a threshold distance,
> so end points are only connected if they are closer than that
> distance.
I guess this is what you have in mind, although i'll write it down.
There should be a boolean option to activate the threshold option

if( there are selected points)
        if ( threshold enabled )
                connect points with selected threshold
        else
                connect closer points
else
        if ( threshold enabled )
                connect all curves with selected threshold
        else
                connect all curves by closer endings

Cheers!
Joaquín


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by hoako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi Carsten!

Seems you forgot to erase this lines on the svn commit
on the module.cpp
extern k3d::iplugin_factory& connect_curves_factory();
Registry.register_factory(module::nurbs::connect_curves_factory());

Also as a Tip, the code is using TAB for indenting instead of spaces.

Right now i don't have svn access.

Cheers!
Joaquín


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by Carsten Haubold :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hey Joaquín,

> Seems you forgot to erase this lines on the svn commit
> on the module.cpp
> extern k3d::iplugin_factory& connect_curves_factory();
> Registry.register_factory(module::nurbs::connect_curves_factory());
>  
yeh Bart noticed that as well and Tim already fixed it - Thanks!
> Also as a Tip, the code is using TAB for indenting instead of spaces.
>  
Uhm, I only use tabs and in my editor settings the option "insert Spaces
instead of Tabs" is disabled...

You also proposed this:

if( there are selected points)
        if ( threshold enabled )
                connect points with selected threshold
        else
                connect closer points
else
        if ( threshold enabled )
                connect all curves with selected threshold
        else
                connect all curves by closer endings


I'm more convinced that having 2 plugins (as you said yourself:
ConnectCurves and AutoConnectCurves) is more intuitive for the user, and
the threshold is only needed for the AutoConnectCurves then.

Regards,
Carsten

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by hoako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi again!

> Uhm, I only use tabs and in my editor settings the option "insert Spaces
> instead of Tabs" is disabled...
I just saw this on the module.cpp. Weird.

>
> You also proposed this:
>
> if( there are selected points)
> if ( threshold enabled )
> connect points with selected threshold
> else
> connect closer points
> else
> if ( threshold enabled )
> connect all curves with selected threshold
> else
> connect all curves by closer endings
>
>
> I'm more convinced that having 2 plugins (as you said yourself:
> ConnectCurves and AutoConnectCurves) is more intuitive for the user, and
> the threshold is only needed for the AutoConnectCurves then.
I did also have this feeling. Seems clearer code also.
In case you divide the plugins you may take in count if there are selected
vertices for the AutoConnectCurves plugin.

Cheers!
Joaquín


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by bART Janssens-2 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On Wednesday 23 April 2008 11:06:12 Carsten Haubold wrote:
> I'm more convinced that having 2 plugins (as you said yourself:
> ConnectCurves and AutoConnectCurves) is more intuitive for the user, and
> the threshold is only needed for the AutoConnectCurves then.

OK, sounds good! Either way, be sure to put the code to execute the connection
in some function(s) in a separate .h/.cpp file (in modules/nurbs), that way
it's easy to share between plugins.

Cheers,

Bart

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by Joe Crawford :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

> select two curves and the end points you want to connect -> only connects 2
> curves and needs lot of input
> select a bunch of curves, I'll loop through all ending control points and
> choose the nearest other ending CP and connect these both -> this way the
> resulting curve will be closed and will (hopefully) have the shape the user
> expected
>  I'm not sure which one to choose.. At the moment I'm heading to the 2nd one
> testing the user_input_properties in combination with a python script to
> fill the list. Perhaps I should provide both ways..? Probably thats the way
> to go, as they dont differ too much really from developers view.

I like the second method.

However, we will need a method of selecting curve points (not CV's,
but actual points along the curve) for operations like cut and
connect.

For example, select one curve point on one curve, then another curve
point on another curve, and use connect.

I do agree that if many points are selected, it should connect the
pairs that are closest.

I also like the idea that if no points in particular are selected, it
just connects the closest points.

Sincerely,

Joe Crawford
___________________________________
Owner - Celestine Studios and Joetainment Enterprises
Cell: 604-866-3050
Email: joetainment@...
Web: http://celestinestudios.com

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development

Re: NURBS curve connecting

by hoako :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Joe Crawford wrote:

>> select two curves and the end points you want to connect -> only connects 2
>> curves and needs lot of input
>> select a bunch of curves, I'll loop through all ending control points and
>> choose the nearest other ending CP and connect these both -> this way the
>> resulting curve will be closed and will (hopefully) have the shape the user
>> expected
>>  I'm not sure which one to choose.. At the moment I'm heading to the 2nd one
>> testing the user_input_properties in combination with a python script to
>> fill the list. Perhaps I should provide both ways..? Probably thats the way
>> to go, as they dont differ too much really from developers view.
>
> I like the second method.
Joe:
Actually Carsten thought about making two plugins.
Do you agree with this idea?

Also I have made a list of the plugins necessary for curve editing.
* create curve (made, later we should need a Tool and a better plugin for this)
* AddPoint (on edge or on point)
* BreakPoints (create two curves from one curve, or open a closed curve)
* SetFirstVertex (on a closed curve)
* CloseCurve (on open curve, similar, but not the same as connecting curves)
* CollapseEdge and Delete (edges? and points) should also work with curves
        * May be a CollapsePoints too?
* IntersectCurves
* CurveBooleanOperation or CurveCombineOperation ?
* NurbsCurveToPolygonal and PolygonalCurveToNurbs ?
* NurbsCurveToSplines (patches) and SplinesCurveToNurbs ?

Carsten I'd like to suggest you playing with a vector drawing program, trying
drawing something (a penguin?? :-), that way you may get an impression of what
an artist need.
Options:
Xara for linux
Inkscape
any other..

Cheers!
Joaquín


-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference
Don't miss this year's exciting event. There's still time to save $100.
Use priority code J8TL2D2.
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
_______________________________________________
K3d-development mailing list
K3d-development@...
https://lists.sourceforge.net/lists/listinfo/k3d-development