CAAT.Path

Complex paths

This kind of path object, gives thorough control on path definition. It asumes new path segments can be added at any time.

Linear Path

To define a linear path, simply call the method setLinear on a CAAT.PathUtil.Path object instance. This method substitutes CAAT.LinearPath and is the preferred way of building paths.

                        var path= new CAAT.PathUtil.Path().
                                setLinear( x0,y0, x1,y1 );
                    

Curve Path

To define a curve path, simply call either the method setQuadric(x0,y0, x1,y1, x2,y2) or setCubic( x0,y0, x1,y1, x2,y2, x3,y3) on a CAAT.Path object instance. This methods substitute CAAT.PathUtil.CurvePath and is the preferred way of building paths.

                        var path= new CAAT.PathUtil.Path().
                                setQuadric( x0,y0, x1,y1, x2,y2 );
                        var path2= new CAAT.PathUtil.Path().
                                setCubic( x0,y0, x1,y1, x2,y2, x3,y3 );
                    

Complex Path

The procedure to define a complex path is to call beginPath() add segments to the path, and finally call either endPath() or closePath().

endPath will terminate adding segments, and closePath will add a final straight line segment to the very beginning point of the path.

Example


                    var p= new CAAT.PathUtil.Path().
                            beginPath(20,20).
                            addCubicTo( 30,80, 90,30, 50,70, 'red' ).
                            addQuadricTo( 80,60, 65,85, 'blue' ).
                            addLineTo( 99,40, 'rgb(0,255,255)' ).
                            endPath().
                            setInteractive(false);

                    

The color parameters are optional, but since I want you to show the different path segments, i've included them. This block of code defines the following path:

This path does noe end with a call to closePath. By doing so, the result would be:

CAAT.Path objects have two interesting properties that other path types don't:

function setTranslation(offsetX,offsetY)
This method applies an extra displacement to the position calculated on path at any given time. As we already saw, an actor's 0,0, position is located at its top left corner. And by default an actor will traverse the path by locating this top left corner over the path. This method gets handy when we want in example, our Actor instances to traverse the path from its center, and not the top left right. So by calling setTranslation( actor.width/2, actor.height/2 ) on a CAAT.PathBehavior instance will solve that it.

function setAutoRotate( boolean )
This method will set the exact rotation angle needed to head from one point in the path to the next one. A CAAT.PathBehavior target Actor should not apply other rotations to make this method work properly.

The methods getBoundingBox, getLength, getPosition, getPositionFromLength, etc. will give its values by taking into account every path segment.