Advertisement
Guest User

Untitled

a guest
Apr 9th, 2017
59
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 75.21 KB | None | 0 0
  1. $/* Add includes here. */
  2. $#include "Leadwerks.h"
  3. $using namespace Leadwerks;
  4.  
  5. class System
  6. {
  7. static std::string AppPath;
  8. static long GetMemoryUsage();
  9. static void CollectGarbage();
  10. static std::string GetProperty(const std::string& key,const std::string defaultvalue);
  11. static void SetProperty(const std::string& key, const std::string& value);
  12. static void Print(const std::string& s);
  13. static void Print(Object* o);
  14. static void Print(Object& o);
  15. static void Print(const double f);
  16. static void Print(const bool b);
  17. static void Print(const char* c);
  18. static std::string GetPlatformName();
  19. static bool IgnoreOpenGLErrors;
  20. static void GCSuspend();
  21. static void GCResume();
  22. static std::string AppName;
  23. static int CountGraphicsModes();
  24. static iVec2 GetGraphicsMode(const int index);
  25. };
  26.  
  27. class Blend
  28. {
  29. static const int Solid;
  30. static const int Alpha;
  31. static const int Shade;
  32. static const int Light;
  33. static const int Mod2X;
  34. static const int Invisible;
  35. static const int Lighten;
  36. static const int Darken;
  37. };
  38.  
  39. class Object
  40. {
  41. virtual int GetClass();
  42. virtual std::string GetClassName();
  43. virtual void SetUserData(void* userdata);
  44. virtual void* GetUserData();
  45. virtual std::string Debug();
  46. virtual std::string ToString();
  47. virtual unsigned long Release();
  48. virtual unsigned long AddRef();
  49. virtual unsigned long GetRefCount();
  50. static std::string GetAddress(Object* o);
  51. static const int PivotClass;
  52. static const int ModelClass;
  53. static const int CameraClass;
  54. static const int DirectionalLightClass;
  55. static const int SpotLightClass;
  56. static const int PointLightClass;
  57. static const int ListenerClass;
  58. static const int Vec2Class;
  59. static const int Vec3Class;
  60. static const int Vec4Class;
  61. static const int Mat4Class;
  62. static const int SurfaceClass;
  63. static const int BrushClass;
  64. static const int EmitterClass;
  65. static const int AttractorClass;
  66. static const int JointClass;
  67. static const int LensFlareClass;
  68. static const int BoneClass;
  69. static const int TerrainClass;
  70. static const int TerrainPatchClass;
  71. static const int BufferClass;
  72. static const int ContextClass;
  73. static const int ShaderClass;
  74. static const int ComponentClass;
  75. static const int TextureClass;
  76. static const int MaterialClass;
  77. static const int SpriteClass;
  78. static const int DecalClass;
  79. static const int VegetationLayerClass;
  80. static const int ProbeClass;
  81. static const int WindowClass;
  82. };
  83.  
  84. class Buffer : public Object
  85. {
  86. virtual void SetGradientMode(const bool mode);
  87. virtual void SetMask(const bool red, const bool green, const bool blue, const bool alpha)=0;
  88. virtual void SetColor(const Vec4& color,const int index);
  89. virtual void SetColor(const double r, const double g, const double b,const int index);
  90. virtual void SetColor(const double r, const double g, const double b, const double a,const int index);
  91. virtual int CountColorTextures();
  92. virtual void Clear(const int mode)=0;
  93. virtual void Enable();
  94. virtual void Disable();
  95. virtual int GetWidth()=0;
  96. virtual int GetHeight()=0;
  97. virtual bool SetColorTexture(Texture* texture,const int i,const int cubeface,const int miplevel)=0;
  98. virtual bool SetDepthTexture(Texture* texture,const int cubeface)=0;
  99. virtual Texture* GetColorTexture(const int index);
  100. virtual Texture* GetDepthTexture();
  101. virtual void Blit(Buffer* dst, const int components)=0;
  102. virtual bool Screenshot(const std::string& path) = 0;
  103. static const int Depth;
  104. static const int Color;
  105. static const int Color0;
  106. static const int Color1;
  107. static const int Color2;
  108. static const int Color3;
  109. static const int Color4;
  110. static const int Color5;
  111. static const int Color6;
  112. static const int Color7;
  113. static void SetCurrent(Buffer* buffer);
  114. static Buffer* GetCurrent();
  115. static Buffer* Create(const int width, const int height,const int colorcomponents,const int depthbuffer,const int multisamplemode);
  116. };
  117.  
  118. class Context : public Buffer
  119. {
  120. virtual bool Screenshot(const std::string& path);
  121. virtual Window* GetWindow();
  122. virtual void Sync(const bool sync,const float framerate)=0;
  123. virtual void DrawPolygon(const Vec2& v0, const Vec2& v1, const Vec2& v2,const int style)=0;
  124. virtual void DrawPolygon(const Vec2& v0, const Vec2& v1, const Vec2& v2, const Vec2& v3,const int style)=0;
  125. static Context* Create(Window* window,const int multisamplemode);
  126. static Context* GetCurrent();
  127. static void SetCurrent(Context* context);
  128. virtual void DrawText(std::string& text, int x, int y, int width, int height,int style);
  129. virtual void DrawStats(const float x, const float y,const bool extra);
  130. virtual void DrawRect(const float x, const float y, const float width, const float height,const int style,const float radius);
  131. virtual void DrawLine(const float x0, const float y0, const float x1, const float y1,const bool drawlastpixel);
  132. virtual void Plot(const float x, const float y);
  133. virtual void DrawImage(Texture* texture, const float x, const float y, const float width, const float height);
  134. virtual void DrawImage(Texture* texture, const float x, const float y);
  135. virtual Vec4 GetColor(const int index);
  136. virtual void SetTranslation(const float x, const float y);
  137. virtual void SetRotation(const float rotation);
  138. virtual void SetScale(const float x, const float y);
  139. virtual void SetFont(Font* font);
  140. virtual Font* GetFont();
  141. virtual void DrawText(const std::string& text, const float x, const float y,const float kerning);
  142. virtual void SetShader(Shader* shader);
  143. virtual Shader* GetShader();
  144. virtual void SetBlendMode(const int blendmode);
  145. virtual int GetBlendMode();
  146. };
  147.  
  148. class Device
  149. {
  150. static void SetOrientation(const int orientation);
  151. static int GetOrientation();
  152. static Vec3 GetAcceleration();
  153. static const int Landscape;
  154. static const int Portrait;
  155. };
  156.  
  157. class Entity : public Object
  158. {
  159. World* world;
  160. Vec3 position;
  161. Vec3 rotation;
  162. Vec3 scale;
  163. Mat4 mat;
  164. Entity* parent;
  165. virtual bool Connect(Entity* target, const std::string& outputname, const std::string& inputname);
  166. virtual void SetBuoyancyMode(bool buoyancy);
  167. virtual bool GetBuoyancyMode();
  168. virtual double GetDistanceToEntity(Entity* entity);
  169. virtual double GetDistance(Entity* entity);
  170. virtual Source* EmitSound(Sound* sound,float range,float volume,float pitch,bool loopmode);
  171. virtual void EmitSound(Source* source);
  172. virtual bool GetCulled(Camera* camera);
  173. virtual void SetOcclusionCullingMode(const bool mode,const bool recursive);
  174. virtual bool GetOcclusionCullingMode();
  175. virtual void SetCharacterControllerAngle(const float angle);
  176. virtual float GetCharacterControllerAngle();
  177. virtual int GetPhysicsMode();
  178. virtual bool GetAirborne();
  179. virtual bool GetCrouched();
  180. virtual Mat4 GetPhysicsMatrix();
  181. virtual bool GoToPoint(const float x, const float y, const float z,const float maxspeed,const float maxacceleration);
  182. virtual bool GoToPoint(const Vec3& point,const float maxspeed,const float maxacceleration);
  183. virtual bool Follow(Entity* entity,const float maxspeed,const float maxacceleration);
  184. virtual void Stop();
  185. virtual void SetInput(const float angle, const float move,const float strafe,const float jump,const bool crouch,const float maxaccel,const float maxdecel,const bool detailed,const float maxrotationspeed);
  186. virtual void SetPhysicsMode(const int mode);
  187. virtual void RemoveAnimationSequence(const int index);
  188. virtual void SetPickMode(const int mode,const bool recursive);
  189. virtual int GetPickMode();
  190. virtual void SetQuaternion(const Quat& q,const bool global);
  191. virtual Quat GetQuaternion(const bool global);
  192. virtual void CopyAnimations(Entity* entity);
  193. virtual int LoadAnimation(const std::string& path);
  194. virtual Mat4 GetAnimationFrame(const int index,const int sequence);
  195. virtual int CountAnimations();
  196. virtual int GetAnimationLength(const int index,const bool recursive);
  197. virtual int GetAnimationLength(const std::string& name,const bool recursive);
  198. virtual void LockMatrix();
  199. virtual void UnlockMatrix(const int update);
  200. virtual Entity* GetParent();
  201. virtual void PlayAnimation(const std::string& sequence,const float speed,const int blendtime,const int mode,const std::string endhook);
  202. virtual void PlayAnimation(const int index,const float speed,const int blendtime,const int mode,const std::string endhook);
  203. virtual void StopAnimation();
  204. virtual void SetAnimationFrame(const double& time,const float blend,const int index,const bool recursive,const int matrixlockmode);
  205. virtual void SetAnimationFrame(const double& time, const float blend, const std::string& sequence,const bool recursive,const int matrixlockmode);
  206. virtual int FindAnimationSequence(const std::string& sequence);
  207. virtual Component* GetComponent(const std::string& name);
  208. virtual void SetFriction(const float staticfriction, const float kineticfriction);
  209. virtual float GetPickRadius();
  210. virtual void SetPickRadius(const float radius);
  211. virtual bool GetGravityMode();
  212. virtual void SetGravityMode(const bool mode);
  213. virtual void SetSweptCollisionMode(const bool mode);
  214. virtual bool GetSweptCollisionMode();
  215. virtual void SetMass(const float mass);
  216. virtual void SetMass(const float mass, const float cx, const float cy, const float cz, const float ixx, const float iyy, const float izz);
  217. virtual float GetMass();
  218. virtual int GetViewRange();
  219. virtual void SetViewRange(const int range,const bool recursive);
  220. virtual bool BuildShape(const bool dynamic,const bool recursive);
  221. virtual std::string GetScript();
  222. virtual bool SetScript(const std::string& path,const bool start,const unsigned long long fileid);
  223. virtual void AddForce(const float x, const float y, const float z,const bool global);
  224. virtual void AddForce(const Vec3& force,const bool global);
  225. virtual void AddTorque(const Vec3& torque,const bool global);
  226. virtual void AddTorque(const float x, const float y, const float z,const bool global);
  227. virtual Vec3 GetVelocity(const bool global);
  228. virtual Vec3 GetPointVelocity(const Vec3& point);
  229. virtual Vec3 GetPointVelocity(const float x, const float y, const float z);
  230. virtual Vec3 GetOmega(const bool global);
  231. virtual void SetVelocity(const Vec3& velocity,const bool global);
  232. virtual void SetOmega(const Vec3& omega,const bool global);
  233. virtual void SetVelocity(const float x, const float y, const float z,const bool global);
  234. virtual void SetOmega(const float x, const float y, const float z,const bool global);
  235. virtual bool Pick(const Vec3& p0, const Vec3& p1, PickInfo& pick,const float radius,const bool closest,const bool recursive,const int collisiontype);
  236. virtual void SetPosition(const dVec3& position,const bool global);
  237. virtual void SetPosition(const Vec3& position,const bool global);
  238. virtual void SetPosition(const float x, const float y, const float z,const bool global);
  239. virtual void Translate(const float x, const float y, const float z,const bool global);
  240. virtual void Translate(const Vec3& translation, const bool global);
  241. virtual void OnCollision(Entity* entity, const Vec3& position, const Vec3& normal, const float speed);
  242. virtual void Turn(const Vec3& rotation,const bool global);
  243. virtual void Turn(const float x, const float y, const float z,const bool global);
  244. virtual std::string Debug();
  245. virtual void SetRotation(const Vec3& rotation,const bool global);
  246. virtual void SetRotation(const Quat& rotation,const bool global);
  247. virtual void SetRotation(const float pitch, const float yaw, const float roll,const bool global);
  248. virtual void SetScale(const float x);
  249. virtual void SetScale(const Vec3& scale);
  250. virtual void SetScale(const float x, const float y, const float z);
  251. virtual Vec3 GetPosition(const bool global);
  252. virtual Vec3 GetRotation(const bool global);
  253. virtual Vec3 GetScale(const bool global);
  254. virtual Mat4 GetMatrix(const bool global);
  255. virtual void SetCollisionType(const int collisiontype,const bool recursive);
  256. virtual int GetCollisionType();
  257. virtual void SetColor(const float r, const float g, const float b);
  258. virtual void SetColor(const float r, const float g, const float b, const float a,const int mode,const bool recursive);
  259. virtual void SetColor(const Vec4& color,const int mode,const bool recursive);
  260. virtual Vec4 GetColor(const int mode);
  261. virtual void SetIntensity(const float intensity,const int mode,const bool recursive);
  262. virtual float GetIntensity(const int mode);
  263. virtual void Move(const Vec3& position,const bool global);
  264. virtual void Move(const float x, const float y, const float z,const bool global);
  265. virtual void AlignToVector(const float x, const float y, const float z,const int axis,const float rate,const float roll);
  266. virtual void AlignToVector(const Vec3& v,const int axis,const float rate,const float roll);
  267. virtual void Point(Entity* entity,const int axis,const float rate,const float roll);
  268. virtual void Point(const Vec3& position, const int axis, const float rate, const float roll);
  269. virtual void Point(const float x, const float y, const float z, const int axis, const float rate, const float roll);
  270. virtual void SetMatrix(const Mat4& mat,const bool global);
  271. virtual AABB GetAABB(const int mode);
  272. virtual void UpdateAABB(const int mode);
  273. virtual void CopyTo(Entity* entity,const int mode);
  274. virtual Entity* Copy(const bool recursive,const bool callstartfunction) = 0;
  275. virtual Entity* Instance(const bool recursive,const bool callstartfunction)=0;
  276. virtual void CopyKids(Entity* parent, const int mode, const bool callstartfunction);
  277. Entity* FindChild(const std::string& name);
  278. virtual int CountKeys();
  279. virtual std::string GetKeyName(const int index);
  280. std::string GetKeyValue(const std::string& name,const std::string& defaultvalue);
  281. void SetKeyValue(const std::string& name,const std::string& value);
  282. void ClearKeys();
  283. virtual void Hide();
  284. virtual void Show();
  285. bool Active();
  286. virtual void SetMaterial(Material* material,const bool recursive);
  287. virtual bool SetMaterial(const std::string& file,const bool recursive);
  288. virtual Material* GetMaterial();
  289. virtual int CountChildren();
  290. virtual Entity* GetChild(const int index);
  291. virtual void SetParent(Entity* parent,const bool global);
  292. virtual bool Hidden();
  293. virtual void SetElasticity(const float elasticity);
  294. virtual float GetElasticity();
  295. virtual void PhysicsSetRotation(const float pitch, const float yaw, const float roll,const float smoothness);
  296. virtual void PhysicsSetRotation(const Vec3& rotation,const float smoothness);
  297. virtual void PhysicsSetRotation(const Quat& q,const float smoothness);
  298. virtual void PhysicsSetPosition(const float x, const float y, const float z,const float smoothness);
  299. virtual void PhysicsSetPosition(const Vec3& position,const float smoothness);
  300. virtual void AddPointForce(const float fx, const float fy, const float fz, const float px, const float py, const float pz,const bool global);
  301. virtual void AddPointForce(const Vec3& force, const Vec3& position,const bool global);
  302. virtual void SetNavigationMode(const bool mode,const bool recursive);
  303. virtual bool GetNavigationMode();
  304. virtual void SetShape(Shape*);
  305. virtual void SetShape(Shape*, const Mat4& mat);
  306. virtual Shape* GetShape();
  307. virtual void SetShadowMode(const int shadowmode,const bool recursive);
  308. virtual int GetShadowMode();
  309. virtual void AddBuoyancyForce(const float nx, const float ny, const float nz, const float d,const float fluidDensity,const float fluidViscosity);
  310. virtual void SetPickBox(const float x0, const float y0, const float z0, const float x1, const float y1, const float z1);
  311. virtual AABB GetPickBox();
  312. static Vec3 CalcAverageOmega(Quat q, Quat QB, const double& dt);
  313. static const int NearViewRange;
  314. static const int MediumViewRange;
  315. static const int FarViewRange;
  316. static const int MaxViewRange;
  317. static const int InfiniteViewRange;
  318. static const int LocalAABB;
  319. static const int GlobalAABB;
  320. static const int RecursiveAABB;
  321. static const int RigidBodyPhysics;
  322. static const int CharacterPhysics;
  323. static const int KinematicPhysics;
  324. static const int SpherePick;
  325. static const int PolygonPick;
  326. static const int BoxPick;
  327. static const int CapsulePick;
  328. };
  329.  
  330. class Event : public Object
  331. {
  332. int id;
  333. Object* source;
  334. int data;
  335. iVec2 position;
  336. iVec2 size;
  337. Object* extra;
  338. static const int WindowClose;
  339. static const int WindowPaint;
  340. static const int WindowSize;
  341. static const int Quit;
  342. static const int MouseMove;
  343. static const int MouseUp;
  344. static const int MouseDown;
  345. static const int KeyUp;
  346. static const int KeyDown;
  347. static const int WindowMove;
  348. static const int MouseWheel;
  349. static const int KeyChar;
  350. static const int TimerTick;
  351. static const int DoubleClick;
  352. static const int MouseLeave;
  353. static const int MouseEnter;
  354. static const int TripleClick;
  355. static const int WidgetDeselect;
  356. static const int WidgetOpen;
  357. static const int WidgetClose;
  358. static const int WidgetAction;
  359. static const int WidgetSelect;
  360. static const int WidgetMenu;
  361. };
  362.  
  363. class EventQueue : public Object
  364. {
  365. static bool Peek();
  366. static Event Wait();
  367. static void Flush();
  368. static void Emit(const int id,Object* source,const int data,const int x,const int y,const int width,const int height,Object* extra);
  369. };
  370.  
  371. class Asset : public Object
  372. {
  373. std::string path;
  374. virtual std::string GetPath();
  375. virtual Asset* Copy()=0;
  376. static const int Unmanaged;
  377. static const int CreateNew;
  378. static const int LoadQuiet;
  379. static const int SkipTextures;
  380. };
  381.  
  382. class Material : public Asset
  383. {
  384. virtual bool SetScript(const std::string& path,const bool start);
  385. virtual void SetFloat(const std::string& name, const float f);
  386. virtual void SetVec2(const std::string& name, const float x, const float y);
  387. virtual void SetVec3(const std::string& name, const float x, const float y, const float z);
  388. virtual void SetVec4(const std::string& name, const float x, const float y, const float z, const float w);
  389. virtual void SetVec2(const std::string& name, const Vec2& v);
  390. virtual void SetVec3(const std::string& name, const Vec3& v);
  391. virtual void SetVec4(const std::string& name, const Vec4& v);
  392. virtual void SetBlendMode(const int mode);
  393. virtual int GetBlendMode();
  394. virtual void SetColor(const Vec4& color,const int mode);
  395. virtual void SetColor(const float r, const float g, const float b);
  396. virtual void SetColor(const float r, const float g, const float b, const float a,const int mode);
  397. virtual Vec4 GetColor(const int mode);
  398. virtual void SetShader(Shader* shader,const int index);
  399. virtual bool SetShader(const std::string& path,const int index);
  400. virtual void SetTexture(Texture* texture,const int index);
  401. virtual bool SetTexture(const std::string& path, const int index);
  402. virtual Texture* GetTexture(const int index);
  403. virtual Shader* GetShader(const int index);
  404. virtual void SetBackFaceCullMode(const bool mode);
  405. virtual bool GetBackFaceCullMode();
  406. virtual void SetSortMode(const bool mode);
  407. virtual void SetLightingMode(const int mode);
  408. virtual int GetLightingMode();
  409. virtual bool GetSortMode();
  410. virtual void SetDepthTestMode(const bool mode);
  411. virtual int GetDepthTestMode();
  412. virtual void SetDepthMaskMode(const bool mode);
  413. virtual bool GetDepthMaskMode();
  414. virtual void SetShadowMode(const bool mode);
  415. virtual bool GetShadowMode();
  416. virtual float GetFloat(const std::string& name);
  417. virtual Vec2 GetVec2(const std::string& name);
  418. virtual Vec3 GetVec3(const std::string& name);
  419. virtual Vec4 GetVec4(const std::string& name);
  420. virtual Mat3 GetMat3(const std::string& name);
  421. virtual Mat4 GetMat4(const std::string& name);
  422. virtual void SetDecalMode(const int rendermode);
  423. virtual int GetDecalMode();
  424. virtual void SetRoughness(const float roughness);
  425. virtual float GetRoughness();
  426. static Material* Create();
  427. static Material* Load(const std::string& path,const int flags,const unsigned long long fileid);
  428. };
  429.  
  430. class PickInfo : public Object
  431. {
  432. Vec3 position;
  433. Vec3 normal;
  434. Entity* entity;
  435. Surface* surface;
  436. Face* face;
  437. int triangle;
  438. Mat4 mat;
  439. iVec2 index;
  440. PickInfo();
  441. };
  442.  
  443. class Shader : public Asset
  444. {
  445. virtual std::string GetLog();
  446. virtual void Enable()=0;
  447. virtual void Disable()=0;
  448. virtual bool Compile(const int sourceid,const bool validate) = 0;
  449. virtual bool Link(const bool validate) = 0;
  450. virtual bool SetInt(const std::string& name, const int i)=0;
  451. virtual bool SetFloat(const std::string& name, const float f)=0;
  452. virtual bool SetFloat(const std::string& name, const float* f, const int count)=0;
  453. virtual bool SetVec2(const std::string& name, const Vec2& v)=0;
  454. virtual bool SetVec2(const std::string& name, const float* v, const int count)=0;
  455. virtual bool SetVec3(const std::string& name, const Vec3& v)=0;
  456. virtual bool SetVec3(const std::string& name, const float* v, const int count)=0;
  457. virtual bool SetVec4(const std::string& name, const Vec4& v)=0;
  458. virtual bool SetVec4(const std::string& name, const float* v, const int count)=0;
  459. virtual bool SetMat3(const std::string& name, const Mat3& f)=0;
  460. virtual bool SetMat4(const std::string& name, const Mat4& f)=0;
  461. virtual int GetInt(const std::string& name) = 0;
  462. virtual float GetFloat(const std::string& name)=0;
  463. virtual Vec2 GetVec2(const std::string& name)=0;
  464. virtual Vec3 GetVec3(const std::string& name)=0;
  465. virtual Vec4 GetVec4(const std::string& name)=0;
  466. virtual Mat3 GetMat3(const std::string& name)=0;
  467. virtual Mat4 GetMat4(const std::string& name)=0;
  468. virtual bool Validate();
  469. static Shader* Create();
  470. static Shader* Load(const std::string& path,const int flags,const std::string& precode,const unsigned long long fileid);
  471. };
  472.  
  473. class Leaderboard : public Object
  474. {
  475. int CountEntries();
  476. std::string GetEntryUserID_ @ GetEntryUserID(const int index);
  477. int GetEntryScore(const int index);
  478. bool SetScore(const int score,const bool forceupdate);
  479. static const int Ascending;
  480. static const int Descending;
  481. static const int Numeric;
  482. static const int Time;
  483. };
  484.  
  485. class Steamworks
  486. {
  487. static Leaderboard* GetLeaderboard(std::string name,const int type,const int sortmode,const int entries);
  488. static bool Initialize();
  489. static bool GetInitialized();
  490. static void Shutdown();
  491. static std::string GetUserID_ @ GetUserID();
  492. static std::string GetUserName(const std::string& userid);
  493. static void SetAchievement(const std::string& name);
  494. static void IncrementAchievementProgress(const std::string& name);
  495. static void SetStat(const std::string& name, const int value,const bool usemax);
  496. static Texture* GetUserAvatar(const std::string& userid);
  497. static bool IsControllerEnabled(const int controllerIndex);
  498. static int GetMaxSteamControllers();
  499. static void TriggerHapticPulse(const int controllerIndex, const int pad, const int duration);
  500. static bool ButtonDown(const int controllerIndex, unsigned int button);
  501. static bool ButtonHit(const int controllerIndex, unsigned int button);
  502. static Vec2 GetPadPosition(const int controllerindex, const int padindex);
  503. };
  504.  
  505. class Surface : public Object
  506. {
  507. virtual AABB GetAABB();
  508. virtual Material* GetMaterial();
  509. virtual void Add(Surface* surface, const Mat4& mat);
  510. virtual Vec3 GetVertexBinormal(const int index);
  511. virtual Vec3 GetVertexTangent(const int index);
  512. virtual bool Pick(const Vec3& p0, const Vec3& p1, PickInfo& pick,const Vec3& radius,bool closest);
  513. virtual void Update(const bool force);
  514. virtual void FlipNormals();
  515. virtual void SetMaterial(Material* material);
  516. virtual int CountVertices();
  517. virtual void UpdateAABB();
  518. virtual int CountTriangles();
  519. virtual int CountIndices();
  520. virtual void UpdateNormals(const bool soft,const float distancetolerance,const float angulartolerance);
  521. virtual int AddTriangle(const int a, const int b, const int c);
  522. virtual int AddIndice(const int i);
  523. virtual int AddVertex(const float x,const float y,const float z,const float nx,const float ny,const float nz,const float u0,const float v0,const float u1,const float v1,const float r,const float g,const float b,const float a);
  524. virtual int AddVertex(const Vec3& position,const Vec3& normal,const Vec2& texcoords0,const Vec2& texcoords1,const Vec4& color);
  525. virtual void SetVertexPosition(const int v, const float x,const float y,const float z);
  526. virtual void SetVertexNormal(const int v, const float x,const float y,const float z);
  527. virtual void SetVertexNormal(const int v, const Vec3& normal);
  528. virtual void SetVertexPosition(const int v, const Vec3& position);
  529. virtual void SetVertexTexCoords(const int v, const Vec2& texcoords,const int texcoordset);
  530. virtual void SetVertexColor(const int v, const Vec4& color);
  531. virtual void SetVertexTangent(const int v, const float x,const float y,const float z);
  532. virtual void SetVertexBinormal(const int v, const float x,const float y,const float z);
  533. virtual void SetVertexTexCoords(const int v, const float x,const float y,const int texcoordset);
  534. virtual void SetVertexColor(const int v, const float r,const float g,const float b,const float a);
  535. virtual Vec3 GetVertexPosition(const int v);
  536. virtual Vec3 GetVertexNormal(const int v);
  537. virtual Vec2 GetVertexTexCoords(const int v,const int texcoordset);
  538. virtual Vec4 GetVertexColor(const int v);
  539. virtual bool UpdateTangentsAndBinormals();
  540. virtual int GetTriangleVertex(const int t, const int c);
  541. virtual Vec3 GetTriangleNormal(const int t);
  542. virtual int GetIndiceVertex(const int i);
  543. virtual Surface* Extract(const AABB& aabb);
  544. static Surface* Create();
  545. static Surface* Plane(const int xsegs,const int zsegs);
  546. };
  547.  
  548. class Transform
  549. {
  550. static Vec3 Point(const Vec3& point, Entity* src, Entity* dst);
  551. static dVec3 Point(const dVec3& point, Entity* src, Entity* dst);
  552. static Vec3 Vector(const Vec3& vector, Entity* src, Entity* dst);
  553. static Vec3 Normal(const Vec3& normal, Entity* src, Entity* dst);
  554. static Vec3 Rotation(const Vec3& rotation, Entity* src, Entity* dst);
  555. static Quat Rotation(const Quat& rotation, Entity* src, Entity* dst);
  556. static Leadwerks::Plane Plane(const Leadwerks::Plane& plane, Entity* src, Entity* dst);
  557. static Leadwerks::Plane Plane(const float x, const float y, const float z, const float w, Entity* src, Entity* dst);
  558. static Vec3 Point(const float x, const float y, const float z, Entity* src, Entity* dst);
  559. static Vec3 Vector(const float x, const float y, const float z, Entity* src, Entity* dst);
  560. static Vec3 Normal(const float x, const float y, const float z, Entity* src, Entity* dst);
  561. static Vec3 Rotation(const float x, const float y, const float z, Entity* src, Entity* dst);
  562. static Vec3 Point(const Vec3& point, const Mat4& src, const Mat4& dst);
  563. static Vec3 Vector(const Vec3& vector, const Mat4& src, const Mat4& dst);
  564. static Vec3 Normal(const Vec3& normal, const Mat4& src, const Mat4& dst);
  565. static Vec3 Rotation(const Vec3& rotation, const Mat4& src, const Mat4& dst);
  566. static Quat Rotation(const Quat& rotation, const Mat4& src, const Mat4& dst);
  567. static Leadwerks::Plane Plane(const Leadwerks::Plane& plane, const Mat4& src, const Mat4& dst);
  568. static Leadwerks::Plane Plane(const float x, const float y, const float z, const float w, const Mat4& src, const Mat4& dst);
  569. static Vec3 Point(const float x, const float y, const float z, const Mat4& src, const Mat4& dst);
  570. static Vec3 Vector(const float x, const float y, const float z, const Mat4& src, const Mat4& dst);
  571. static Vec3 Normal(const float x, const float y, const float z, const Mat4& src, const Mat4& dst);
  572. static Vec3 Rotation(const float x, const float y, const float z, const Mat4& src, const Mat4& dst);
  573. static Leadwerks::AABB AABB(const Leadwerks::AABB& aabb, Entity* src, Entity* dst, const bool exact);
  574. static Leadwerks::AABB AABB(const Leadwerks::AABB& aabb, Mat4& src, Mat4& dst, const bool exact);
  575. };
  576.  
  577. class Vehicle : public Object
  578. {
  579. virtual int AddTire(float x, float y, float z, float mass, float radius, float width, bool steering,float suspensionDamper,float suspensionSpring,float suspensionLength,float lateralStiffness,float longitudinalStiffness,float aligningMOmentTrail,float friction) = 0;
  580. virtual void AddAxle(int lefttire, int righttire) = 0;
  581. virtual void SetGearRatio(std::vector<float> forwardGearRatio, float reverseGearRatio) = 0;
  582. virtual void SetTorqueCurve(float topSpeedKPH, float idleTorquePoundPerFoot, float idleRPM, float peakTorquePoundPerFoot, float peakTorqueRPM, float peakHorsePower, float peakHorsePowerRPM, float redLineTorquePoundPerFoot, float redLineRPM) = 0;
  583. virtual bool Build() = 0;
  584. virtual void SetAcceleration(float engineGasPedal) = 0;
  585. virtual void SetSteering(float steering) = 0;
  586. virtual void SetBrakes(float brakes) = 0;
  587. virtual void SetHandBrakes(float brakes) = 0;
  588. virtual void SetGear(int gear) = 0;
  589. virtual void SetTransmissionMode(bool automatic) = 0;
  590. virtual void SetEngineRunning(const bool running) = 0;
  591. virtual Mat4 GetTireMatrix(int tireindex)=0;
  592. virtual int GetGear() = 0;
  593. virtual float GetRPM() = 0;
  594. virtual float GetSpeed() = 0;
  595. virtual int CountTires()=0;
  596. virtual float GetTireLateralForce(const int index)=0;
  597. virtual bool GetEngineRunning()=0;
  598. virtual float GetTireSlip(const int index) = 0;
  599. static Vehicle* Create(Entity* entity);
  600. };
  601.  
  602. class Widget : public Object
  603. {
  604. int selection;
  605. std::string text;
  606. virtual Font* GetFont();
  607. virtual bool SetFont(const std::string& fontname, const float size);
  608. virtual void Lock();
  609. virtual void Unlock();
  610. virtual void Expand();
  611. virtual void Collapse();
  612. virtual bool Collapsed();
  613. virtual void SetState(int state);
  614. virtual int GetState();
  615. virtual void SetImage(Image* image);
  616. virtual Image* GetImage();
  617. virtual void Enable();
  618. virtual void Disable();
  619. virtual bool Disabled();
  620. virtual void SetItemImage(const int index, Image* image);
  621. virtual Image* GetItemImage(const int index);
  622. virtual void SetRange(const int x, const int y);
  623. virtual void SetSliderValue(const int value);
  624. virtual int GetSliderValue();
  625. virtual iVec2 GetRange();
  626. virtual void Hide();
  627. virtual void Show();
  628. virtual void SetStyle(const int style);
  629. virtual int GetSelectedItem();
  630. virtual void SelectItem(const int index);
  631. virtual int AddItem(const std::string& text,Image* image);
  632. virtual std::string GetItemText(const int index);
  633. virtual int CountChildren();
  634. virtual Widget* GetChild(const int index);
  635. virtual int CountItems();
  636. virtual void ClearItems();
  637. virtual void SetProgress(const float progress);
  638. virtual float GetProgress();
  639. virtual void SetRedrawFrequency(const int frequency);
  640. virtual int GetStyle();
  641. virtual void SetText(const std::string& text);
  642. virtual void AddText(std::string text);
  643. virtual std::string GetText();
  644. virtual void Redraw();
  645. virtual void SetPadding(const int left, const int top, const int right, const int bottom);
  646. virtual iVec4 GetPadding();
  647. virtual Widget* GetParent();
  648. virtual iVec2 GetPosition(const bool global);
  649. virtual iVec2 GetSize(const bool global);
  650. virtual iVec2 GetClientSize(const bool global);
  651. virtual GUI* GetGUI();
  652. virtual void SetAlignment(const int left, const int right, const int top, const int bottom);
  653. virtual void SetLayout(int x, int y, int width, int height);
  654. virtual bool SetScript(const std::string& path,const bool start);
  655. virtual bool Hidden();
  656. std::string GetScript();
  657. static const int SelectedState;
  658. static Widget* Create(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  659. static Widget* Button(const std::string& name, int x, const int y, const int width, const int height, Widget* parent,const int style);
  660. static Widget* ProgressBar(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  661. static Widget* Label(const std::string& name, const int x, const int y, const int width, const int height, Widget* parent,const int style);
  662. static Widget* Panel(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  663. static Widget* TreeView(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  664. static Widget* TreeViewNode(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  665. static Widget* Slider(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  666. static Widget* ComboBox(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  667. static Widget* TextField(const std::string& name, const int x, const int y, const int width, const int height, Widget* parent,const int style);
  668. static Widget* TextArea(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  669. static Widget* Tabber(const int x, const int y, const int width, const int height, Widget* parent,const int style);
  670. };
  671.  
  672. class Image : public Object
  673. {
  674. iVec2 GetSize();
  675. };
  676.  
  677. class Window : public Object
  678. {
  679. virtual void SetMinSize(const int x, const int y);
  680. void HideMouse();
  681. void ShowMouse();
  682. void FlushKeys();
  683. void FlushMouse();
  684. void SetDoubleBufferMode(const bool mode);
  685. bool GetDoubleBufferMode();
  686. bool KeyHit(const int keycode);
  687. bool KeyDown(const int keycode);
  688. bool MouseHit(const int button);
  689. bool MouseDown(const int button);
  690. void SetMousePosition(const float x, const float y);
  691. void SetMousePosition(const float x, const float y, const float z);
  692. Vec3 GetMousePosition();
  693. static void WaitEvent();
  694. void SetLayout(int x, int y, int width, int height);
  695. int GetX();
  696. int GetY();
  697. int GetWidth();
  698. int GetHeight();
  699. int GetClientWidth();
  700. int GetClientHeight();
  701. virtual void Minimize();
  702. virtual void Maximize();
  703. virtual void Restore();
  704. virtual bool Minimized();
  705. virtual bool Maximized();
  706. virtual bool Closed();
  707. static Window* Create(const std::string& title,const int x,const int y,const int width,const int height,const int style,Window* parent);
  708. static Window* GetCurrent();
  709. virtual bool GetHidden();
  710. virtual void Show();
  711. virtual void Hide();
  712. static const int Titlebar;
  713. static const int Resizable;
  714. static const int Hidden;
  715. static const int Tool;
  716. static const int AcceptFiles;
  717. static const int Embedded;
  718. static const int FullScreen;
  719. static const int Fullscreen;
  720. static const int Center;
  721. static const int Tip;
  722. static const int DoubleBuffered;
  723. };
  724.  
  725. class World : public Object
  726. {
  727. virtual void SetWaterQuality(const int quality);
  728. virtual int GetWaterQuality();
  729. virtual void SetPhysicsDetail(const int mode);
  730. virtual bool BuildNavMesh(float maxedgelength,float maxedgeerror);
  731. virtual void SetGravity(const float x, const float y, const float z);
  732. virtual Vec3 GetGravity();
  733. virtual int CountEntities(const int objectid);
  734. virtual Entity* GetEntity(const int n,const int objectid);
  735. virtual bool Pick(const Vec3& p0, const Vec3& p1, PickInfo& pick,const float radius,const bool closest,const int collisiontype);
  736. virtual bool Pick(const float x0, const float y0, const float z0, const float x1, const float y1, const float z1, PickInfo& pick,const float radius,const bool closest,const int collisiontype);
  737. virtual void Update();
  738. virtual void Render();
  739. virtual void SetAmbientLight(const float l);
  740. virtual void SetAmbientLight(const float r, const float g, const float b);
  741. virtual void SetAmbientLight(const float r, const float g, const float b, const float a);
  742. virtual void ForEachVisibleEntityDo(Camera* camera, const std::string& funcname,Object* extra);
  743. virtual void ForEachEntityInAABBDo(const AABB& aabb, const std::string& funcname,Object* extra);
  744. virtual void Clear(const bool force);
  745. virtual Entity* FindEntity(const std::string& name);
  746. virtual void SetLightQuality(const int quality);
  747. virtual int GetLightQuality();
  748. virtual void SetTessellationQuality(const float tessfactor);
  749. virtual float GetTessellationQuality();
  750. virtual bool SerializePhysics(const std::string& filename);
  751. virtual int GetMaxPhysicsThreads();
  752. virtual int GetPhysicsThreadCount();
  753. virtual void SetPhysicsThreadCount(const int threads);
  754. virtual void SetWaterMode(const bool mode);
  755. virtual void SetWaterHeight(const float height);
  756. virtual void SetWaterColor(const float r, const float g, const float b,const float a);
  757. virtual bool GetWaterMode();
  758. virtual float GetWaterHeight();
  759. virtual Vec4 GetWaterColor();
  760. virtual void SetTerrainQuality(const int quality);
  761. static World* Create();
  762. static void SetCurrent(World* world);
  763. static World* GetCurrent();
  764. virtual void SetSkybox(Asset* skybox);
  765. bool SetSkybox(const std::string& filename);
  766. Asset* GetSkybox();
  767. };
  768.  
  769. class Camera : public Entity
  770. {
  771. Buffer* gbuffer;
  772. static Camera* Create(Entity* parent);
  773. virtual bool GetMotionBlurMode();
  774. virtual void SetMultisampleMode(const int mode);
  775. virtual int GetMultisampleMode();
  776. virtual void SetHDRMode(const bool mode);
  777. virtual bool GetHDRMode();
  778. virtual void ClearPostEffects();
  779. virtual int AddPostEffect(const std::string& path,const unsigned long long fileid);
  780. virtual void RemovePostEffect(const int index);
  781. virtual float GetZoom();
  782. virtual void SetRenderMode(const int rendermode);
  783. virtual int GetRenderMode();
  784. virtual int GetLightingMode();
  785. virtual void SetDebugEntityBoxesMode(const bool mode);
  786. virtual bool GetDebugEntityBoxesMode();
  787. virtual void SetDebugPhysicsMode(const bool mode);
  788. virtual void SetDebugNavigationMode(const bool mode);
  789. virtual bool GetDebugNavigationMode();
  790. virtual bool GetDebugPhysicsMode();
  791. virtual bool CullsEntity(Entity* entity);
  792. virtual bool Pick(const int x, const int y, PickInfo& pick,const float radius,const bool closest,const int collisiontype);
  793. virtual Vec3 Project(const Vec3& p);
  794. virtual Vec3 UnProject(const Vec3& p);
  795. virtual void SetLightingMode(const int mode);
  796. virtual void SetTextureMode(const int mode);
  797. virtual void SetColorMode(const int mode);
  798. virtual void SetDrawMode(const int colordrawmode);
  799. virtual Vec2 GetRange();
  800. virtual void SetRange(const float nearrange, const float farrange);
  801. virtual void SetProjectionMode(const int projectionmode);
  802. virtual int GetProjectionMode();
  803. virtual void SetClearColor(const float r, const float g, const float b,const float a);
  804. virtual void SetClearColor(const Vec4& color);
  805. virtual Vec4 GetClearColor();
  806. virtual void SetZoom(const float zoom);
  807. virtual void SetFOV(const float fov);
  808. virtual float GetFOV();
  809. virtual void SetSkybox(Asset* skybox);
  810. virtual bool SetSkybox(const std::string& path,const unsigned long long fileid);
  811. virtual Asset* GetSkybox();
  812. virtual bool SetRenderTarget(Texture* texture,const int faceindex);
  813. virtual Texture* GetRenderTarget();
  814. static const int Orthographic;
  815. static const int Perspective;
  816. };
  817.  
  818. class Emitter : public Entity
  819. {
  820. virtual void SetEmissionShape(const int ShapeId);
  821. virtual int GetEmissionShape();
  822. virtual void SetEmissionVolume(const float x,const float y,const float z);
  823. virtual Vec3 GetEmissionVolume();
  824. virtual void SetVelocity(const float x, const float y, const float z,const int index,const bool global);
  825. virtual Vec3 GetVelocity(const int index);
  826. virtual void SetAcceleration(const float x, const float y, const float z);
  827. virtual Vec3 GetAcceleration();
  828. virtual void SetRotationSpeed(const float speed);
  829. virtual float GetRotationSpeed();
  830. virtual void SetRotationByVelocityMode(const bool setByVel);
  831. virtual bool GetRotationByVelocityMode();
  832. virtual void SetReleaseQuantity(const int quantity);
  833. virtual int GetReleaseQuantity();
  834. virtual void SetInterval(const float interval);
  835. virtual float GetInterval();
  836. virtual void SetLoopMode(const bool Loop,const bool autorelease);
  837. virtual bool GetLoopMode();
  838. virtual void SetParticleCount(const int ParticleCount);
  839. virtual int GetParticleCount();
  840. virtual void SetDuration(const int Duration);
  841. virtual int GetDuration();
  842. virtual void Pause();
  843. virtual void Play();
  844. virtual bool GetPaused();
  845. virtual void SetMaxScale(const float x);
  846. virtual void SetMaxScale(const float x, const float y);
  847. virtual Vec2 GetMaxScale();
  848. virtual int CountAlphaControlPoints();
  849. virtual int CountScaleControlPoints();
  850. virtual void ClearAlphaControlPoints();
  851. virtual void ClearScaleControlPoints();
  852. virtual void AddAlphaControlPoint(const float time, const float alpha);
  853. virtual float GetAlphaAtTime(const float time);
  854. virtual void AddScaleControlPoint(const float time, const float scale);
  855. virtual float GetScaleAtTime(const float time);
  856. virtual void SetFacingDirection(const float x, const float y, const float z);
  857. virtual Vec3 GetFacingDirection();
  858. virtual void SetAnimationRows(const int Rows);
  859. virtual int GetAnimationRows();
  860. virtual void SetAnimationColumns(const int Columns);
  861. virtual int GetAnimationColumns();
  862. virtual void SetAnimationCycles(const int Cycles);
  863. virtual int GetAnimationCycles();
  864. virtual void Reset();
  865. virtual void Update();
  866. virtual void SetEmissionVolume(const Vec3& Volume);
  867. virtual void SetParticleColor(const float r, const float g, const float b, const float a, const int mode);
  868. virtual Vec4 GetParticleColor(const int mode);
  869. virtual void SetViewMode(const int viewmode);
  870. virtual int GetViewMode();
  871. static Emitter* Create(const int particlecount,Entity* parent);
  872. };
  873.  
  874. class Joint : public Entity
  875. {
  876. virtual void SetLimits(const float limits0, const float limits1)=0;
  877. virtual Vec2 GetLimits();
  878. virtual void SetAngle(const float angle)=0;
  879. virtual float GetAngle()=0;
  880. virtual void SetMotorSpeed(const float speed)=0;
  881. virtual float GetMotorSpeed()=0;
  882. virtual void EnableLimits()=0;
  883. virtual void EnableMotor()=0;
  884. virtual void DisableLimits()=0;
  885. virtual void DisableMotor()=0;
  886. virtual bool LimitsEnabled()=0;
  887. virtual bool MotorEnabled()=0;
  888. virtual void SetTargetMatrix(Mat4& mat,const float blend);
  889. static Joint* Kinematic(const float posx, const float posy, const float posz, Entity* child);
  890. static Joint* Hinge(const float posx, const float posy, const float posz, const float pinx, const float piny, const float pinz, Entity* child,Entity* parent);
  891. static Joint* Ball(const float posx, const float posy, const float posz, Entity* child,Entity* parent);
  892. static Joint* Slider(const float posx, const float posy, const float posz, const float pinx, const float piny, const float pinz, Entity* child,Entity* parent);
  893. static Joint* Fixed(const float posx, const float posy, const float posz, Entity* child,Entity* parent);
  894. };
  895.  
  896. class Model : public Entity
  897. {
  898. bool collapsedfrombrushes;
  899. Surface* AddSurface();
  900. virtual int CountSurfaces();
  901. virtual Surface* GetSurface(const int n);
  902. virtual void SetMaterial(Material* material,const bool recursive);
  903. virtual void UpdateAABB(const int mode);
  904. virtual Surface* FindSurface(Material* material,Texture* lightmap);
  905. static Model* Box(Entity* parent);
  906. static Model* Box(const float width,Entity* parent);
  907. static Model* Box(const float width, const float height, const float depth,Entity* parent);
  908. static Model* Sphere(const int segments,Entity* parent);
  909. static Model* Cone(const int segments,Entity* parent);
  910. static Model* Cylinder(const int sides,Entity* parent);
  911. static Model* Create(Entity* parent);
  912. static Model* Load(const std::string& path,const int flags,const unsigned long long fileid);
  913. };
  914.  
  915. class Sprite : public Model
  916. {
  917. virtual void SetSize(const float width, const float height);
  918. virtual Vec2 GetSize();
  919. virtual float GetAngle();
  920. virtual void SetAngle(const float angle);
  921. virtual void SetViewMode(const int mode);
  922. virtual int GetViewMode();
  923. static Sprite* Create(Entity* parent);
  924. };
  925.  
  926. class LensFlare : public Sprite
  927. {
  928. virtual void SetRange(const float range);
  929. virtual float GetRange();
  930. virtual void SetRadius(const float nearradius, const float farradius);
  931. virtual Vec2 GetRadius();
  932. virtual void SetRotationSpeed(const float rotationspeed);
  933. virtual float GetRotationSpeed();
  934. virtual void CopyTo(Entity* entity,const int mode);
  935. virtual Entity* Copy(const bool recursive,const bool callstartfunction);
  936. virtual Entity* Instance(const bool recursive,const bool callstartfunction);
  937. static LensFlare* Create(Entity* parent);
  938. };
  939.  
  940. class Light : public Camera
  941. {
  942. virtual void SetVolumetricStrength(const float strength);
  943. virtual float GetVolumetricStrength();
  944. virtual void SetRange(const float range);
  945. virtual void SetRange(const float nearrange, const float farrange);
  946. virtual void SetShadowMode(const int mode,const bool recursive);
  947. virtual void SetShadowOffset(const float muloffset, const float addoffset,const int index);
  948. virtual Vec2 GetShadowOffset(const int index);
  949. static int Dynamic;
  950. static int Static;
  951. static int Buffered;
  952. };
  953.  
  954. class Terrain : public Entity
  955. {
  956. virtual Texture* GetVegetationMap();
  957. virtual int CountVegetationLayers();
  958. virtual VegetationLayer* GetVegetationLayer(const int index);
  959. virtual void SetTextureStageDistance(float distance, float multiplier);
  960. virtual void SetLayerAlpha(const int slot, const int x, const int y, const bool alpha);
  961. virtual bool GetLayerAlpha(const int slot, const int x, const int y);
  962. virtual int GetLayerAtPoint(const int x, const int y);
  963. virtual void SetLayerAlpha(const int slot, const float alpha);
  964. virtual void SetElevation(const int x, const int y, const float elevation, const bool update);
  965. virtual float GetElevation(const float x, const float z);
  966. virtual Vec3 GetNormal(const float x, const float z);
  967. virtual float GetSlope(const float x, const float z);
  968. virtual void SetLayerAlpha(const int slot, const int x, const int y, const float a0, const float a1, const float a2, const float a3);
  969. virtual void SetLayerAlpha(const int slot, const int x, const int y, const float alpha);
  970. virtual void SetLayerAlpha(const int slot, const float a0, const float a1, const float a2, const float a3);
  971. virtual void SetLayerTexture(const int slot, Texture* texture,const int index);
  972. virtual void SetLayerScale(const int slot, const float x, const float y);
  973. virtual Vec2 GetLayerScale(const int slot);
  974. virtual Texture* GetLayerTexture(const int slot,const int index);
  975. virtual bool LoadHeightmap(const std::string& path,const float scale,const int bpp);
  976. virtual void SetHeight(const int x, const int y, const float height,const bool update);
  977. virtual float GetHeight(const int x, const int y);
  978. virtual void UpdateNormals();
  979. virtual void SetLayerSlopeConstraints(const int slot, const float minslope, const float maxslope, const float transition);
  980. virtual void SetLayerHeightConstraints(const int slot, const float minheight, const float maxheight, const float transition);
  981. virtual Vec3 GetLayerSlopeConstraints(const int slot);
  982. virtual Vec3 GetLayerHeightConstraints(const int slot);
  983. virtual VegetationLayer* AddVegetationLayer();
  984. virtual void SetLayerDisplacement(const int slot, const float displacement);
  985. virtual float GetLayerDisplacement(const int slot);
  986. virtual void SetLayerTextureLookupMode(const int slot, const int mode);
  987. virtual int GetLayerTextureLookupMode(const int slot);
  988. virtual void SetLayerTextureMappingMode(const int slot, const int mode);
  989. virtual int GetLayerTextureMappingMode(const int slot);
  990. static Terrain* Create(const int size,const bool editable);
  991. };
  992.  
  993. class VegetationLayer : public Entity
  994. {
  995. virtual Vec3 GetInstanceScale(const int x, const int z);
  996. virtual bool Pick(const Vec3& p0, const Vec3& p1, PickInfo& pick,const float radius,const bool closest,const bool recursive,const int collisiontype);
  997. virtual void SetSeed(int seed);
  998. virtual int GetSeed();
  999. virtual Vec4 GetInstanceColor(const int x, const int z);
  1000. virtual bool BuildShape(const bool dynamic,const bool recursive);
  1001. virtual void SetScale(const float minscale, const float maxscale);
  1002. virtual void SetColor(const float minbrightness, const float maxbrightness);
  1003. virtual void SetBillboardDistance(const float distance);
  1004. virtual float GetBillboardDistance();
  1005. virtual void SetViewDistance(const float range);
  1006. virtual float GetViewDistance();
  1007. virtual void SetSlopeConstraints(const float minslope, const float maxslope);
  1008. virtual void SetHeightConstraints(const float minheight, const float maxheight);
  1009. virtual Vec2 GetSlopeConstraints();
  1010. virtual Vec2 GetHeightConstraints();
  1011. virtual Mat4 GetInstanceMatrix(const int x, const int z);
  1012. virtual void SetModel(Model* model);
  1013. virtual bool SetModel(const std::string& path);
  1014. virtual void SetDensity(const float density);
  1015. virtual float GetDensity();
  1016. virtual void SetBillboardMode(const bool mode);
  1017. virtual bool GetBillboardMode();
  1018. virtual void SetVisibility(const int x, const int z, const bool visible);
  1019. virtual void SetVisibility(const float x, const float z, const bool visible);
  1020. virtual bool GetVisibility(const int x, const int z);
  1021. virtual bool GetVisibility(const float x, const float z);
  1022. virtual iVec2 GetInstancePoint(const float x, const float z);
  1023. static VegetationLayer* Create();
  1024. };
  1025.  
  1026. class SpotLight : public Light
  1027. {
  1028. virtual void SetConeAngles(const float outer, const float inner);
  1029. virtual Vec2 GetConeAngles();
  1030. static SpotLight* Create(Entity* parent);
  1031. };
  1032.  
  1033. class AABB : public Object
  1034. {
  1035. Vec3 min;
  1036. Vec3 max;
  1037. Vec3 center;
  1038. Vec3 size;
  1039. float radius;
  1040. AABB();
  1041. AABB( const Vec3& min, const Vec3& max);
  1042. AABB( const float x0, const float y0, const float z0, const float x1, const float y1, const float z1);
  1043. virtual void Update();
  1044. virtual bool IntersectsPoint(const Vec3& p,const float radius);
  1045. virtual bool IntersectsAABB(const AABB& aabb,const float overlap);
  1046. virtual int IntersectsPlane(Plane plane);
  1047. virtual bool IntersectsLine(const Vec3& p0, const Vec3& p1,const float radius);
  1048. virtual float DistanceToPoint(const Vec3& point,const float radius);
  1049. };
  1050.  
  1051. class dMat4 : public Object
  1052. {
  1053. dVec4 i;
  1054. dVec4 j;
  1055. dVec4 k;
  1056. dVec4 t;
  1057. dMat4();
  1058. dMat4(const dVec3& i, const dVec3& j, const dVec3& k, const dVec3& t);
  1059. dMat4(const dVec4& i,const dVec4& j,const dVec4& k,const dVec4& t);
  1060. dMat4(const string & s);
  1061. dMat4(double ix,double iy,double iz,double iw,double jx,double jy,double jz,double jw,double kx,double ky,double kz,double kw,double tx,double ty,double tz,double tw);
  1062. dVec3 operator*(const dVec3& v);
  1063. dMat4 operator*(const dMat4& m);
  1064. bool operator!=(const dMat4& m);
  1065. bool operator==(const dMat4& m);
  1066. dVec4& operator[](const unsigned int n);
  1067. virtual dMat4 Transpose();
  1068. virtual dMat4 Inverse();
  1069. virtual dVec3 GetTranslation();
  1070. virtual dVec3 GetRotation();
  1071. virtual dVec3 GetScale();
  1072. virtual Quat GetQuaternion();
  1073. virtual dMat4 Normalize();
  1074. };
  1075.  
  1076. class dVec3 : public Object
  1077. {
  1078. double x,y,z,r,g,b;
  1079. dVec3();
  1080. dVec3(const double& x);
  1081. dVec3(const double& x, const double& y);
  1082. dVec3(const double& x, const double& y, const double& z);
  1083. dVec3(const Vec3& v);
  1084. dVec3(const std::string& s);
  1085. bool operator>(const dVec3 v);
  1086. bool operator!=(const dVec3& v);
  1087. bool operator==(const dVec3& v);
  1088. double& operator[](unsigned int n);
  1089. dVec3 operator-(const dVec3& v);
  1090. dVec3 operator-(const Vec3& v);
  1091. dVec3 operator+(const dVec3& v);
  1092. dVec3 operator+(const Vec3& v);
  1093. dVec3 operator*(const dVec3& v);
  1094. dVec3 operator*(const double f);
  1095. dVec3 operator/(const dVec3& v);
  1096. dVec3 operator/(const double f);
  1097. virtual float Length();
  1098. virtual dVec3 Normalize();
  1099. virtual dVec3 Inverse();
  1100. virtual double DistanceToPoint(const dVec3& p);
  1101. virtual double DistanceToPoint(const Vec3& p);
  1102. virtual dVec3 Cross(const dVec3& v);
  1103. virtual float Dot(const dVec3& v);
  1104. };
  1105.  
  1106. class dVec4 : public Object
  1107. {
  1108. double x,y,z,w,r,g,b,a;
  1109. dVec4();
  1110. dVec4(const double x);
  1111. dVec4(const double x, const double y);
  1112. dVec4(const double x, const double y, const double z);
  1113. dVec4(const double x, const double y, const double z, const double w);
  1114. dVec4(const std::string& s);
  1115. dVec4(const Vec3& v, const double w);
  1116. virtual Vec2 xy();
  1117. virtual Vec3 xyz();
  1118. dVec4 operator+(const dVec4& v);
  1119. bool operator!=(const dVec4& v);
  1120. bool operator==(const dVec4& v);
  1121. dVec4 operator*(const double f);
  1122. double& operator[](const unsigned int n);
  1123. };
  1124.  
  1125. class Mat3 : public Object
  1126. {
  1127. Mat3();
  1128. Mat3(const Vec3& i,const Vec3& j,const Vec3& k);
  1129. Mat3(const Mat4& mat);
  1130. Mat3 operator*(const Mat3& m);
  1131. Vec3& operator[](unsigned int n);
  1132. Mat3 Transpose();
  1133. virtual Mat3 Inverse();
  1134. };
  1135.  
  1136. class Mat4 : public Object
  1137. {
  1138. Vec4 i;
  1139. Vec4 j;
  1140. Vec4 k;
  1141. Vec4 t;
  1142. Mat4();
  1143. Mat4(const Vec3& i,const Vec3& j,const Vec3& k,const Vec3& t);
  1144. Mat4(const Vec4& i,const Vec4& j,const Vec4& k,const Vec4& t);
  1145. Mat4(const string & s);
  1146. Mat4(float ix,float iy,float iz,float iw,float jx,float jy,float jz,float jw,float kx,float ky,float kz,float kw,float tx,float ty,float tz,float tw);
  1147. Mat4(const dMat4& m);
  1148. Vec3 operator*(const Vec3& v);
  1149. Mat4 operator*(const Mat4& m);
  1150. bool operator!=(const Mat4& m);
  1151. bool operator==(const Mat4& m);
  1152. Vec4& operator[](const unsigned int n);
  1153. virtual Mat4 Transpose();
  1154. virtual Mat4 Inverse();
  1155. virtual Vec3 GetTranslation();
  1156. virtual Vec3 GetRotation();
  1157. virtual Vec3 GetScale();
  1158. virtual Quat GetQuaternion();
  1159. virtual Mat4 Normalize();
  1160. virtual void SetRotation(const Quat& q);
  1161. };
  1162.  
  1163. class Plane : public Object
  1164. {
  1165. Plane();
  1166. Plane(const float x, const float y, const float z, const float d);
  1167. Plane(Vec3& point, const Vec3& normal);
  1168. Plane Inverse();
  1169. float DistanceToPoint(const Vec3& p);
  1170. float DistanceToPoint(const float x, const float y, const float z);
  1171. void Invert();
  1172. void Normalize();
  1173. bool IntersectsLine(const Vec3& p0,const Vec3& p1, Vec3& result,const bool twosided);
  1174. bool IntersectsPlanes(Plane& p0, Plane& p1, Vec3& result);
  1175. };
  1176.  
  1177. class Quat : public Object
  1178. {
  1179. Quat();
  1180. Quat(float x, float y, float z, float w);
  1181. Quat(const Vec3& euler);
  1182. Quat(const float angle, const Vec3& axis);
  1183. Quat(const string& s);
  1184. string ToString();
  1185. Quat Inverse();
  1186. Quat Multiply(const Quat& q);
  1187. Quat Normalize();
  1188. Quat Slerp(const Quat& q, float a);
  1189. };
  1190.  
  1191. class Vec2 : public Object
  1192. {
  1193. float x,y,r,g;
  1194. Vec2();
  1195. Vec2(const float x);
  1196. Vec2(const float x,const float y);
  1197. Vec2(const std::string& s);
  1198. Vec2 Normalize();
  1199. std::string ToString() const;
  1200. float Length();
  1201. float DistanceToPoint(const Vec2& v);
  1202. };
  1203.  
  1204. class Vec3 : public Object
  1205. {
  1206. float x,y,z,r,g,b;
  1207. Vec3();
  1208. Vec3(const float x);
  1209. Vec3(const float x, const float y);
  1210. Vec3(const float x, const float y, const float z);
  1211. Vec3(const Quat& q);
  1212. Vec3(const dVec3& v);
  1213. Vec3(const std::string& s);
  1214. bool operator!=(const Vec3& v);
  1215. bool operator==(const Vec3& v);
  1216. float& operator[](unsigned int n);
  1217. Vec3 operator-(const Vec3& v);
  1218. Vec3 operator+(const Vec3& v);
  1219. dVec3 operator+(const dVec3& v);
  1220. Vec3 operator*(const Vec3& v);
  1221. Vec3 operator*(const float f);
  1222. Vec3 operator/(const Vec3& v);
  1223. Vec3 operator/(const float f);
  1224. Vec3 operator+(const float f);
  1225. Vec3 operator-(const float f);
  1226. virtual Vec3 Reflect(Vec3& normal);
  1227. virtual Vec2 xy();
  1228. virtual Vec2 zy();
  1229. virtual Vec2 xz();
  1230. virtual float Length();
  1231. virtual Vec3 Normalize();
  1232. virtual Vec3 Inverse();
  1233. virtual float DistanceToPoint(const Vec3& p);
  1234. virtual Vec3 Cross(const Vec3& v);
  1235. virtual float Dot(const Vec3& v);
  1236. };
  1237.  
  1238. class Vec4 : public Object
  1239. {
  1240. float x,y,z,w,r,g,b,a,width,height;
  1241. Vec4();
  1242. Vec4(const float x);
  1243. Vec4(const float x, const float y);
  1244. Vec4(const float x, const float y, const float z);
  1245. Vec4(const float x, const float y, const float z, const float w);
  1246. Vec4(const std::string& s);
  1247. Vec4(const Vec3& v, const float w);
  1248. Vec4(const dVec4& v);
  1249. virtual Vec2 xy();
  1250. virtual Vec3 xyz();
  1251. virtual std::string ToString() const;
  1252. virtual Vec4 Normalize();
  1253. Vec4 operator+(const Vec4& v);
  1254. bool operator!=(const Vec4& v);
  1255. bool operator==(const Vec4& v);
  1256. Vec4 operator*(const float f);
  1257. float& operator[](const unsigned int n);
  1258. };
  1259.  
  1260. class Debug
  1261. {
  1262. static void Assert(const bool condition,const std::string& errortext);
  1263. static void Error(const std::string& error);
  1264. static void Stop(const std::string& err);
  1265. };
  1266.  
  1267. class FileSystem
  1268. {
  1269. static std::string ExtractDir(const std::string& path);
  1270. static std::string ExtractExt(const std::string& path);
  1271. static std::string StripDir(const std::string& path);
  1272. static std::string StripExt(const std::string& path);
  1273. static std::string StripAll(const std::string& path);
  1274. static std::string RealPath(const std::string& path);
  1275. static std::string CasedPath(const std::string& path);
  1276. static std::string GetDir();
  1277. static bool SetDir(const std::string& path);
  1278. static Stream* ReadFile(const std::string& path);
  1279. static int GetFileSize(const std::string& path);
  1280. static int GetFileType(const std::string& path,const unsigned long long fileid);
  1281. static unsigned int GetFileTime(const std::string& path);
  1282. static std::string GetAppDataPath();
  1283. static const int File;
  1284. static const int Dir;
  1285. static Stream* WriteFile(const std::string& path);
  1286. static Stream* OpenFile(const std::string& path);
  1287. static bool CreateFile(const std::string& path);
  1288. static bool DeleteFile(const std::string& path);
  1289. static bool CopyFile(const std::string& src, const std::string& dst);
  1290. static bool RenameFile(const std::string& src, const std::string& dst);
  1291. static bool DeleteDir(const std::string& path,const bool recursive);
  1292. static bool CreateDir(const std::string& path,const bool recursive);
  1293. static bool RenameDir(const std::string& src, const std::string& dst);
  1294. static bool CopyDir(const std::string& src, const std::string& dst);
  1295. };
  1296.  
  1297. class String
  1298. {
  1299. static int Find(const std::string& s, const std::string& token);
  1300. static char Asc(const std::string& s);
  1301. static std::string Chr(const unsigned char c);
  1302. static std::string Right(const std::string& s, const int length);
  1303. static std::string Left(const std::string& s, const int length);
  1304. static std::string Mid(const std::string& s, const int pos, const int length);
  1305. static int Length(const std::string& s);
  1306. static std::string Replace(const std::string& s, const std::string& searchstring, const std::string& replacestring);
  1307. static std::string Lower(const std::string& s);
  1308. static std::string Upper(const std::string& s);
  1309. static std::string XOR(const std::string& s, const std::string& key);
  1310. static std::string LTrim(std::string &ss);
  1311. static std::string RTrim(std::string &ss);
  1312. static std::string Trim(std::string &ss);
  1313. static int Int(const std::string& s);
  1314. static float Float(const std::string& s);
  1315. };
  1316.  
  1317. class Time
  1318. {
  1319. static void Update(const int framePerSecond);
  1320. static long GetCurrent();
  1321. static float UPS(const int framesPerSecond);
  1322. static long Millisecs();
  1323. static void Resume();
  1324. static void Pause();
  1325. static float GetSpeed();
  1326. static void Delay(const int milliseconds);
  1327. static void Step(const int framesPerSecond);
  1328. };
  1329.  
  1330. class Analytics
  1331. {
  1332. static bool Enable();
  1333. static bool Disable();
  1334. static void SetKeys(const std::string& gamekey, const std::string& secretkey);
  1335. static bool SendGenericEvent(const std::string& eventid);
  1336. static bool SendGenericEvent(const std::string& eventid, const float value);
  1337. static bool SendErrorEvent(const std::string& severity, const std::string& message);
  1338. static bool SendProgressEvent(const std::string& status, const std::string& levelname);
  1339. static bool SendProgressEvent(const std::string& status, const std::string& levelname, const int score);
  1340. static bool SendProgressEvent(const std::string& status, const std::string& levelname, const int score, const int attempt_num);
  1341. static bool SendResourceEvent(const std::string& flowType, const std::string& currency, const std::string& itemType, const std::string& itemid, const float amount);
  1342. static bool SendBusinessEvent(const std::string& itemType, const std::string& itemid, const int amount, const std::string& currency, const unsigned long long transaction_num,const std::string& cart_type,const std::string& receipt_info);
  1343. };
  1344.  
  1345. class Collision
  1346. {
  1347. static void SetResponse(const int collisionTypeA, const int collisionTypeB, const int response);
  1348. static const int None;
  1349. static const int Collide;
  1350. static const int Prop;
  1351. static const int Scene;
  1352. static const int Character;
  1353. static const int Trigger;
  1354. static const int Debris;
  1355. static const int Projectile;
  1356. static const int LineOfSight;
  1357. static const int Fluid;
  1358. };
  1359.  
  1360. class Color
  1361. {
  1362. static const int Diffuse;
  1363. static const int Specular;
  1364. };
  1365.  
  1366. class Component : public Object
  1367. {
  1368. virtual void CallOutputs(const std::string& outputname);
  1369. };
  1370.  
  1371. class Driver : public Object
  1372. {
  1373. virtual std::string GetName();
  1374. };
  1375.  
  1376. class Face : public Object
  1377. {
  1378. virtual void SetMaterial(Material* material);
  1379. virtual Material* GetMaterial();
  1380. };
  1381.  
  1382. class Font : public Asset
  1383. {
  1384. virtual void DrawText(const std::string& text, const float x, const float y,const float kerning);
  1385. virtual int GetTextWidth(const std::string& text);
  1386. virtual int GetHeight();
  1387. static const int Pixel;
  1388. static const int Smooth;
  1389. static const int LCD;
  1390. static const int English;
  1391. static Font* Load(const std::string& path, const int size,const int style,const int family,const int flags,const unsigned long long fileid);
  1392. static Font* Load(Stream* stream, const int size,const int style,const int family,const int flags);
  1393. };
  1394.  
  1395. class GUI : public Object
  1396. {
  1397. virtual Image* LoadImage(const std::string& path);
  1398. virtual int GetLineHeight();
  1399. virtual int GetFontHeight();
  1400. virtual void SetFocus(Widget* widget);
  1401. virtual Widget* GetFocus();
  1402. virtual void ResetCursorBlink();
  1403. virtual void SetGradientMode(const bool mode);
  1404. virtual void SetScale(const float scale);
  1405. virtual float GetScale();
  1406. virtual void Redraw(const int x, const int y, const int width, const int height);
  1407. virtual Widget* GetHoveredWidget();
  1408. virtual void Hide();
  1409. virtual void Show();
  1410. virtual bool Hidden();
  1411. virtual Widget* GetBase();
  1412. virtual void SetClipRegion(const int x, const int y, const int width, const int height);
  1413. virtual void ProcessEvent(const int eventid, const int data, const int x, const int y, const int width, const int height);
  1414. virtual Widget* GetWidgetAtPoint(const int x, const int y);
  1415. virtual void DrawImage(Image* image, const int x, const int y);
  1416. virtual void DrawImage(Image* image, const int x, const int y, const int width, const int height);
  1417. virtual void DrawCircle(int x, int y, int diameter, int fill);
  1418. virtual void DrawPolygon(const std::vector<Vec2>& vertices, const int style);
  1419. virtual void DrawPolygon(const float x0, const float y0, const float x1, const float y1, const float x2, const float y2, const int style);
  1420. virtual void DrawPolygon(const float x0, const float y0, const float x1, const float y1, const float x2, const float y2, const float x3, const float y3, const int style);
  1421. virtual void DrawPolygon(const float x0, const float y0, const float x1, const float y1, const float x2, const float y2, const float x3, const float y3, const float x4, const float y4, const int style);
  1422. virtual int GetTextWidth(const std::string& text);
  1423. virtual void SetColor(const float r);
  1424. virtual void SetColor(const float r, const float g, const float b);
  1425. virtual void SetColor(const float r, const float g, const float b, const float a,const int index);
  1426. virtual void DrawRect(const int x, const int y, const int width, const int height,const int fillmode,const int radius);
  1427. virtual void DrawText(std::string& text, const int x, const int y, const int width, const int height,const int style);
  1428. virtual void DrawLine(const int x0, const int y0, const int x1, const int y1);
  1429. static GUI* Create(Window* window);
  1430. static GUI* Create(Texture* texture);
  1431. static GUI* Create(Context* context);
  1432. };
  1433.  
  1434. class Interpreter
  1435. {
  1436. static void Reset();
  1437. static void Pop(const int levels);
  1438. static void PushValue(const int index);
  1439. static void Remove(const int index);
  1440. static int GetStackSize();
  1441. static void PushFloat(const float f);
  1442. static void PushInt(const int i);
  1443. static void SetStackSize(const int size);
  1444. static bool ExecuteString(std::string& source);
  1445. static bool Invoke(const int in, const int out, const int errorfunctionindex);
  1446. static void GetField(const std::string& name,const int index);
  1447. static void SetField(const std::string& name,const int index);
  1448. static void SetTable(const int index);
  1449. static void GetTable(const int index);
  1450. static void GetGlobal(const std::string& s);
  1451. static void PushString(const std::string& s);
  1452. static bool IsString(const int index);
  1453. static std::string ToString(const int index);
  1454. static bool IsNumber(const int index);
  1455. static float ToNumber(const int index);
  1456. static void PushObject(Object* o,const bool takeownership);
  1457. static void PushCObject(Object* o);
  1458. static bool IsObject(const int index);
  1459. static Object* ToObject(const int index);
  1460. static void SetGlobal(const std::string& s);
  1461. static bool IsFunction(const int index);
  1462. static bool IsTable(const int index);
  1463. static bool IsBool(const int index);
  1464. static bool ToBool(const int index);
  1465. static void NewTable();
  1466. static void CollectGarbage();
  1467. static void PushVec2(const Vec2& v);
  1468. static void PushVec3(const Vec3& v);
  1469. static void PushVec4(const Vec4& v);
  1470. static void PushMat3(const Mat3& m);
  1471. static void PushMat4(const Mat4& m);
  1472. static void PushAABB(const AABB& aabb);
  1473. static void PushBool(const bool b);
  1474. static bool ExecuteFile(const std::string& path,const unsigned long long fileid);
  1475. static bool EvaluateFile(const std::string& path);
  1476. static bool EvaluateString(const std::string& path);
  1477. static void PushNull();
  1478. static bool Connect(const std::string& hostname,const int port,const int timeout);
  1479. static bool Disconnect(const int timeout);
  1480. static bool IsConnected();
  1481. static void CheckError();
  1482. };
  1483.  
  1484. class Key
  1485. {
  1486. static const int Alt,BackSpace,CapsLock,ControlKey,Control,Delete,Down,End,Enter,Escape,Home,Insert,Left;
  1487. static const int NumLock,PageDown,PageUp,RControlKey,Right,Shift,Space,Subtract,Tab,Up;
  1488. static const int Tilde,Equals,OpenBracket,CloseBracket,Backslash,Semicolon,Quotes,Comma,Period,Slash,WindowsKey;
  1489. static const int LButton,MButton,RButton,XButton1,XButton2;
  1490. static const int F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12;
  1491. static const int A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z;
  1492. static const int D0, D1, D2, D3, D4, D5, D6, D7, D8, D9;
  1493. static const int NumPad0, NumPad1, NumPad2, NumPad3, NumPad4, NumPad5, NumPad6, NumPad7, NumPad8, NumPad9,NumPadPeriod,NumPadDivide,NumPadMultiply,NumPadSubtract,NumPadAddition;
  1494. };
  1495.  
  1496. class Map
  1497. {
  1498. static const int LoadScripts;
  1499. static bool Load(const std::string& path, const std::string& hookname,Object* extra,const int flags,const unsigned long long fileid);
  1500. static bool Load(const std::string& path,const int flags,const unsigned long long fileid);
  1501. };
  1502.  
  1503. class Mouse
  1504. {
  1505. static const int Left;
  1506. static const int Right;
  1507. static const int Middle;
  1508. static const int Back;
  1509. static const int Forward;
  1510. };
  1511.  
  1512. class Prefab : public Map
  1513. {
  1514. static const int NoStartCall;
  1515. static Entity* Load(const std::string& path,const int flags,const unsigned long long fileid);
  1516. };
  1517.  
  1518. class Shape : public Asset
  1519. {
  1520. static Shape* Box(const float x,const float y,const float z,const float pitch,const float yaw,const float roll,const float width,const float height,const float depth);
  1521. static Shape* Cylinder(const float x,const float y,const float z,const float pitch,const float yaw,const float roll,const float width,const float height,const float depth);
  1522. static Shape* Cone(const float x,const float y,const float z,const float pitch,const float yaw,const float roll,const float width,const float height,const float depth);
  1523. static Shape* Sphere(const float x,const float y,const float z,const float pitch,const float yaw,const float roll,const float width,const float height,const float depth);
  1524. static Shape* ConvexHull(Surface* surf);
  1525. static Shape* Capsule(const float x,const float y,const float z,const float pitch,const float yaw,const float roll,const float width,const float height,const float depth);
  1526. static Shape* PolyMesh(Surface* surface);
  1527. static Shape* ConvexDecomposition(Surface* surface);
  1528. static Shape* Load(const std::string& path,const int flags,const unsigned long long fileid);
  1529. };
  1530.  
  1531. class Sound : public Asset
  1532. {
  1533. virtual float GetLength();
  1534. virtual void Play();
  1535. static const int Mono8;
  1536. static const int Stereo8;
  1537. static const int Mono16;
  1538. static const int Stereo16;
  1539. static const int Mono32;
  1540. static const int Stereo32;
  1541. static Sound* Load(const std::string& path,const int flags,const unsigned long long fileid);
  1542. };
  1543.  
  1544. class Source : public Object
  1545. {
  1546. virtual void SetTime(const float time)=0;
  1547. virtual float GetTime()=0;
  1548. virtual void Play()=0;
  1549. virtual void Cue()=0;
  1550. virtual void Pause()=0;
  1551. virtual void Resume()=0;
  1552. virtual void Stop()=0;
  1553. virtual void SetSound(Sound* sound)=0;
  1554. virtual int GetState()=0;
  1555. virtual void SetVolume(const float volume)=0;
  1556. virtual void SetPitch(const float pitch)=0;
  1557. virtual void SetVelocity(const float velocity)=0;
  1558. virtual void SetRange(const float range)=0;
  1559. virtual void SetLoopMode(const bool loop)=0;
  1560. virtual void SetPosition(const Vec3& position)=0;
  1561. virtual float GetPitch()=0;
  1562. virtual float GetVolume()=0;
  1563. static Source* Create();
  1564. static const int Stopped;
  1565. static const int Playing;
  1566. static const int Paused;
  1567. };
  1568.  
  1569. class HTMLRenderer : public Object
  1570. {
  1571. virtual std::string GetClickedURL();
  1572. virtual void SetMousePosition(const float x, const float y,const float z);
  1573. virtual void SetMouseButton(const bool state,const int button);
  1574. virtual bool NeedsRedraw();
  1575. virtual Texture* GetTexture();
  1576. void Navigate(const std::string& url);
  1577. void GoBack();
  1578. void GoForward();
  1579. void Reload();
  1580. std::string GetURL();
  1581. static HTMLRenderer* Create(const std::string& url, const int width, const int height);
  1582. void SetSize(const int width, const int height);
  1583. };
  1584.  
  1585. class Stream : public Object
  1586. {
  1587. virtual long GetPos();
  1588. virtual void Seek(const int pos);
  1589. virtual long GetSize();
  1590. virtual bool EOF();
  1591. virtual unsigned char ReadUChar();
  1592. virtual int ReadInt();
  1593. virtual short ReadShort();
  1594. virtual unsigned short ReadUShort();
  1595. virtual unsigned int ReadUInt();
  1596. virtual unsigned long long ReadULong();
  1597. virtual int64_t ReadLong();
  1598. virtual float ReadFloat();
  1599. virtual double ReadDouble();
  1600. virtual std::string ReadString(const int maxlength);
  1601. virtual std::string ReadLine();
  1602. virtual int Read(const void* b, const int size);
  1603. virtual int Write(const void* b, const int size);
  1604. virtual void WriteUChar(const unsigned char b);
  1605. virtual void WriteInt(const int n);
  1606. virtual void WriteFloat(const float f);
  1607. virtual void WriteDouble(const double f);
  1608. virtual void WriteString(const std::string& s);
  1609. virtual void WriteLine(const std::string& s);
  1610. virtual void WriteUShort(const unsigned short n);
  1611. };
  1612.  
  1613. class Text
  1614. {
  1615. static const int Left;
  1616. static const int Center;
  1617. static const int Right;
  1618. static const int VCenter;
  1619. static const int Multiline;
  1620. static const int WordWrap;
  1621. static const int Shadow;
  1622. };
  1623.  
  1624. class Texture : public Asset
  1625. {
  1626. static const int Texture2D;
  1627. static const int Cubemap;
  1628. static const int RGBA8;
  1629. static const int RGBA16;
  1630. static const int RGBA32;
  1631. static const int RGBA;
  1632. static const int RGB;
  1633. static const int Depth;
  1634. static const int Alpha;
  1635. static const int Intensity;
  1636. static const int Intensity16;
  1637. static const int Intensity32;
  1638. static const int EditableHeightmap;
  1639. static const int RG;
  1640. static const int Pixel;
  1641. static const int Smooth;
  1642. static const int Diffuse;
  1643. static const int Normal;
  1644. static const int Specular;
  1645. static const int Displacement;
  1646. static const int Reflection;
  1647. static const int Emission;
  1648. static const int Lightmap;
  1649. static const int Ambient;
  1650. static const int Refraction;
  1651. static const int Instant;
  1652. static const int Deferred;
  1653. static const int Managed;
  1654. virtual void GetPixels(const char* buf,const int miplevel,const int framenumber,const int cubeface)=0;
  1655. virtual void SetPixels(const char* buf,const int miplevel,const int framenumber,const int cubeface)=0;
  1656. virtual int CountMipmaps();
  1657. virtual int GetMultisampleMode();
  1658. virtual int GetMipmapSize(const int miplevel);
  1659. virtual int GetWidth(const int miplevel);
  1660. virtual int GetHeight(const int miplevel);
  1661. virtual int GetDepth(const int miplevel);
  1662. virtual void SetFilter(const int filtermode);
  1663. virtual void Bind(const int index)=0;
  1664. static void SetDetail(const int detail);
  1665. static int GetDetail();
  1666. virtual int GetFormat();
  1667. virtual void SetClampMode(const bool x,const bool y,const bool z);
  1668. virtual bool GetClampMode(const int axis);
  1669. static void SetAnisotropy(const float anisotropy);
  1670. static float GetAnisotropy();
  1671. static float GetMaxAnisotropy();
  1672. virtual int GetFilter();
  1673. static void SetTrilinearFilterMode(const bool trilinearfilter);
  1674. static bool GetTrilinearFilterMode();
  1675. virtual void Draw(const int x, const int y,const int width,const int height);
  1676. virtual bool BuildMipmaps()=0;
  1677. static Texture* Create(const int width, const int height,const int format,const int flags,const int frames,const int samples);
  1678. static Texture* Load(const std::string& path,const int flags,const unsigned long long fileid);
  1679. static Texture* CubeMap(const int width, const int height,const int format,const int flags,const int frames,const int samples);
  1680. static void SetLoadingMode(const int mode);
  1681. };
  1682.  
  1683. class VR
  1684. {
  1685. static void HideWarning();
  1686. };
  1687.  
  1688. class WidgetItem : public Object
  1689. {
  1690. };
  1691.  
  1692. class GraphicsDriver : public Driver
  1693. {
  1694. virtual void SetBlendMode(const int mode);
  1695. static GraphicsDriver* GetCurrent();
  1696. static void SetCurrent(GraphicsDriver* graphicsdriver);
  1697. };
  1698.  
  1699. class NetworkDriver : public Driver
  1700. {
  1701. static NetworkDriver* GetCurrent();
  1702. static void SetCurrent(NetworkDriver* driver);
  1703. };
  1704.  
  1705. class PhysicsDriver : public Driver
  1706. {
  1707. static PhysicsDriver* GetCurrent();
  1708. static void SetCurrent(PhysicsDriver* driver);
  1709. };
  1710.  
  1711. class NewtonDynamicsPhysicsDriver : public PhysicsDriver
  1712. {
  1713. static NewtonDynamicsPhysicsDriver* Create();
  1714. };
  1715.  
  1716. class SoundDriver : public Driver
  1717. {
  1718. static SoundDriver* GetCurrent();
  1719. static void SetCurrent(SoundDriver* sounddriver);
  1720. };
  1721.  
  1722. class OpenALSoundDriver : public SoundDriver
  1723. {
  1724. static OpenALSoundDriver* Create();
  1725. };
  1726.  
  1727. class Bone : public Entity
  1728. {
  1729. virtual void SetParent(Entity* parent,const bool global);
  1730. };
  1731.  
  1732. class Brush : public Entity
  1733. {
  1734. virtual Face* GetFace(const int index);
  1735. virtual void Build();
  1736. };
  1737.  
  1738. class Decal : public Entity
  1739. {
  1740. virtual void SetRenderMode(const int objecttype, const bool mode);
  1741. virtual bool GetRenderMode(const int objecttype);
  1742. static Decal* Create(Material* material,Entity* parent);
  1743. };
  1744.  
  1745. class Listener : public Entity
  1746. {
  1747. static Listener* Create(Entity* parent);
  1748. };
  1749.  
  1750. class Pivot : public Entity
  1751. {
  1752. static Pivot* Create(Entity* parent);
  1753. };
  1754.  
  1755. class Probe : public Camera
  1756. {
  1757. static Probe* Create(Entity* parent);
  1758. };
  1759.  
  1760. class DirectionalLight : public Light
  1761. {
  1762. float shadowstagerange[4];
  1763. static DirectionalLight* Create(Entity* parent);
  1764. };
  1765.  
  1766. class PointLight : public Light
  1767. {
  1768. static PointLight* Create(Entity* parent);
  1769. };
  1770.  
  1771. class iVec2 : public Object
  1772. {
  1773. float x,y,r,g,width,height;
  1774. iVec2();
  1775. iVec2(const int x, const int y);
  1776. bool operator!=(const iVec2& v);
  1777. bool operator==(const iVec2& v);
  1778. };
  1779.  
  1780. class iVec4
  1781. {
  1782. float x,y,z,w,r,g,b,a,width,height;
  1783. };
  1784.  
  1785. class Math
  1786. {
  1787. static std::string Hex(const long long i);
  1788. static double Sin(const double& a);
  1789. static double Cos(const double& a);
  1790. static double Tan(const double& a);
  1791. static float ASin(const float a);
  1792. static float ACos(const float a);
  1793. static float ATan(const float a);
  1794. static float ATan2(const float y, const float x);
  1795. static float Degrees(const float a);
  1796. static float Radians(const float a);
  1797. static float Min(const float n0, const float n1);
  1798. static float Max(const float n0, const float n1);
  1799. static float Abs(const float f);
  1800. static float Lerp(const float start, const float stop, const float amount);
  1801. static float Log2(const float num);
  1802. static float DeltaAngle(float angle0, float angle1);
  1803. static float IncAngle(const float angle0, const float angle1, const float increment);
  1804. static int Pow2(const int f);
  1805. static float Round(const float val);
  1806. static float Sgn(const float f);
  1807. static float Random(const float max);
  1808. static float Random(const float min, const float max);
  1809. static float Clamp(const float a, const float min, const float max);
  1810. static float Inc(const float newvalue, float oldvalue, const float increments);
  1811. static float Curve(const float target, const float current, const float divisions);
  1812. static float CurveAngle(float target, float current, const float divisions);
  1813. static double Mod(const double num, const double div);
  1814. static void SeedRandom(const int seed);
  1815. };
  1816.  
  1817. bool import(const std::string& path);
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement