|
//############################################################################
// 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.
//#############################################################################
// Point3D.h: interface for the CPoint3D class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_POINT3D_H__21228FA2_D57D_4321_95A7_E1EB539550C7__INCLUDED_)
#define AFX_POINT3D_H__21228FA2_D57D_4321_95A7_E1EB539550C7__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include "Geometry.h"
class CVector3D;
class COneAxis;
class CLine3D;
class CPlane;
class CPoint3D : public CGeometry
{
friend istream &operator>>(istream& , CPoint3D&);
friend ostream &operator<<(ostream& , CPoint3D&);
public:
CPoint3D();
CPoint3D(double, double, double);
virtual ~CPoint3D();
void SetParam(double, double, double);
void SetX(double x) {itsX=x;}
void SetY(double y) {itsY=y;}
void SetZ(double z) {itsZ=z;}
CPoint3D operator+(const CPoint3D&);
CPoint3D operator+(const double&);
CPoint3D operator-(const CPoint3D&);
CPoint3D operator-(const double&);
CPoint3D operator*(const double scale);
CPoint3D operator/(const double scale);
void operator+=(const CPoint3D&);
void operator+=(const double&);
void operator-=(const CPoint3D&);
void operator-=(const double&);
void operator*=(const double scale);
void operator/=(const double scale);
double GetX() const;
double GetY() const;
double GetZ() const;
double Distance(const CPoint3D&);
double Distance(const CPlane&);
bool operator == (const CPoint3D& p) const;
operator CVector3D();
virtual void Translate(const COneAxis&, const double&);
virtual void Translate(double dx, double dy, double dz);
virtual void Translate(const CVector3D&);
virtual void Translate(const CPoint3D&, const CPoint3D&);
virtual void Rotate(const COneAxis&, double);
virtual void Scale(const CPoint3D&, double);
virtual void Mirror(const CPoint3D&);
virtual void Mirror(const COneAxis&);
virtual void Mirror(const CPlane&);
static CPoint3D Origin();
private:
double itsX;
double itsY;
double itsZ;
};
#endif // !defined(AFX_POINT3D_H__21228FA2_D57D_4321_95A7_E1EB539550C7__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.