source: cpp/frams/vm/classes/3dobject.h @ 825

Last change on this file since 825 was 825, checked in by Maciej Komosinski, 2 years ago

Simplified XYZ.toString() and made Orient.toString() use our official number-formatting function

  • Property svn:eol-style set to native
File size: 2.1 KB
Line 
1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
2// Copyright (C) 1999-2018  Maciej Komosinski and Szymon Ulatowski.
3// See LICENSE.txt for details.
4
5#ifndef _3DOBJECT_H_
6#define _3DOBJECT_H_
7
8#include <frams/util/3d.h>
9#include <frams/util/extvalue.h>
10
11class Pt3D_Ext : public DestrBase
12{
13public:
14        Pt3D p;
15
16        Pt3D_Ext(double x, double y, double z) :p(x, y, z) {}
17        Pt3D_Ext() :p(0, 0, 0) {}
18        Pt3D_Ext(const Pt3D &i) :p(i) {}
19#define STATRICKCLASS Pt3D_Ext
20        PARAMPROCDEF(p_new);
21        PARAMPROCDEF(p_newFromVector);
22        PARAMPROCDEF(p_clone);
23        PARAMGETDEF(length);
24        PARAMPROCDEF(p_addvec);
25        PARAMPROCDEF(p_subvec);
26        PARAMPROCDEF(p_scale);
27        PARAMPROCDEF(p_rotate);
28        PARAMPROCDEF(p_revrotate);
29        PARAMPROCDEF(p_normalize);
30        PARAMGETDEF(toString);
31        PARAMGETDEF(toVector);
32        PARAMPROCDEF(p_set);
33        PARAMPROCDEF(p_set3);
34        PARAMPROCDEF(p_get);
35#undef STATRICKCLASS
36        SString toString() const;
37        static ParamInterface* getInterface();
38        static ExtObject makeStaticObject(Pt3D* p);
39        static ExtObject makeDynamicObject(Pt3D_Ext* p);
40        static ExtObject makeDynamicObject(const Pt3D& p);
41        static Pt3D_Ext* fromObject(const ExtValue& v, bool warn = true);
42        static Param& getStaticParam();
43        static ParamEntry* getStaticParamtab();
44};
45
46class Orient_Ext : public DestrBase
47{
48public:
49        Orient o;
50
51        Orient_Ext() :o(Orient_1) {}
52        Orient_Ext(const Orient& other) :o(other) {}
53#define STATRICKCLASS Orient_Ext
54        PARAMPROCDEF(p_new);
55        PARAMPROCDEF(p_newFromVector);
56        PARAMPROCDEF(p_clone);
57        PARAMGETDEF(toString);
58        PARAMGETDEF(toVector);
59        PARAMGETDEF(x);
60        PARAMGETDEF(y);
61        PARAMGETDEF(z);
62        PARAMPROCDEF(p_rotate3);
63        PARAMPROCDEF(p_rotate);
64        PARAMPROCDEF(p_revrotate);
65        PARAMPROCDEF(p_lookat);
66        PARAMPROCDEF(p_normalize);
67        PARAMPROCDEF(p_between2);
68        PARAMPROCDEF(p_betweenOV);
69        PARAMPROCDEF(p_set);
70        PARAMPROCDEF(p_reset);
71        PARAMPROCDEF(p_localToWorld);
72        PARAMPROCDEF(p_worldToLocal);
73        PARAMGETDEF(angles);
74#undef STATRICKCLASS
75
76        static ParamInterface* getInterface();
77        static ExtObject makeStaticObject(Orient* p);
78        static ExtObject makeDynamicObject(Orient_Ext* p);
79        static Orient_Ext* fromObject(const ExtValue& v);
80        static Param& getStaticParam();
81        static ParamEntry* getStaticParamtab();
82};
83
84#endif
Note: See TracBrowser for help on using the repository browser.