|
//############################################################################
// Author: Sharjith Nair
// Email: sharjith_ssn@hotmail.com
// Program: OpenGL, C++ MFC StereoLithography Data File Viewer Application
// Important Notice:
// This Idea and the Application is Copyright(c) Sharjith Nair 2002, 2003.
// You can freely use it as long as you credit me for it.
// No guarantee/warranty is given on this app and I will not be responsible
// for any damage to you, your property or any other person from using it.
// USE IT ON YOUR OWN RISK.
// Thankyou
// Sharjith Nair.
//#############################################################################
// GLObject.h: interface for the CGLObject class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GLOBJECT_H__D32E3D3F_1394_41B3_ADD0_59A1B08F9FA4__INCLUDED_)
#define AFX_GLOBJECT_H__D32E3D3F_1394_41B3_ADD0_59A1B08F9FA4__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "GLTypeEnums.h"
#include "GLMaterials.h"
#include "BoundingBox.h"
#include "Geometry.h"
class CGLTrihedron;
class CGLObject
{
friend class CGLTrihedron;
public:
CGLObject();
virtual ~CGLObject();
virtual CGLObject* Copy() const = 0;
virtual void DefineDisplay() = 0;
virtual void Display(const GLDisplayMode& = GLWIREFRAME) = 0;
virtual void Hilight(const GLDisplayMode&) = 0;
int GetCount() const { return glObjCount; }
unsigned long int GetObjID() const { return glObjID; }
void SetDisplayMode(const GLDisplayMode& );
GLDisplayMode GetDisplayMode() const;
void SetMaterial(const GLMaterial&);
GLMaterial GetMaterial() const;
virtual void SetColor(const GLubyte&, const GLubyte&, const GLubyte&);
virtual void GetColor(GLubyte*) const;
void SetBoundingBox(const CBoundingBox&);
CBoundingBox GetBoundingBox() const;
virtual GLObjectType GLObjType() const;
bool IsOfType(const GLObjectType&) const;
virtual CGeometry* Geometry() const { return 0; }
protected:
void ApplyMaterial(const GLMaterial&);
private:
void AddMaterial(float*);
protected:
GLObjectType glObjType;
static int glObjCount;
unsigned long int glObjID;
GLDisplayMode displayMode;
GLMaterial itsMaterial;
GLfloat ambiMat[4];
GLfloat diffMat[4];
GLfloat specMat[4];
GLfloat emisMat[4];
GLfloat coloMat[4];
GLfloat shine;
GLfloat Matl[13];
GLubyte itsRed;
GLubyte itsGreen;
GLubyte itsBlue;
GLubyte itsShadeRed;
GLubyte itsShadeGreen;
GLubyte itsShadeBlue;
GLuint list;
GLuint listNum;
CBoundingBox itsBox;
};
#endif // !defined(AFX_GLOBJECT_H__D32E3D3F_1394_41B3_ADD0_59A1B08F9FA4__INCLUDED_)
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
Sharjith is a Mechanical Engineer with strong passion for Automobiles, Aircrafts and Software development.