|
//############################################################################
// 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.
//#############################################################################
// Geometry.h: interface for the CGeometry class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_GEOMETRY_H__8716A236_EA76_458F_8315_FEA9C6A0DFD2__INCLUDED_)
#define AFX_GEOMETRY_H__8716A236_EA76_458F_8315_FEA9C6A0DFD2__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <iostream.h>
enum GeometryType { CPOINT, CPLANE, CONEAXIS, CAXISSYSTEM, CCURVE, CSURFACE };
class CPoint3D;
class CVector3D;
class COneAxis;
class CAxisSystem;
class CLine3D;
class CCircle3D;
class CEllipse3D;
class CHyperbola3D;
class CParabola3D;
class CBezierCurve;
class CBSplineCurve;
class CPlane;
class CCone;
class CCylinder;
class CSphere;
class CTorus;
class CExtrudedSurface;
class CRevolvedSurface;
class CRuledSurface;
class CPipeSurface;
class CGeometry
{
public:
CGeometry();
virtual ~CGeometry();
virtual void Translate(const COneAxis&, const double& amt);
virtual void Translate(double dx, double dy, double dz) = 0;
virtual void Translate(const CVector3D&) = 0;
virtual void Translate(const CPoint3D&, const CPoint3D&) = 0;
virtual void Rotate(const COneAxis&, double) = 0;
virtual void Scale(const CPoint3D&, double) = 0;
virtual void Mirror(const CPoint3D&) = 0;
virtual void Mirror(const COneAxis&) = 0;
virtual void Mirror(const CPlane&) = 0;
GeometryType GeomType() const { return geomType; }
private:
static int refCount;
protected:
GeometryType geomType;
};
#endif // !defined(AFX_GEOMETRY_H__8716A236_EA76_458F_8315_FEA9C6A0DFD2__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.