📄 triangle.h
字号:
// Triangle.h: interface for the CTriangle class.
//
//////////////////////////////////////////////////////////////////////
#if !defined(AFX_TRIANGLE_H__28661FC8_C613_4101_92D0_F99BABE81CBD__INCLUDED_)
#define AFX_TRIANGLE_H__28661FC8_C613_4101_92D0_F99BABE81CBD__INCLUDED_
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#include <vcg/Point3.h>
#include <vector>
using namespace std;
using namespace vcg;
class Vertex
{
public:
//定点的坐标
Point3f v;
//顶点的法向量
Point3f n;
//顶点的颜色
Point3f c;
//顶点的纹理坐标
Point3f t;
};
class CTriangle
{
public:
//缺省的构造函数
CTriangle();
//以三个顶点作为参数的构造函数
CTriangle(Point3f const &v0,Point3f const &v1,Point3f const &v2);
//析构函数
virtual ~CTriangle();
//三角形的三个顶点
Vertex v[3];
//计算三角形面的法向量
void CalcNormal();
void Flip();
inline bool operator < ( CTriangle const & p ) const
{
return (v[2].v!=p.v[2].v)?(v[2].v<p.v[2].v):
(v[1].v!=p.v[1].v)?(v[1].v<p.v[1].v):
(v[0].v<p.v[0].v);
}
inline bool operator == ( CTriangle const & p ) const
{
return (v[0].v==p.v[0].v && v[1].v==p.v[1].v && v[2].v==p.v[2].v);
}
};
class CMesh
{
public:
CMesh();
virtual ~CMesh();
vector<CTriangle> T;
int dl;
GLuint ti;
int Draw();
void GenerateDL();
int DrawDL();
int DrawA();
void Open(char *filename);
bool has_color;
bool has_texture;
void OpenColor(char *filename);
void OpenNormal(char *filename);
void Smooth();
void Normalize(float size=1);
void Flip();
void SetTexture(char *filename);
void SetTexture(GLuint TextInd);
enum mapmode {PLANAR,CYLINDRICAL} mm;
void SetMapMode(mapmode m);
};
#endif // !defined(AFX_TRIANGLE_H__28661FC8_C613_4101_92D0_F99BABE81CBD__INCLUDED_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -