summaryrefslogtreecommitdiffstats
path: root/rwsdk/include/d3d8/rpspline.h
diff options
context:
space:
mode:
authoraap <aap@papnet.eu>2019-05-18 12:39:39 +0200
committeraap <aap@papnet.eu>2019-05-18 12:39:39 +0200
commit9e496100b7baff8834658f577d3138d9f8fc3765 (patch)
treea725be9b0dba9a4ce76c19a6629ef62c36e46814 /rwsdk/include/d3d8/rpspline.h
parentfixed pathfind (diff)
downloadre3-9e496100b7baff8834658f577d3138d9f8fc3765.tar
re3-9e496100b7baff8834658f577d3138d9f8fc3765.tar.gz
re3-9e496100b7baff8834658f577d3138d9f8fc3765.tar.bz2
re3-9e496100b7baff8834658f577d3138d9f8fc3765.tar.lz
re3-9e496100b7baff8834658f577d3138d9f8fc3765.tar.xz
re3-9e496100b7baff8834658f577d3138d9f8fc3765.tar.zst
re3-9e496100b7baff8834658f577d3138d9f8fc3765.zip
Diffstat (limited to '')
-rw-r--r--rwsdk/include/d3d8/rpspline.h141
1 files changed, 141 insertions, 0 deletions
diff --git a/rwsdk/include/d3d8/rpspline.h b/rwsdk/include/d3d8/rpspline.h
new file mode 100644
index 00000000..53fd8484
--- /dev/null
+++ b/rwsdk/include/d3d8/rpspline.h
@@ -0,0 +1,141 @@
+/*
+ * Structure for splines
+ *
+ *
+ * Copyright (c) Criterion Software Limited
+ */
+
+/******************************************/
+/* */
+/* RenderWare(TM) Graphics Library */
+/* */
+/******************************************/
+
+/*
+ * This file is a product of Criterion Software Ltd.
+ *
+ * This file is provided as is with no warranties of any kind and is
+ * provided without any obligation on Criterion Software Ltd.
+ * or Canon Inc. to assist in its use or modification.
+ *
+ * Criterion Software Ltd. and Canon Inc. will not, under any
+ * circumstances, be liable for any lost revenue or other damages
+ * arising from the use of this file.
+ *
+ * Copyright (c) 1998. Criterion Software Ltd.
+ * All Rights Reserved.
+ */
+
+/***************************************************************************
+ * *
+ * Module : rpspline.h *
+ * *
+ * Purpose : Spline operations *
+ * *
+ **************************************************************************/
+
+#ifndef RPSPLINE_H
+#define RPSPLINE_H
+
+/**
+ * \defgroup rpspline RpSpline
+ * \ingroup rpplugin
+ *
+ * Spline Plugin for RenderWare Graphics.
+ */
+
+/****************************************************************************
+ Includes
+ */
+
+/*--- Include files ---*/
+#include "rwcore.h"
+#include "rpworld.h"
+
+#include "rpspline.rpe" /* automatically generated header file */
+
+/****************************************************************************
+ Global Types
+ */
+
+#define rpSPLINENAMELENGTH (32)
+
+typedef struct RpSpline RpSpline;
+/**
+ * \ingroup rpspline
+ * \struct RpSpline
+ * Spline object. This should be considered an opaque type.
+ * Use the RpSpline API functions to access.
+ */
+struct RpSpline
+{
+ RwObject tType; /**< Internal Use */
+ RwInt32 numCtrlPoints; /**< Internal Use */
+ RwInt32 nSplineType; /**< Internal Use */
+ void *pUser; /**< Internal Use */
+ RwV3d *ctrlPoints; /**< Internal Use */
+ RwChar caName[rpSPLINENAMELENGTH]; /**< Internal Use */
+ /* Keep this at tail */
+ RwV3d vPts[1]; /**< Internal Use */
+};
+
+/* Spline types */
+#define rpSPLINETYPEOPENLOOPBSPLINE (1) /* Bezier spline, open loop */
+#define rpSPLINETYPECLOSEDLOOPBSPLINE (2) /* Bezier spline, closed loop */
+
+/* Spline path types */
+#define rpSPLINEPATHSMOOTH (10) /* Normal */
+#define rpSPLINEPATHNICEENDS (11) /* Slows down the path at the ends */
+
+/****************************************************************************
+ Function prototypes
+ */
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif /* __cplusplus */
+
+/* Opening the spline plugin */
+extern RwBool RpSplinePluginAttach(void);
+
+/* Creating and destroying splines */
+extern RpSpline *RpSplineCreate(RwInt32 numCtrlPoints, RwInt32 type, RwV3d *ctrlPoints);
+extern RwBool RpSplineDestroy(RpSpline *spline);
+
+/* Finding a point and its tangent vector on the spline */
+extern RwV3d *RpSplineFindPosition(RpSpline *spline, RwInt32 path, RwReal where, RwV3d *pos, RwV3d *tangent);
+
+/* Finding a frame on the spline */
+extern RwReal RpSplineFindMatrix(RpSpline *spline, RwInt32 path, RwReal where, RwV3d *up, RwMatrix *matrix);
+/* LEGACY-SUPPORT MACRO */
+#define RpSplineFindFrame RpSplineFindMatrix
+
+/* Getting and setting the control points */
+extern RwInt32 RpSplineGetNumControlPoints(const RpSpline *spline);
+extern RwV3d *RpSplineGetControlPoint(RpSpline *spline, RwInt32 control, RwV3d *point);
+extern RpSpline *RpSplineSetControlPoint(RpSpline *spline, RwInt32 control, RwV3d * point);
+
+/* Copy a spline */
+extern RpSpline *RpSplineClone(RpSpline *spline);
+
+/* Spline reading and writing helper functions */
+extern RpSpline *RpSplineRead(RwChar *name);
+extern RwBool RpSplineWrite(RpSpline *spline, RwChar *name);
+
+/* Binary format */
+extern RwUInt32 RpSplineStreamGetSize(const RpSpline *spline);
+extern RpSpline *RpSplineStreamRead(RwStream *stream);
+extern const RpSpline *RpSplineStreamWrite(const RpSpline *spline, RwStream *stream);
+
+#ifdef __cplusplus
+}
+#endif /* __cplusplus */
+
+#endif /* RPSPLINE_H */
+
+
+
+
+
+