//---------------------------------------------------------------------------- void BoxSurface::UpdateSurface () { int permute[3]; TriMesh* mesh; VertexFormat* vformat; VertexBuffer* vbuffer; // u faces permute[0] = 1; permute[1] = 2; permute[2] = 0; // u = 0 mesh = StaticCast<TriMesh>(GetChild(0)); vformat = mesh->GetVertexFormat(); vbuffer = mesh->GetVertexBuffer(); UpdateFace(mNumWSamples, mNumVSamples, vformat, vbuffer, false, 0.0f, permute); mesh->UpdateModelSpace(Renderable::GU_NORMALS); Renderer::UpdateAll(vbuffer); // u = 1 mesh = StaticCast<TriMesh>(GetChild(1)); vformat = mesh->GetVertexFormat(); vbuffer = mesh->GetVertexBuffer(); UpdateFace(mNumWSamples, mNumVSamples, vformat, vbuffer, true, 1.0f, permute); mesh->UpdateModelSpace(Renderable::GU_NORMALS); Renderer::UpdateAll(vbuffer); // v faces permute[0] = 0; permute[1] = 2; permute[2] = 1; // v = 0 mesh = StaticCast<TriMesh>(GetChild(2)); vformat = mesh->GetVertexFormat(); vbuffer = mesh->GetVertexBuffer(); UpdateFace(mNumWSamples, mNumUSamples, vformat, vbuffer, true, 0.0f, permute); mesh->UpdateModelSpace(Renderable::GU_NORMALS); Renderer::UpdateAll(vbuffer); // v = 1 mesh = StaticCast<TriMesh>(GetChild(3)); vformat = mesh->GetVertexFormat(); vbuffer = mesh->GetVertexBuffer(); UpdateFace(mNumWSamples, mNumUSamples, vformat, vbuffer, false, 1.0f, permute); mesh->UpdateModelSpace(Renderable::GU_NORMALS); Renderer::UpdateAll(vbuffer); // w faces permute[0] = 0; permute[1] = 1; permute[2] = 2; // w = 0 mesh = StaticCast<TriMesh>(GetChild(4)); vformat = mesh->GetVertexFormat(); vbuffer = mesh->GetVertexBuffer(); UpdateFace(mNumVSamples, mNumUSamples, vformat, vbuffer, false, 0.0f, permute); mesh->UpdateModelSpace(Renderable::GU_NORMALS); Renderer::UpdateAll(vbuffer); // w = 1 mesh = StaticCast<TriMesh>(GetChild(5)); vformat = mesh->GetVertexFormat(); vbuffer = mesh->GetVertexBuffer(); UpdateFace(mNumVSamples, mNumUSamples, vformat, vbuffer, true, 1.0f, permute); mesh->UpdateModelSpace(Renderable::GU_NORMALS); Renderer::UpdateAll(vbuffer); }