Files
Cyd 2b8ca921cb Initial full mirror of c:\VWE (source + assets + toolchain + outputs) via Git LFS
Complete disaster-recovery snapshot: engine/game source, game data assets,
VC6 toolchain + DX SDKs, build outputs, deployed game, and _UNUSED archive.
Large binaries in Git LFS; text preserved byte-for-byte (core.autocrlf=false,
no eol attributes). See RECOVERY.md for the one-clone rebuild procedure.
2026-06-24 21:28:16 -05:00

38 lines
1018 B
C++

#ifndef VIEWSPLINE_H_
#define VIEWSPLINE_H_
#include <Stuff\FCurve.hpp>
#include <Stuff\Scalar.hpp>
#define MAXCPOINTS 100
class SplineLoop
{
private:
protected:
Stuff::DynamicArrayOf<Stuff::Vector3D> CtrlVector;
Stuff::DynamicArrayOf<Stuff::Point3D> CtrlPoint;
Stuff::FCurve XCurve,YCurve,ZCurve;
Stuff::Scalar DefRadius;
Stuff::Point3D DefCenter;
int noc;
void RebuildCurve(int crv=-1);
public:
SplineLoop(int pnts=2,Stuff::Scalar radius=1.0f,Stuff::Point3D &pos=Stuff::Point3D(0.0f,0.0f,0.0f));
void GetCPoint(int pn,Stuff::Point3D *cp,Stuff::Vector3D *cv);
void SetCPoint(int pn,Stuff::Point3D &cp,Stuff::Vector3D &cv);
int GetClosestCPoint(Stuff::Point3D &cp);
void ResetCurve(Stuff::Scalar radius,Stuff::Point3D &pos=Stuff::Point3D(0.0f,0.0f,0.0f));
void ResetCurve() {ResetCurve(DefRadius,DefCenter);}
int GetCurveCount() {return noc;}
void Evaluate(Stuff::Scalar t,Stuff::Point3D *pnt,Stuff::Vector3D *vct);
~SplineLoop();
};
#endif