leocad/common/project.h

93 lines
1.8 KiB
C
Raw Normal View History

2011-09-07 21:06:51 +00:00
#ifndef _PROJECT_H_
#define _PROJECT_H_
#include "object.h"
2013-08-15 23:43:18 +00:00
#include "lc_array.h"
#include "lc_application.h"
2013-08-09 04:57:18 +00:00
#define LC_SCENE_FOG 0x004 // Enable fog
#define LC_SCENE_BG 0x010 // Draw bg image
#define LC_SCENE_BG_TILE 0x040 // Tile bg image
#define LC_SCENE_GRADIENT 0x100 // Draw gradient
#define LC_HTML_SINGLEPAGE 0x01
#define LC_HTML_INDEX 0x02
#define LC_HTML_IMAGES 0x04
#define LC_HTML_LISTEND 0x08
#define LC_HTML_LISTSTEP 0x10
#define LC_HTML_HIGHLIGHT 0x20
//#define LC_HTML_HTMLEXT 0x40
//#define LC_HTML_LISTID 0x80
2012-10-18 18:57:21 +00:00
enum LC_MOUSE_TRACK
2011-09-07 21:06:51 +00:00
{
LC_TRACK_NONE,
LC_TRACK_LEFT,
LC_TRACK_RIGHT
2012-10-18 18:57:21 +00:00
};
2011-09-07 21:06:51 +00:00
class PieceInfo;
class View;
class Image;
class Project
2011-09-07 21:06:51 +00:00
{
public:
Project();
~Project();
2014-12-09 23:56:29 +00:00
const lcArray<lcModel*>& GetModels() const
{
return mModels;
}
lcModel* GetActiveModel() const
{
return mActiveModel;
}
2014-12-12 23:42:09 +00:00
bool IsModified() const;
2014-12-04 01:47:28 +00:00
QString GetTitle() const;
2014-12-12 23:42:09 +00:00
2014-12-04 01:47:28 +00:00
QString GetFileName() const
{
return mFileName;
}
2014-12-12 23:42:09 +00:00
void SetActiveModel(int ModelIndex);
bool IsModelNameValid(const QString& Name) const;
void CreateNewModel();
void ShowModelListDialog();
2014-12-04 01:47:28 +00:00
bool Load(const QString& FileName);
bool Save(const QString& FileName);
2014-12-23 17:02:23 +00:00
void Merge(Project* Other);
2014-12-04 01:47:28 +00:00
2015-01-12 05:02:50 +00:00
void SaveImage();
2014-12-30 16:30:12 +00:00
void Export3DStudio();
void ExportBrickLink();
void ExportCSV();
2015-01-12 05:02:50 +00:00
void ExportHTML();
2014-12-30 16:30:12 +00:00
void ExportPOVRay();
void ExportWavefront();
protected:
2014-12-30 16:30:12 +00:00
void GetModelParts(lcArray<lcModelPartsEntry>& ModelParts);
2015-01-12 05:02:50 +00:00
void CreateHTMLPieceList(QTextStream& Stream, lcModel* Model, lcStep Step, bool Images, const QString& ImageExtension);
2014-12-30 16:30:12 +00:00
bool mModified;
QString mFileName;
2014-12-04 01:47:28 +00:00
lcArray<lcModel*> mModels;
lcModel* mActiveModel;
Q_DECLARE_TR_FUNCTIONS(Project);
2011-09-07 21:06:51 +00:00
};
inline lcModel* lcGetActiveModel()
{
return lcGetActiveProject()->GetActiveModel();
}
2011-09-07 21:06:51 +00:00
#endif // _PROJECT_H_