13f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian/* 23f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * Copyright 2013 The Android Open Source Project 33f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * 43f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * Licensed under the Apache License, Version 2.0 (the "License"); 53f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * you may not use this file except in compliance with the License. 63f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * You may obtain a copy of the License at 73f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * 83f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * http://www.apache.org/licenses/LICENSE-2.0 93f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * 103f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * Unless required by applicable law or agreed to in writing, software 113f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * distributed under the License is distributed on an "AS IS" BASIS, 123f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * See the License for the specific language governing permissions and 143f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian * limitations under the License. 153f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian */ 163f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 173f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian#include "Mesh.h" 183f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 193f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiannamespace android { 203f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 213f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopianMesh::Mesh(Primitive primitive, size_t vertexCount, size_t vertexSize, size_t texCoordSize) 223f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian : mVertexCount(vertexCount), mVertexSize(vertexSize), mTexCoordsSize(texCoordSize), 233f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian mPrimitive(primitive) 243f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian{ 253f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian mVertices = new float[(vertexSize + texCoordSize) * vertexCount]; 263f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian mStride = mVertexSize + mTexCoordsSize; 273f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 283f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 293f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopianMesh::~Mesh() { 303f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian delete [] mVertices; 313f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 323f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 333f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias AgopianMesh::Primitive Mesh::getPrimitive() const { 343f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mPrimitive; 353f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 363f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 373f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 385cdc8994a0ecd751a6350b16a1bef8b6b0d09b11Mathias Agopianfloat const* Mesh::getPositions() const { 393f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mVertices; 403f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 415cdc8994a0ecd751a6350b16a1bef8b6b0d09b11Mathias Agopianfloat* Mesh::getPositions() { 423f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mVertices; 433f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 443f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 453f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianfloat const* Mesh::getTexCoords() const { 463f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mVertices + mVertexSize; 473f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 483f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopianfloat* Mesh::getTexCoords() { 493f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mVertices + mVertexSize; 503f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 513f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 523f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 533f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiansize_t Mesh::getVertexCount() const { 543f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mVertexCount; 553f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 563f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 573f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiansize_t Mesh::getVertexSize() const { 583f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mVertexSize; 593f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 603f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 613f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiansize_t Mesh::getTexCoordsSize() const { 623f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mTexCoordsSize; 633f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 643f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 653f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiansize_t Mesh::getByteStride() const { 663f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mStride*sizeof(float); 673f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 683f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 693f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopiansize_t Mesh::getStride() const { 703f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian return mStride; 713f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} 723f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian 733f84483382be2d528918cc1a6fbc6a7d68e0b181Mathias Agopian} /* namespace android */ 74