paysages3d/src/rendering/tools/curve.h

36 lines
1.3 KiB
C++

#ifndef _PAYSAGES_TOOLS_CURVE_H_
#define _PAYSAGES_TOOLS_CURVE_H_
#include "../rendering_global.h"
namespace paysages {
namespace system {class PackStream;}
}
typedef struct {
double position;
double value;
} CurvePoint;
typedef struct Curve Curve;
RENDERINGSHARED_EXPORT Curve* curveCreate();
RENDERINGSHARED_EXPORT void curveDelete(Curve* curve);
RENDERINGSHARED_EXPORT void curveCopy(Curve* source, Curve* destination);
RENDERINGSHARED_EXPORT void curveSave(PackStream* stream, Curve* curve);
RENDERINGSHARED_EXPORT void curveLoad(PackStream* stream, Curve* curve);
RENDERINGSHARED_EXPORT void curveClear(Curve* curve);
RENDERINGSHARED_EXPORT void curveSetDefault(Curve* curve, double value);
RENDERINGSHARED_EXPORT int curveAddPoint(Curve* curve, CurvePoint* point);
RENDERINGSHARED_EXPORT int curveQuickAddPoint(Curve* curve, double position, double value);
RENDERINGSHARED_EXPORT int curveGetPointCount(Curve* curve);
RENDERINGSHARED_EXPORT void curveGetPoint(Curve* curve, int number, CurvePoint* point);
RENDERINGSHARED_EXPORT void curveSetPoint(Curve* curve, int number, CurvePoint* point);
RENDERINGSHARED_EXPORT void curveRemovePoint(Curve* curve, int number);
RENDERINGSHARED_EXPORT void curveValidate(Curve* curve);
RENDERINGSHARED_EXPORT double curveGetValue(Curve* curve, double position);
#endif