#pragma once
#include <Windows.h>
#include <tchar.h>
#include "CELLMath.hpp"
using namespace CELL;
float3 g_cubeVertices[] ={ //4个点组成一个面,一共6个面,
//前面
float3(-1.0f,-1.0f, 1.0f ),//前面 左下
float3( 1.0f,-1.0f, 1.0f ),//前面 右下
float3( 1.0f, 1.0f, 1.0f ),//前面 右上
float3(-1.0f, 1.0f, 1.0f ),//前面 左上
//后面
float3(-1.0f,-1.0f,-1.0f ),
float3(-1.0f, 1.0f,-1.0f ),
float3( 1.0f, 1.0f,-1.0f ),
float3( 1.0f,-1.0f,-1.0f ),
//上面
float3(-1.0f, 1.0f,-1.0f ),
float3(-1.0f, 1.0f, 1.0f ),
float3( 1.0f, 1.0f, 1.0f ),
float3( 1.0f, 1.0f,-1.0f ),
//下面
float3(-1.0f,-1.0f,-1.0f ),
float3( 1.0f,-1.0f,-1.0f ),
float3( 1.0f,-1.0f, 1.0f ),
float3(-1.0f,-1.0f, 1.0f ),
//右侧
float3( 1.0f,-1.0f,-1.0f ),
float3( 1.0f, 1.0f,-1.0f ),
float3( 1.0f, 1.0f, 1.0f ),
float3( 1.0f,-1.0f, 1.0f ),
//左侧
float3(-1.0f,-1.0f,-1.0f ),
float3(-1.0f,-1.0f, 1.0f ),
float3(-1.0f, 1.0f, 1.0f ),
float3(-1.0f, 1.0f,-1.0f )
};
class Soft3d{
float2 _viewPort;//视口坐标
matrix4 _model;//模型矩阵
matrix4 _proj;//投影矩阵
matrix4 _view;//视图矩阵(观察矩阵)
float3 _trans;
float3 _scale;
quatr _quat;
float _angel;
public:
Soft3d(){
_trans = float3(0,0,-5);
_scale = float3(1,1,1);
_quat = angleAxis(float(0),float3(0,0,1));
_model = makeTransform(float3(0,0,0),_scale,_quat);
_view = matrix4(1);
_angel = 0;
}
void setTranlate(float3 trans) {
_trans = trans;
}
void setScale(