trace.h revision e30df61c851d80686807ffd16035b6c624027042
/*
* A generic interface for plugging different
* autotracers into Inkscape.
*
* Authors:
* Bob Jamison <rjamison@titan.com>
*
* Copyright (C) 2004 Bob Jamison
*
* Released under GNU GPL, read the file 'COPYING' for more information
*/
#ifndef __TRACE_H__
#define __TRACE_H__
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#ifdef HAVE_STDLIB_H
# include <stdlib.h>
#endif
#ifdef HAVE_STRING_H
# include <string.h>
#endif
#include <gdk/gdkpixbuf.h>
struct SPImage;
struct SPItem;
/**
*
*/
{
/**
*
*/
{
}
/**
*
*/
{
if (next)
if (style)
if (pathData)
}
/**
*
*/
char *getStyle()
{ return style; }
/**
*
*/
char *getPathData()
{ return pathData; }
/**
*
*/
long getNodeCount()
{ return nodeCount; }
/**
*
*/
char *style;
char *pathData;
long nodeCount;
};
/**
*
*/
{
/**
*
*/
{}
/**
*
*/
{}
/**
* This is the working method of this interface, and all
* implementing classes. Take a GdkPixbuf, trace it, and
* return a style attribute and the path data that is
* compatible with the d="" attribute
* of an SVG <path> element.
*/
{ return NULL; }
/**
* Abort the thread that is executing getPathDataFromPixbuf()
*/
{}
};//class TracingEngine
/**
* This simple class allows a generic wrapper around a given
* TracingEngine object. Its purpose is to provide a gateway
* to a variety of tracing engines, while maintaining a
* consistent interface.
*/
{
/**
*
*/
Tracer()
{
selectedItem = NULL;
sioxEnabled = false;
}
/**
*
*/
~Tracer()
{}
/**
* A convenience method to allow other software to 'see' the
* same image that this class sees.
*/
/**
* This is the main working method. Trace the selected image, if
* any, and create a <path> element from it, inserting it into
* the current document.
*/
/**
* Abort the thread that is executing convertImageToPath()
*/
void abort();
/**
* Whether we want to enable SIOX subimage selection
*/
void enableSiox(bool enable);
/**
* This is the single path code that is called by its counterpart above.
*/
void traceThread();
/**
* This is true during execution. Setting it to false (like abort()
* does) should inform the threaded code that it needs to stop
*/
bool keepGoing;
/**
* During tracing, this is Non-null, and refers to the
* engine that is currently doing the tracing.
*/
bool sioxEnabled;
};//class Tracer
} // namespace Trace
} // namespace Inkscape
#endif //__TRACE_H__
//#########################################################################
//# E N D O F F I L E
//#########################################################################