29 lines
1.6 KiB
C
29 lines
1.6 KiB
C
|
// Copyright 2013 Howling Moon Software. All rights reserved.
|
||
|
// See http://chipmunk2d.net/legal.php for more information.
|
||
|
|
||
|
/// Function type used as a callback from the marching squares algorithm to sample an image function.
|
||
|
/// It passes you the point to sample and your context pointer, and you return the density.
|
||
|
typedef cpFloat (*cpMarchSampleFunc)(cpVect point, void *data);
|
||
|
|
||
|
/// Function type used as a callback from the marching squares algorithm to output a line segment.
|
||
|
/// It passes you the two endpoints and your context pointer.
|
||
|
typedef void (*cpMarchSegmentFunc)(cpVect v0, cpVect v1, void *data);
|
||
|
|
||
|
/// Trace an anti-aliased contour of an image along a particular threshold.
|
||
|
/// The given number of samples will be taken and spread across the bounding box area using the sampling function and context.
|
||
|
/// The segment function will be called for each segment detected that lies along the density contour for @c threshold.
|
||
|
CP_EXPORT void cpMarchSoft(
|
||
|
cpBB bb, unsigned long x_samples, unsigned long y_samples, cpFloat threshold,
|
||
|
cpMarchSegmentFunc segment, void *segment_data,
|
||
|
cpMarchSampleFunc sample, void *sample_data
|
||
|
);
|
||
|
|
||
|
/// Trace an aliased curve of an image along a particular threshold.
|
||
|
/// The given number of samples will be taken and spread across the bounding box area using the sampling function and context.
|
||
|
/// The segment function will be called for each segment detected that lies along the density contour for @c threshold.
|
||
|
CP_EXPORT void cpMarchHard(
|
||
|
cpBB bb, unsigned long x_samples, unsigned long y_samples, cpFloat threshold,
|
||
|
cpMarchSegmentFunc segment, void *segment_data,
|
||
|
cpMarchSampleFunc sample, void *sample_data
|
||
|
);
|