[PD-cvs] externals/pidip/modules Makefile,1.4,1.5 Makefile.in,1.4,1.5 pdp_canvas.c,1.2,1.3 pdp_pen.c,1.1,1.2 pdp_ripple.c,1.2,1.3

sevyves at users.sourceforge.net sevyves at users.sourceforge.net
Fri Oct 17 22:54:43 CEST 2003


Update of /cvsroot/pure-data/externals/pidip/modules
In directory sc8-pr-cvs1:/tmp/cvs-serv31538/pidip/modules

Modified Files:
	Makefile Makefile.in pdp_canvas.c pdp_pen.c pdp_ripple.c 
Log Message:
Version 0.12.9 ( added pdp_shape )

Index: Makefile
===================================================================
RCS file: /cvsroot/pure-data/externals/pidip/modules/Makefile,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Makefile	8 Oct 2003 14:59:54 -0000	1.4
--- Makefile	17 Oct 2003 20:54:40 -0000	1.5
***************
*** 15,19 ****
            pdp_juxta.o pdp_capture.o pdp_smuck.o pdp_lumafilt.o \
            pdp_transition.o pdp_imgloader.o pdp_imgsaver.o pdp_cache.o \
!           pdp_canvas.o pdp_pen.o
  
  all_modules: $(OBJECTS) 
--- 15,19 ----
            pdp_juxta.o pdp_capture.o pdp_smuck.o pdp_lumafilt.o \
            pdp_transition.o pdp_imgloader.o pdp_imgsaver.o pdp_cache.o \
!           pdp_canvas.o pdp_pen.o pdp_shape.o
  
  all_modules: $(OBJECTS) 

Index: Makefile.in
===================================================================
RCS file: /cvsroot/pure-data/externals/pidip/modules/Makefile.in,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Makefile.in	8 Oct 2003 15:00:06 -0000	1.4
--- Makefile.in	17 Oct 2003 20:54:40 -0000	1.5
***************
*** 15,19 ****
            pdp_juxta.o pdp_capture.o pdp_smuck.o pdp_lumafilt.o \
            pdp_transition.o pdp_imgloader.o pdp_imgsaver.o pdp_cache.o \
!           pdp_canvas.o pdp_pen.o
  
  all_modules: $(OBJECTS) 
--- 15,19 ----
            pdp_juxta.o pdp_capture.o pdp_smuck.o pdp_lumafilt.o \
            pdp_transition.o pdp_imgloader.o pdp_imgsaver.o pdp_cache.o \
!           pdp_canvas.o pdp_pen.o pdp_shape.o
  
  all_modules: $(OBJECTS) 

Index: pdp_canvas.c
===================================================================
RCS file: /cvsroot/pure-data/externals/pidip/modules/pdp_canvas.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** pdp_canvas.c	26 Sep 2003 00:19:33 -0000	1.2
--- pdp_canvas.c	17 Oct 2003 20:54:40 -0000	1.3
***************
*** 204,208 ****
    X = X*x->x_owidth;
    Y = Y*x->x_oheight;
!   // post( "pdp_canvas : drag %f %f", dx, dy );
    if ( x->x_current != -1 )
    {
--- 204,208 ----
    X = X*x->x_owidth;
    Y = Y*x->x_oheight;
!   // post( "pdp_canvas : drag %f %f", X, Y );
    if ( x->x_current != -1 )
    {

Index: pdp_pen.c
===================================================================
RCS file: /cvsroot/pure-data/externals/pidip/modules/pdp_pen.c,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** pdp_pen.c	8 Oct 2003 15:00:57 -0000	1.1
--- pdp_pen.c	17 Oct 2003 20:54:40 -0000	1.2
***************
*** 31,34 ****
--- 31,36 ----
  static char   *pdp_pen_version = "pdp_pen: version 0.1, free hand drawing object written by Yves Degoyon (ydegoyon at free.fr)";
  
+ static t_int nbits=0; // number of recursive calls
+ 
  typedef struct pdp_pen_struct
  {
***************
*** 121,124 ****
--- 123,288 ----
  }
  
+ static void pdp_pen_do_fill(t_pdp_pen *x, t_floatarg X, t_floatarg Y)
+ {
+  short int  *pbY, *pbU, *pbV;
+  short int  nX, nY;
+ 
+   nbits++;
+   // post( "pdp_pen_do_fill : X=%d, Y=%d stack=%d", (t_int)X, (t_int)Y, nbits );
+ 
+   pbY = x->x_bdata;
+   pbU = (x->x_bdata+x->x_vsize);
+   pbV = (x->x_bdata+x->x_vsize+(x->x_vsize>>2));
+ 
+   if ( ( (t_int)X < 0 ) || ( (t_int)X >= x->x_vwidth ) || 
+        ( (t_int)Y < 0 ) || ( (t_int)Y >= x->x_vheight ) )
+   {
+      nbits--;
+      return;
+   }
+ 
+   nX = (t_int) X; 
+   nY = (t_int) Y; 
+   if ( *(pbY+(t_int)Y*x->x_vwidth+(t_int)X) != 0 )
+   {
+      nbits--;
+      return;
+   }
+   else
+   {
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   }
+ 
+   nX = (t_int) X+1; 
+   nY = (t_int) Y; 
+   if ( (*(pbY+nY*x->x_vwidth+nX)) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nX = (t_int) X-1; 
+   nY = (t_int) Y; 
+   if ( *(pbY+nY*x->x_vwidth+nX) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nX = (t_int) X-1; 
+   nY = (t_int) Y-1; 
+   if ( *(pbY+nY*x->x_vwidth+nX) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nX = (t_int) X; 
+   nY = (t_int) Y-1; 
+   if ( *(pbY+nY*x->x_vwidth+nX) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nX = (t_int) X+1; 
+   nY = (t_int) Y-1; 
+   if ( *(pbY+nY*x->x_vwidth+nX) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nX = (t_int) X-1; 
+   nY = (t_int) Y+1; 
+   if ( *(pbY+nY*x->x_vwidth+nX) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nX = (t_int) X; 
+   nY = (t_int) Y+1; 
+   if ( *(pbY+nY*x->x_vwidth+nX) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nX = (t_int) X+1; 
+   nY = (t_int) Y+1; 
+   if ( *(pbY+nY*x->x_vwidth+nX) == 0 )
+   {
+      pdp_pen_do_fill( x, nX, nY );
+      *(pbY+nY*x->x_vwidth+nX) = 
+         (yuv_RGBtoY( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))<<7;
+      *(pbU+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoU( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+      *(pbV+(nY>>1)*(x->x_vwidth>>1)+(nX>>1)) =
+         (yuv_RGBtoV( (x->x_blue << 16) + (x->x_green << 8) + x->x_red ))-128<<8;
+   } 
+ 
+   nbits--;
+ }
+ 
+ static void pdp_pen_fill(t_pdp_pen *x, t_floatarg X, t_floatarg Y)
+ {
+   X = X*x->x_vwidth;
+   Y = Y*x->x_vheight;
+   // post( "pdp_pen : draw %f %f", X, Y );
+   if ( (X<0) || (X>x->x_vwidth) )
+   {
+      // post( "pdp_pen : fill : wrong X position : %f", X );
+      return;
+   }  
+   if ( (Y<0) || (Y>x->x_vheight) )
+   {
+      // post( "pdp_pen : fill : wrong Y position : %f", Y );
+      return;
+   }  
+ 
+   pdp_pen_do_fill( x, X, Y );
+ }
+ 
  static void pdp_pen_clear(t_pdp_pen *x)
  {
***************
*** 330,333 ****
--- 494,498 ----
      class_addmethod(pdp_pen_class, (t_method)pdp_pen_input_0, gensym("pdp"),  A_SYMBOL, A_DEFFLOAT, A_NULL);
      class_addmethod(pdp_pen_class, (t_method)pdp_pen_draw, gensym("draw"), A_DEFFLOAT, A_DEFFLOAT, A_NULL);
+     class_addmethod(pdp_pen_class, (t_method)pdp_pen_fill, gensym("fill"), A_DEFFLOAT, A_DEFFLOAT, A_NULL);
      class_addmethod(pdp_pen_class, (t_method)pdp_pen_clear, gensym("clear"), A_NULL);
      class_addmethod(pdp_pen_class, (t_method)pdp_pen_width, gensym("width"), A_DEFFLOAT, A_NULL);

Index: pdp_ripple.c
===================================================================
RCS file: /cvsroot/pure-data/externals/pidip/modules/pdp_ripple.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** pdp_ripple.c	17 Sep 2003 20:08:00 -0000	1.2
--- pdp_ripple.c	17 Oct 2003 20:54:40 -0000	1.3
***************
*** 29,33 ****
  #include <math.h>
  
! #define MAGIC_THRESHOLD 30
  
  static unsigned int fastrand_val;
--- 29,33 ----
  #include <math.h>
  
! #define MAGIC_THRESHOLD 5
  
  static unsigned int fastrand_val;






More information about the Pd-cvs mailing list