亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? cadbase.h

?? 用vc編的stlview著重版
?? H
字號:
#ifndef _CAD_DEF_H_
#define _CAD_DEF_H_

#include <math.h>
#include <afxtempl.h>

#define CAD_ZERO		1.0E-6
#define NC_ZERO		1.0E-3
#define IS_ZERO(x)		(fabs(x)<=CAD_ZERO)
#define IS_NCZERO(x)		(fabs(x)<=NC_ZERO)
#define IS_BETWEEN(x,min,max) (x<=max && x>=min)
#define PI	3.1415926535

typedef struct tagPoint2D{
	double x;
	double y;
} POINT2D, *PPOINT2D;

typedef struct tagVector2D{
	double dx;
	double dy;
} VECTOR2D,*PVECTOR2D;

typedef struct tagPoint3D{
	double x;
	double y;
	double z;
} POINT3D, *PPOINT3D;

typedef struct tagVector3D{
	double dx;
	double dy;
	double dz;
} VECTOR3D,*PVECTOR3D;

typedef struct tagMatrix2D{
	double A[3][3];
} MATRIX2D, *PMATRIX2D;

typedef struct  tagMatrix3D{
	double A[4][4];
} MATRIX3D, *PMATRIX3D;

class CPoint2D;
class CPoint3D;
class CVector2D;
class CVector3D;
class CMatrix2D;
class CMatrix3D;

class AFX_EXT_CLASS CPoint2D :public POINT2D
{
public:
	CPoint2D();
	CPoint2D(double ix,double iy);
	CPoint2D(const double*);
	CPoint2D(POINT2D p);
	~CPoint2D();

public:
	//operators
	CPoint2D operator*(const MATRIX2D& matrix) const;
	void  operator*=(const MATRIX2D& matrix);

	//offsetting with vector
	CPoint2D operator+(VECTOR2D v) const;
	void operator+=(VECTOR2D v);
	CPoint2D operator-(VECTOR2D v) const;
	void operator-=(VECTOR2D v);

	//derived vector = this point - sp
	CVector2D operator-(POINT2D sp) const;
} ;

// Intersection Point structure
typedef struct tagInterPOINT2D{
	CPoint2D interPt;
	double t0;
	double t1;
} INTERPOINT2D,*PINTERPOINT2D;


class AFX_EXT_CLASS CVector2D : public VECTOR2D  
{
public:
	CVector2D();
	CVector2D(double ix,double iy=0.0);
	CVector2D(const double* pv);
	CVector2D(VECTOR2D v);
	virtual ~CVector2D();

public:
	//operators declaration
	CVector2D operator+(VECTOR2D v) const;
	CVector2D operator-(VECTOR2D v) const;
	void operator+=(VECTOR2D v);
	void operator-=(VECTOR2D v);
	CVector2D operator*(double d) const;
	void operator*=(double d);
	CVector2D operator/(double d) const;
	void operator/=(double d);

	// cross product
	CVector3D operator*(VECTOR2D v) const;
	
	// dot product
	double operator|(VECTOR2D v) const;

	//matrix transformation
    CVector2D operator*(const MATRIX2D& matrix ) const;
    void operator*=(const MATRIX2D& matrix );

	//methods declaration
	double GetLength()const;
	CVector2D GetNormal()const;
	void Normalize();
	BOOL   IsZeroLength() const;
};

class AFX_EXT_CLASS CPoint3D :public POINT3D
{
public:
	CPoint3D();
	CPoint3D(double ix,double iy,double iz=0.0);
	CPoint3D(const double*);
	CPoint3D(POINT3D p);
	~CPoint3D();

public:
	//operators
	CPoint3D operator*(const MATRIX3D& matrix) const;
	void  operator*=(const MATRIX3D& matrix);

	//offsetting with vector
	CPoint3D operator+(VECTOR3D v) const;
	void operator+=(VECTOR3D v);
	CPoint3D operator-(VECTOR3D v) const;
	void operator-=(VECTOR3D v);

	BOOL operator==(POINT3D pos) const;
	BOOL operator!=(POINT3D pos) const;

	//derived vector = this point - sp
	CVector3D operator-(POINT3D sp) const;
} ;

class AFX_EXT_CLASS CVector3D: public VECTOR3D
{
public:
	CVector3D();
	CVector3D(double dx,double dy,double dz=0);
	CVector3D(const double*);
	CVector3D(VECTOR3D v);
	virtual ~CVector3D();

	//operator
	CVector3D operator+(VECTOR3D v) const;
	void operator+=(VECTOR3D v);
	CVector3D operator-(VECTOR3D v) const;
	void operator-=(VECTOR3D v);

	CVector3D operator*(double d) const;
	void operator*=(double d);
	CVector3D operator/(double d) const;
	void operator/=(double d);

	//cross product
	CVector3D operator*(VECTOR3D v) const;
	
	//dot product
	double operator|(VECTOR3D v) const;

	CVector3D operator*(const MATRIX3D& matrix) const;
	void  operator*=(const MATRIX3D& matrix);

	//length
	double GetLength() const;
	double GetLengthXY() const;
	double GetLengthYZ() const;
	double GetLengthZX() const;
	
	CVector3D	GetNormal() const;
	void		Normalize();
	BOOL		IsZeroLength() const;
};


class AFX_EXT_CLASS CMatrix2D : public MATRIX2D
{
public:
	CMatrix2D();
	CMatrix2D(const MATRIX2D&);
	CMatrix2D(const double *);
	virtual ~CMatrix2D();

	//operators
	CMatrix2D operator*(const MATRIX2D&) const;
	void operator*=(const MATRIX2D&);

	//methods
	void	IdenticalMatrix();
	double	GetValue() const;
public:
	// static member functions
	static double GetValue(double a00, double a01,
						   double a10, double a11);
	static CMatrix2D CreateMirrorMatrix(VECTOR2D vect);
	static CMatrix2D CreateRotateMatrix(double angle);
	static CMatrix2D CreateScaleMatrix(double);
	static CMatrix2D CreateTransfMatrix(VECTOR2D vect);
} ; 

class AFX_EXT_CLASS CMatrix3D : public MATRIX3D
{
public:
	CMatrix3D();
	CMatrix3D(const MATRIX3D&);
	CMatrix3D(const double *);
	virtual ~CMatrix3D();
public:
	//operators
	CMatrix3D operator*(const MATRIX3D& matrix)const;
	void operator*=(const MATRIX3D& matrix);

	//methods
	void   IdenticalMatrix();
	double GetValue() const;

public:
	// static member functions
	static double GetValue(double a00, double a01, double a02,
						   double a10, double a11, double a12,
						   double a20, double a21, double a22);
	static CMatrix3D CreateMirrorMatrix(VECTOR3D plnNorm);
	static CMatrix3D CreateRotateMatrix(double da,VECTOR3D bv);
	static CMatrix3D CreateScaleMatrix(double);
	static CMatrix3D CreateTransfMatrix(VECTOR3D vec);
} ; 

//////////////////////////////////////////////////////////////////////////
//  (x0,y0): the left and bottom corner
//  (x1,y1): the right and top corner
//////////////////////////////////////////////////////////////////////////
typedef struct tagBox2D{
	double x0;
	double y0;
	double x1;
	double y1;
} BOX2D , *PBOX2D;

class AFX_EXT_CLASS CBox2D : public BOX2D
{

//constructor && destructor
public:
	CBox2D();
	CBox2D(double ix0,double iy0,double ix1,double iy1);
	CBox2D(POINT2D pt0,POINT2D pt1);
	CBox2D(BOX2D b);
	CBox2D(POINT2D p,VECTOR2D v);
	virtual ~CBox2D();

// operator
public:
//// get the union box of this and box b.
	CBox2D operator+(BOX2D b) const;
	void operator+=(BOX2D b);

//// get the intersect box of this and box b.
	CBox2D operator&(BOX2D b) const;
	void operator&=(BOX2D b);

// get attribs
public:
	BOOL   IsZero() const;
	double Width() const;		// Length of X direction
	double Height()const;		// Length of Y direction

// relationship culation
public:
	enum {enumSeparated,enumIntersected};
	UINT GetRelationWith(BOX2D b) const;
protected:
	void normalize();
};

//////////////////////////////////////////////////////////////////////////
//  (x0,y0): the left and bottom corner
//  (x1,y1): the right and top corner
//////////////////////////////////////////////////////////////////////////
typedef struct tagBox3D{
	double x0;
	double y0;
	double z0;
	double x1;
	double y1;
	double z1;
} BOX3D , *PBOX3D;

class AFX_EXT_CLASS CBox3D : public BOX3D
{

//constructor && destructor
public:
	CBox3D();
	CBox3D(double ix0,double iy0,double iz0, double ix1,double iy1, double iz1);
	CBox3D(POINT3D pt0,POINT3D pt1);
	CBox3D(BOX3D b);
	CBox3D(POINT3D p,VECTOR3D v);
	virtual ~CBox3D();

// operator
public:
//// get the union box of this and box b.
	CBox3D operator+(BOX3D b) const;
	void operator+=(BOX3D b);

//// get the intersect box of this and box b.
	CBox3D operator&(BOX3D b) const;
	void operator&=(BOX3D b);
	CBox3D operator*( double sc ) const;
	void operator*= ( double sc );
	CBox3D operator*( const MATRIX3D& matrix ) const;
	void operator*= ( const MATRIX3D& matrix );
	BOOL operator<< ( BOX3D b )const ;
	BOOL operator>> ( BOX3D b ) const;
	BOOL operator>> ( POINT3D p ) const;
	CBox3D operator|(BOX3D b) const;
	void operator|=(BOX3D b);

	CBox3D operator+(VECTOR3D vect) const;
	void operator+=(VECTOR3D vect);
	CBox3D operator-(VECTOR3D vect)const;
	void operator-=(VECTOR3D vect);

// get attribs
	BOOL	IsEmpty() const;
	double	Width() const;	 //// Length of X direction
	double	Height() const; //// Length of Z direction
	double	Length( )const; //// Length of Y direction

	enum {enumSeparated,enumIntersected};
	UINT GetRelationWith(BOX3D b) const;

protected:
	void normalize();
};

// exported API functions
double	AFX_EXT_API _AngleBetween(VECTOR2D v1,VECTOR2D v2);
double	AFX_EXT_API _AngleBetween(VECTOR3D v1,VECTOR3D v2);
double	AFX_EXT_API _DistOf(POINT2D pt0, POINT2D pt1);
double	AFX_EXT_API _DistOf(POINT3D pt0, POINT3D pt1);
BOOL	AFX_EXT_API _IsParallel(VECTOR2D v0,VECTOR2D v1);
BOOL	AFX_EXT_API _IsParallel(VECTOR3D v0,VECTOR3D v1);
BOOL	AFX_EXT_API _IsOrthogonal(VECTOR3D v0,VECTOR3D v1);
#endif

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日韩精品一区二区浪潮av| 亚洲福利一区二区| 韩国三级电影一区二区| 91精品久久久久久久91蜜桃| 五月婷婷欧美视频| 欧美一区二区三区婷婷月色 | 欧美亚洲国产一区二区三区| 亚洲综合在线视频| 91精品免费在线| 国产精品综合一区二区三区| 国产精品三级av在线播放| 色综合天天综合网天天看片| 亚洲欧美另类久久久精品2019 | 色综合久久综合| 亚洲影视资源网| 丁香啪啪综合成人亚洲小说 | 欧美mv日韩mv国产网站| 精品亚洲欧美一区| 亚洲天堂精品在线观看| 99精品一区二区三区| 亚洲高清中文字幕| 欧美不卡一区二区| 91一区二区在线观看| 日韩精品欧美精品| 欧美国产精品中文字幕| 欧美亚洲一区二区在线| 久久精品国产第一区二区三区| 国产婷婷一区二区| 欧美日韩国产精品自在自线| 国产一区二区精品在线观看| 亚洲精品免费视频| 欧美mv日韩mv国产网站| 在线观看一区二区精品视频| 国产在线一区二区综合免费视频| 亚洲欧美偷拍卡通变态| 精品国产免费人成在线观看| 色天天综合色天天久久| 国产一区二区三区免费| 午夜精品久久久久| 日韩女优毛片在线| 国产日韩av一区| 色婷婷香蕉在线一区二区| 六月丁香婷婷久久| 一区二区三区在线播放| 国产欧美1区2区3区| 51精品国自产在线| 日本韩国一区二区三区视频| 国产91精品一区二区| 蜜臀国产一区二区三区在线播放 | 国产高清成人在线| 日本女人一区二区三区| 亚洲精品大片www| 中文字幕欧美日韩一区| 欧美成人三级在线| 欧美福利视频一区| 欧洲日韩一区二区三区| 99久久免费国产| 国产精品12区| 成人一区在线看| 精品国产91洋老外米糕| 欧美日韩在线播| 91精品办公室少妇高潮对白| 成人激情黄色小说| 国产激情91久久精品导航| 精品一区二区三区的国产在线播放| 亚洲综合久久久久| 亚洲男人天堂av| 一区免费观看视频| 成人免费小视频| 中文字幕日韩一区| 亚洲人成人一区二区在线观看| 亚洲国产成人私人影院tom| 欧美激情一区二区三区不卡| 色婷婷国产精品综合在线观看| 99精品在线观看视频| www.亚洲精品| 成人动漫av在线| 99久久国产综合色|国产精品| 成人精品鲁一区一区二区| www.欧美色图| 97se亚洲国产综合在线| 一本久久a久久精品亚洲| 色婷婷久久99综合精品jk白丝| 91女人视频在线观看| 色婷婷精品久久二区二区蜜臀av| 欧美亚洲愉拍一区二区| 欧美日韩久久一区| 欧美一区中文字幕| 精品国产91乱码一区二区三区| 国产亚洲精品资源在线26u| 国产日韩成人精品| 亚洲乱码国产乱码精品精98午夜 | 亚洲一区二区三区四区不卡| 亚洲福利一二三区| 久久国产尿小便嘘嘘尿| 国产精品乡下勾搭老头1| 成人av一区二区三区| 色婷婷av久久久久久久| 在线电影一区二区三区| 亚洲精品在线电影| 国产精品三级av| 亚洲v日本v欧美v久久精品| 日本中文字幕一区二区视频| 精品亚洲国内自在自线福利| 成人a级免费电影| 欧美少妇一区二区| 精品国产电影一区二区| 136国产福利精品导航| 亚洲国产成人tv| 国产麻豆精品theporn| 91在线视频网址| 欧美成人一区二区三区| 一区免费观看视频| 日韩电影免费一区| 成人精品国产免费网站| 91精品国产综合久久精品性色| 久久男人中文字幕资源站| 亚洲黄一区二区三区| 麻豆精品在线观看| 91亚洲国产成人精品一区二三| 日韩你懂的电影在线观看| 中文字幕一区二区三| 免费观看成人av| 色先锋久久av资源部| 26uuu另类欧美| 亚洲成人黄色小说| eeuss鲁片一区二区三区| 日韩一区二区中文字幕| 亚洲免费观看高清完整版在线观看 | 亚洲国产精品成人综合 | 日韩视频免费观看高清在线视频| 7878成人国产在线观看| 日本一区二区三区dvd视频在线| 一区二区三区在线视频播放| 国产自产高清不卡| 欧美日韩国产首页在线观看| 国产精品嫩草影院av蜜臀| 日本欧美韩国一区三区| 一本色道久久综合亚洲精品按摩 | 久久亚洲捆绑美女| 丝袜亚洲另类欧美综合| 91尤物视频在线观看| 2023国产精品视频| 丝袜诱惑亚洲看片| 在线精品视频小说1| 国产精品久久久久久久久果冻传媒| 久久精品久久综合| 欧美一区二区三区婷婷月色| 午夜伦欧美伦电影理论片| 91黄视频在线| 最新高清无码专区| av在线不卡网| 国产精品久久久爽爽爽麻豆色哟哟| 久久疯狂做爰流白浆xx| 91精品国产免费| 日韩激情在线观看| 欧美高清视频www夜色资源网| 有码一区二区三区| 色屁屁一区二区| 国产精品女上位| 成人黄色网址在线观看| 国产精品女同一区二区三区| 成人小视频免费观看| 国产视频亚洲色图| 国产成人精品1024| 欧美国产日韩精品免费观看| 国产iv一区二区三区| 国产免费成人在线视频| 国产成人一区在线| 欧美国产一区在线| 成人黄色电影在线 | 国产夜色精品一区二区av| 激情综合五月天| 久久日韩粉嫩一区二区三区| 国产一区二区三区日韩| 久久久国产一区二区三区四区小说| 国产在线精品免费| 国产女同互慰高潮91漫画| 国产精品一级二级三级| 国产精品女主播av| 91国在线观看| 日本不卡1234视频| 久久综合久久综合久久| 成人一区在线看| 一区二区三区在线免费播放| 欧美日韩国产成人在线免费| 蜜桃91丨九色丨蝌蚪91桃色| 久久婷婷久久一区二区三区| 成人开心网精品视频| 一级精品视频在线观看宜春院| 欧美日韩性生活| 精品一区二区三区日韩| 国产欧美精品国产国产专区| 色av一区二区| 免费高清在线视频一区·| 国产视频在线观看一区二区三区 | 欧美视频在线一区二区三区 | 亚洲成人av电影在线| 日韩欧美一区二区三区在线| 成人av先锋影音|