lpe-bspline.cpp revision b94ebc73566a086cab0cdc87a954ac8d0e4adc2b
5418N/A * Released under GNU GPL, read the file 'COPYING' for more information // For handling un-continuous paths: // Make copy of old path as it is changed during processing //Puntos a usar. Ponemos todos los posibles para hacer más inteligible el código //Geom::Point previousPointAt3(0,0); //Geom::Point nextPointAt0(0,0); //Recorremos todos los paths a los que queremos aplicar el efecto, hasta el penúltimo //Creamos las lineas rectas que unen todos los puntos del trazado y donde se calcularán //los puntos clave para los manejadores. //Esto hace que la curva BSpline no pierda su condición aunque se trasladen //Si la curva está cerrada calculamos el punto donde //deveria estar el nodo BSpline de cierre/inicio de la curva //en posible caso de que se cierre con una linea recta creando un nodo BSPline //Calculamos el nodo de inicio BSpline //Guardamos el principio de la curva //Definimos el punto de inicio original de la curva resultante //Guardamos el principio de la curva //Definimos el punto de inicio original de la curva resultante //Recorremos todos los segmentos menos el último //previousPointAt3 = pointAt3; //Calculamos los puntos que dividirían en tres segmentos iguales el path recto de entrada y de salida //Y hacemos lo propio con el path de salida //nextPointAt0 = curveOut.valueAt(0); //La curva BSpline se forma calculando el centro del segmanto de unión //de el punto situado en las 2/3 partes de el segmento de entrada //con el punto situado en la posición 1/3 del segmento de salida //Estos dos puntos ademas estan posicionados en el lugas correspondiente de //los manejadores de la curva //almacenamos el punto del anterior bucle -o el de cierre- que nos hara de principio de curva //Y este hará de final de curva //añadimos la curva generada a la curva pricipal //aumentamos los valores para el siguiente paso en el bucle //Damos valor a el objeto para el path de entrada y el de salida //Aberiguamos la ultima parte de la curva correspondiente al último segmento //Si está cerrada la curva, la cerramos sobre el valor guardado previamente //Si no finalizamos en el punto final //añadimos este último segmento };
//namespace LivePathEffect};
/* namespace Inkscape */ c-file-style:"stroustrup" c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +)) // vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4 :