[Bf-blender-cvs] SVN commit: bf-blender [62488] trunk/lib/linux_centos7_x86_64/potrace: Linux Libs: Add potrace library

Sergey Sharybin sergey.vfx at gmail.com
Thu Sep 17 11:17:10 CEST 2020


Revision: 62488
          https://developer.blender.org/rBL62488
Author:   sergey
Date:     2020-09-17 11:17:09 +0200 (Thu, 17 Sep 2020)
Log Message:
-----------
Linux Libs: Add potrace library

Ref T80818

Added Paths:
-----------
    trunk/lib/linux_centos7_x86_64/potrace/
    trunk/lib/linux_centos7_x86_64/potrace/include/
    trunk/lib/linux_centos7_x86_64/potrace/include/potracelib.h
    trunk/lib/linux_centos7_x86_64/potrace/lib/
    trunk/lib/linux_centos7_x86_64/potrace/lib/libpotrace.a

Added: trunk/lib/linux_centos7_x86_64/potrace/include/potracelib.h
===================================================================
--- trunk/lib/linux_centos7_x86_64/potrace/include/potracelib.h	                        (rev 0)
+++ trunk/lib/linux_centos7_x86_64/potrace/include/potracelib.h	2020-09-17 09:17:09 UTC (rev 62488)
@@ -0,0 +1,139 @@
+/* Copyright (C) 2001-2019 Peter Selinger.
+   This file is part of Potrace. It is free software and it is covered
+   by the GNU General Public License. See the file COPYING for details. */
+
+#ifndef POTRACELIB_H
+#define POTRACELIB_H
+
+/* this file defines the API for the core Potrace library. For a more
+   detailed description of the API, see potracelib.pdf */
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+/* ---------------------------------------------------------------------- */
+/* tracing parameters */
+
+/* turn policies */
+#define POTRACE_TURNPOLICY_BLACK 0
+#define POTRACE_TURNPOLICY_WHITE 1
+#define POTRACE_TURNPOLICY_LEFT 2
+#define POTRACE_TURNPOLICY_RIGHT 3
+#define POTRACE_TURNPOLICY_MINORITY 4
+#define POTRACE_TURNPOLICY_MAJORITY 5
+#define POTRACE_TURNPOLICY_RANDOM 6
+
+/* structure to hold progress bar callback data */
+struct potrace_progress_s {
+  void (*callback)(double progress, void *privdata); /* callback fn */
+  void *data;          /* callback function's private data */
+  double min, max;     /* desired range of progress, e.g. 0.0 to 1.0 */
+  double epsilon;      /* granularity: can skip smaller increments */
+};
+typedef struct potrace_progress_s potrace_progress_t;
+
+/* structure to hold tracing parameters */
+struct potrace_param_s {
+  int turdsize;        /* area of largest path to be ignored */
+  int turnpolicy;      /* resolves ambiguous turns in path decomposition */
+  double alphamax;     /* corner threshold */
+  int opticurve;       /* use curve optimization? */
+  double opttolerance; /* curve optimization tolerance */
+  potrace_progress_t progress; /* progress callback function */
+};
+typedef struct potrace_param_s potrace_param_t;
+
+/* ---------------------------------------------------------------------- */
+/* bitmaps */
+
+/* native word size */
+typedef unsigned long potrace_word;
+
+/* Internal bitmap format. The n-th scanline starts at scanline(n) =
+   (map + n*dy). Raster data is stored as a sequence of potrace_words
+   (NOT bytes). The leftmost bit of scanline n is the most significant
+   bit of scanline(n)[0]. */
+struct potrace_bitmap_s {
+  int w, h;              /* width and height, in pixels */
+  int dy;                /* words per scanline (not bytes) */
+  potrace_word *map;     /* raw data, dy*h words */
+};
+typedef struct potrace_bitmap_s potrace_bitmap_t;
+
+/* ---------------------------------------------------------------------- */
+/* curves */
+
+/* point */
+struct potrace_dpoint_s {
+  double x, y;
+};
+typedef struct potrace_dpoint_s potrace_dpoint_t;
+
+/* segment tags */
+#define POTRACE_CURVETO 1
+#define POTRACE_CORNER 2
+
+/* closed curve segment */
+struct potrace_curve_s {
+  int n;                    /* number of segments */
+  int *tag;                 /* tag[n]: POTRACE_CURVETO or POTRACE_CORNER */
+  potrace_dpoint_t (*c)[3]; /* c[n][3]: control points. 
+			       c[n][0] is unused for tag[n]=POTRACE_CORNER */
+};
+typedef struct potrace_curve_s potrace_curve_t;
+
+/* Linked list of signed curve segments. Also carries a tree structure. */
+struct potrace_path_s {
+  int area;                         /* area of the bitmap path */
+  int sign;                         /* '+' or '-', depending on orientation */
+  potrace_curve_t curve;            /* this path's vector data */
+
+  struct potrace_path_s *next;      /* linked list structure */
+
+  struct potrace_path_s *childlist; /* tree structure */
+  struct potrace_path_s *sibling;   /* tree structure */
+
+  struct potrace_privpath_s *priv;  /* private state */
+};
+typedef struct potrace_path_s potrace_path_t;  
+
+/* ---------------------------------------------------------------------- */
+/* Potrace state */
+
+#define POTRACE_STATUS_OK         0
+#define POTRACE_STATUS_INCOMPLETE 1
+
+struct potrace_state_s {
+  int status;                       
+  potrace_path_t *plist;            /* vector data */
+
+  struct potrace_privstate_s *priv; /* private state */
+};
+typedef struct potrace_state_s potrace_state_t;
+
+/* ---------------------------------------------------------------------- */
+/* API functions */
+
+/* get default parameters */
+potrace_param_t *potrace_param_default(void);
+
+/* free parameter set */
+void potrace_param_free(potrace_param_t *p);
+
+/* trace a bitmap */
+potrace_state_t *potrace_trace(const potrace_param_t *param, 
+			       const potrace_bitmap_t *bm);
+
+/* free a Potrace state */
+void potrace_state_free(potrace_state_t *st);
+
+/* return a static plain text version string identifying this version
+   of potracelib */
+const char *potrace_version(void);
+
+#ifdef  __cplusplus
+} /* end of extern "C" */
+#endif
+
+#endif /* POTRACELIB_H */

Added: trunk/lib/linux_centos7_x86_64/potrace/lib/libpotrace.a
===================================================================
(Binary files differ)

Index: trunk/lib/linux_centos7_x86_64/potrace/lib/libpotrace.a
===================================================================
--- trunk/lib/linux_centos7_x86_64/potrace/lib/libpotrace.a	2020-09-16 16:34:05 UTC (rev 62487)
+++ trunk/lib/linux_centos7_x86_64/potrace/lib/libpotrace.a	2020-09-17 09:17:09 UTC (rev 62488)

Property changes on: trunk/lib/linux_centos7_x86_64/potrace/lib/libpotrace.a
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property


More information about the Bf-blender-cvs mailing list