summaryrefslogtreecommitdiff
path: root/common/minifig.h
diff options
context:
space:
mode:
authorLeo2010-07-11 22:19:43 +0000
committerLeo2010-07-11 22:19:43 +0000
commit742ef27f8be974985399e5ddaf155862d7da5ad2 (patch)
tree204acc87f2bd1a4aac8ee943aec85207aa23e65a /common/minifig.h
parent66b3f4b8d9f1b606eb4a6e893db9f293cbeb95a3 (diff)
Updated Minifig Wizard to read settings from ini file.
git-svn-id: http://svn.leocad.org/branches/leocad-0.75@954 c7d43263-9d01-0410-8a33-9dba5d9f93d6
Diffstat (limited to 'common/minifig.h')
-rw-r--r--common/minifig.h102
1 files changed, 52 insertions, 50 deletions
diff --git a/common/minifig.h b/common/minifig.h
index 270751f..9e8a3de 100644
--- a/common/minifig.h
+++ b/common/minifig.h
@@ -2,70 +2,72 @@
#define _MINIFIG_H_
#include "glwindow.h"
+#include "file.h"
+#include "algebra.h"
+#include "array.h"
class PieceInfo;
-typedef enum
+typedef enum LC_MFW_TYPES
{
- LC_MFW_HAT,
- LC_MFW_HEAD,
- LC_MFW_TORSO,
- LC_MFW_NECK,
- LC_MFW_LEFT_ARM,
- LC_MFW_RIGHT_ARM,
- LC_MFW_LEFT_HAND,
- LC_MFW_RIGHT_HAND,
- LC_MFW_LEFT_TOOL,
- LC_MFW_RIGHT_TOOL,
- LC_MFW_HIPS,
- LC_MFW_LEFT_LEG,
- LC_MFW_RIGHT_LEG,
- LC_MFW_LEFT_SHOE,
- LC_MFW_RIGHT_SHOE,
- LC_MFW_NUMITEMS
-} LC_MFW_TYPES;
+ LC_MFW_HAT,
+ LC_MFW_HEAD,
+ LC_MFW_TORSO,
+ LC_MFW_NECK,
+ LC_MFW_LEFT_ARM,
+ LC_MFW_RIGHT_ARM,
+ LC_MFW_LEFT_HAND,
+ LC_MFW_RIGHT_HAND,
+ LC_MFW_LEFT_TOOL,
+ LC_MFW_RIGHT_TOOL,
+ LC_MFW_HIPS,
+ LC_MFW_LEFT_LEG,
+ LC_MFW_RIGHT_LEG,
+ LC_MFW_LEFT_SHOE,
+ LC_MFW_RIGHT_SHOE,
+ LC_MFW_NUMITEMS
+};
-typedef struct
+struct lcMinifigPieceInfo
{
- char name[9];
- char description[65];
- int type;
- float x, y, z;
- float rx, ry, rz;
-} LC_MFW_PIECEINFO;
+ char Description[64];
+ PieceInfo* Info;
+ Matrix44 Offset;
+};
class MinifigWizard : public GLWindow
{
- public:
- MinifigWizard (GLWindow *share);
- ~MinifigWizard ();
+public:
+ MinifigWizard (GLWindow *share);
+ ~MinifigWizard ();
+
+ void OnDraw ();
+
+ void Calculate();
+ int GetSelectionIndex(int Type) const;
+ void SetSelectionIndex(int Type, int Index);
+ void SetColor(int Type, int Color);
+ void SetAngle(int Type, float Angle);
- void OnDraw ();
+ void GetMinifigNames (char ***names, int *count);
+ void SaveMinifig (const char* name);
+ bool LoadMinifig (const char* name);
+ void DeleteMinifig (const char* name);
- void Calculate ();
- void GetDescriptions (int type, char ***names, int *count);
- void GetSelections (char **names);
- void ChangePiece (int type, const char *description);
- void ChangeColor (int type, int color);
- void ChangeAngle (int type, float angle);
+ void ParseSettings(File& Settings);
- void GetMinifigNames (char ***names, int *count);
- void SaveMinifig (const char* name);
- bool LoadMinifig (const char* name);
- void DeleteMinifig (const char* name);
+ ObjArray<lcMinifigPieceInfo> mSettings[LC_MFW_NUMITEMS];
- public:
- PieceInfo* m_Info[LC_MFW_NUMITEMS];
- int m_Colors[LC_MFW_NUMITEMS];
- float m_Angles[LC_MFW_NUMITEMS];
- float m_Position[LC_MFW_NUMITEMS][3];
- float m_Rotation[LC_MFW_NUMITEMS][4];
+ PieceInfo* m_Info[LC_MFW_NUMITEMS];
+ int m_Colors[LC_MFW_NUMITEMS];
+ float m_Angles[LC_MFW_NUMITEMS];
+ Matrix44 m_Matrices[LC_MFW_NUMITEMS];
- protected:
- // saved minifig templates
- int m_MinifigCount;
- char **m_MinifigNames;
- char **m_MinifigTemplates;
+protected:
+ // saved minifig templates
+ int m_MinifigCount;
+ char **m_MinifigNames;
+ char **m_MinifigTemplates;
};
#endif // _MINIFIG_H_