True Axis Physics SDK 1.2.0.1 Beta Documentation
www.trueaxis.com

FuncSplineBezier.h

00001 //---------------------------------------------------------------------------------
00002 // File Name: FuncSplineBezier.h
00003 // Description: // More of a uniform b spline actually
00004 //
00005 // Copyright (C) 2004 True Axis Pty Ltd, Australia. 
00006 // All Rights Reserved.
00007 //
00008 // History:
00009 //      Created File.
00010 //---------------------------------------------------------------------------------
00011 
00012 #ifndef TA_FUNCSPLINEBEZIER_H
00013 #define TA_FUNCSPLINEBEZIER_H
00014 
00015 #ifndef TA_FUNCSPLINE_H
00016 #include "FuncSpline.h"
00017 #endif // TA_FUNCSPLINE_H
00018 
00019 namespace TA
00020 {
00021 
00022 class TACOMMON_CLASS FuncSplineBezier : public FuncSpline
00023 {
00024 public:
00025     class BezierSegment : public FuncSpline::Point
00026     {
00027     public:
00028     /*  // Control point A
00029         float fInA;
00030         float fOutA;
00031         // Control point B
00032         float fInB;
00033         float fOutB;*/
00034         // coefficients for A * t^3 + B * t^2 + D * t + Output
00035         float fA;
00036         float fB;
00037         float fC;
00038     };
00039 
00040     FuncSplineBezier();
00041     virtual ~FuncSplineBezier();
00042 
00043     virtual void Initialise();
00044     void Initialise(const FuncSplineBezier& that);
00045     virtual void Finalise();
00046 
00047 protected:  
00048 
00049     virtual float GetOutputInSegment(Point* pPoint, float fInput) const;
00050     virtual float GetGradientInSegment(Point* pPoint, float fInput) const;
00051     virtual void Optimise();
00052     virtual Point* CreatePoint();
00053 };
00054 
00055 }
00056 
00057 #endif // TA_FUNCSPLINEBEZIER_H


© Copyright 2004-2006 TRUE AXIS PTY LTD Australia. All rights reserved.