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