-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVariant.h
More file actions
99 lines (79 loc) · 2 KB
/
Copy pathVariant.h
File metadata and controls
99 lines (79 loc) · 2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
//
// Variant.h
// Tech1
//
// Created by Justin Hust on 12/15/13.
// Copyright (c) 2013 __MyCompanyName__. All rights reserved.
//
#ifndef Tech1_Variant_h
#define Tech1_Variant_h
#include <iostream>
#include "Vector.h"
enum DataType {
Data_None = 0,
Data_Boolean,
Data_Integer,
Data_Float,
Data_String,
Data_Vec3
};
// ---------------------------------------------------
class Variant {
private:
// DATA
DataType _dt;
bool _bVal;
int _iVal;
float _fVal;
std::string _sVal;
Vec3 _vecVal;
public:
// CREATORS
Variant(void);
Variant(bool b);
Variant(int i);
Variant(float f);
Variant(const char *s);
Variant(const std::string &s);
Variant(const Vec3 &v);
Variant(const Variant &v);
// MANIPULATORS
void clear(void);
Variant & operator = (const Variant &v);
Variant & operator = (bool b);
Variant & operator = (int i);
Variant & operator = (float f);
Variant & operator = (const char *s);
Variant & operator = (const std::string &s);
Variant & operator = (const Vec3 &v);
void operator ++ (void);
void operator -- (void);
void operator += (const Variant &v);
void operator -= (const Variant &v);
void operator *= (const Variant &v);
void operator /= (const Variant &v);
// ACCESSORS
bool operator == (const Variant &v);
bool operator != (const Variant &v);
bool isBoolean(void) const;
bool isNumeric(void) const;
bool isInteger(void) const;
bool isFloat(void) const;
bool isString(void) const;
bool isVec3(void) const;
DataType getType(void) const;
float toFloat(void) const;
bool getBoolean(void) const;
int getInteger(void) const;
float getFloat(void) const;
std::string getString(void) const;
Vec3 getVec3(void) const;
float x(void) const;
float y(void) const;
float z(void) const;
// DELEGATION
// TO VEC3
float mag(void) const;
void normalize(void);
};
#endif