📄 output.cpp
字号:
#include "StdAfx.h"
#include "../common/myd3d.h"
#include "output.h"
//-----------------------------------------------------------------------------
// 名称:dumpVertices()
// 功能:输出mesh顶点
//-----------------------------------------------------------------------------
void dumpVertices(std::ofstream& outFile, ID3DXMesh* mesh)
{
outFile << "Vertices:" << std::endl;
outFile << "---------" << std::endl << std::endl;
d3d::Vertex* v = 0;
mesh->LockVertexBuffer(0, (void**)&v);
for(int i = 0; i < (int)mesh->GetNumVertices(); i++)
{
outFile << "Vertex " << i << ": (";
outFile << v[i]._x << ", " << v[i]._y << ", " << v[i]._z << ", ";
outFile << v[i]._nx << ", " << v[i]._ny << ", " << v[i]._nz << ", ";
outFile << v[i]._u << ", " << v[i]._v << ")" << std::endl;
}
mesh->UnlockVertexBuffer();
outFile << std::endl << std::endl;
}
//-----------------------------------------------------------------------------
// 名称:dumpIndices()
// 功能:输出mesh索引
//-----------------------------------------------------------------------------
void dumpIndices(std::ofstream& outFile, ID3DXMesh* mesh)
{
outFile << "Indices:" << std::endl;
outFile << "--------" << std::endl << std::endl;
WORD* indices = 0;
mesh->LockIndexBuffer(0, (void**)&indices);
for(int i = 0; i < (int)mesh->GetNumFaces(); i++)
{
outFile << "Triangle " << i << ": ";
outFile << indices[i * 3 ] << " ";
outFile << indices[i * 3 + 1] << " ";
outFile << indices[i * 3 + 2] << std::endl;
}
mesh->UnlockIndexBuffer();
outFile << std::endl << std::endl;
}
//-----------------------------------------------------------------------------
// 名称:dumpAttributeBuffer()
// 功能:输出mesh属性
//-----------------------------------------------------------------------------
void dumpAttributeBuffer(std::ofstream& outFile, ID3DXMesh* mesh)
{
outFile << "Attribute Buffer:" << std::endl;
outFile << "-----------------" << std::endl << std::endl;
DWORD* attributeBuffer = 0;
mesh->LockAttributeBuffer(0, &attributeBuffer);
// an attribute for each face
for(int i = 0; i < (int)mesh->GetNumFaces(); i++)
{
outFile << "Triangle lives in subset " << i << ": ";
outFile << attributeBuffer[i] << std::endl;
}
mesh->UnlockAttributeBuffer();
outFile << std::endl << std::endl;
}
//-----------------------------------------------------------------------------
// 名称:dumpAdjacencyBuffer()
// 功能:输出mesh邻接信息
//-----------------------------------------------------------------------------
void dumpAdjacencyBuffer(std::ofstream& outFile, ID3DXMesh* mesh)
{
outFile << "Adjacency Buffer:" << std::endl;
outFile << "-----------------" << std::endl << std::endl;
// three enttries per face
std::vector<DWORD> adjacencyBuffer(mesh->GetNumFaces() * 3);
mesh->GenerateAdjacency(0.0f, &adjacencyBuffer[0]);
for(int i = 0; i < (int)mesh->GetNumFaces(); i++)
{
outFile << "Triangle's adjacent to triangle " << i << ": ";
outFile << adjacencyBuffer[i * 3 ] << " ";
outFile << adjacencyBuffer[i * 3 + 1] << " ";
outFile << adjacencyBuffer[i * 3 + 2] << std::endl;
}
outFile << std::endl << std::endl;
}
//-----------------------------------------------------------------------------
// 名称:dumpAttributeTable()
// 功能:输出mesh属性列表
//-----------------------------------------------------------------------------
void dumpAttributeTable(std::ofstream& outFile, ID3DXMesh* mesh)
{
outFile << "Attribute Table:" << std::endl;
outFile << "----------------" << std::endl << std::endl;
// number of entries in the attribute table
DWORD numEntries = 0;
mesh->GetAttributeTable(0, &numEntries);
std::vector<D3DXATTRIBUTERANGE> table(numEntries);
mesh->GetAttributeTable(&table[0], &numEntries);
for(int i = 0; i < (int)numEntries; i++)
{
outFile << "Entry " << i << std::endl;
outFile << "-----------" << std::endl;
outFile << "Subset ID: " << table[i].AttribId << std::endl;
outFile << "Face Start: " << table[i].FaceStart << std::endl;
outFile << "Face Count: " << table[i].FaceCount << std::endl;
outFile << "Vertex Start: " << table[i].VertexStart << std::endl;
outFile << "Vertex Count: " << table[i].VertexCount << std::endl;
outFile << std::endl;
}
outFile << std::endl << std::endl;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -