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

Last change on this file since 875 was 825, checked in by Maciej Komosinski, 6 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
RevLine 
[286]1// This file is a part of Framsticks SDK.  http://www.framsticks.com/
[825]2// Copyright (C) 1999-2018  Maciej Komosinski and Szymon Ulatowski.
[286]3// See LICENSE.txt for details.
[121]4
[109]5#ifndef _3DOBJECT_H_
6#define _3DOBJECT_H_
7
8#include <frams/util/3d.h>
9#include <frams/util/extvalue.h>
10
[343]11class Pt3D_Ext : public DestrBase
[109]12{
[343]13public:
14        Pt3D p;
[109]15
[343]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) {}
[109]19#define STATRICKCLASS Pt3D_Ext
[343]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);
[109]35#undef STATRICKCLASS
[825]36        SString toString() const;
[343]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();
[109]44};
45
[343]46class Orient_Ext : public DestrBase
[109]47{
[343]48public:
49        Orient o;
[109]50
[343]51        Orient_Ext() :o(Orient_1) {}
52        Orient_Ext(const Orient& other) :o(other) {}
[109]53#define STATRICKCLASS Orient_Ext
[343]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);
[109]74#undef STATRICKCLASS
75
[343]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();
[109]82};
83
84#endif
Note: See TracBrowser for help on using the repository browser.