scriptorbit.h
上传用户:center1979
上传日期:2022-07-26
资源大小:50633k
文件大小:1k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // scriptorbit.h
  2. // 
  3. // Copyright (C) 2006, Chris Laurel <claurel@shatters.net>
  4. //
  5. // Interface for a Celestia trajectory implemented via a Lua script.
  6. //
  7. // This program is free software; you can redistribute it and/or
  8. // modify it under the terms of the GNU General Public License
  9. // as published by the Free Software Foundation; either version 2
  10. // of the License, or (at your option) any later version.
  11. #ifndef _CELENGINE_SCRIPTORBIT_H_
  12. #define _CELENGINE_SCRIPTORBIT_H_
  13. #include <celengine/parser.h>
  14. #include <celengine/orbit.h>
  15. struct lua_State;
  16. class ScriptedOrbit : public CachingOrbit
  17. {
  18.  public:
  19.     ScriptedOrbit();
  20.     ~ScriptedOrbit();
  21.     bool initialize(const std::string& moduleName,
  22.                     const std::string& funcName,
  23.                     Hash* parameters);
  24.     virtual Point3d computePosition(double tjd) const;
  25.     //virtual Vec3d computeVelocity(double tjd) const;
  26.     virtual bool isPeriodic() const;
  27.     virtual double getPeriod() const;
  28.     virtual double getBoundingRadius() const;
  29.     virtual void getValidRange(double& begin, double& end) const;
  30.  private:
  31.     lua_State* luaState;
  32.     std::string luaOrbitObjectName;
  33.     double boundingRadius;
  34.     double period;
  35.     double validRangeBegin;
  36.     double validRangeEnd;
  37. };
  38. #endif // _CELENGINE_SCRIPTORBIT_H_