OpenGL ES SDK for Android ARM Developer Center
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
SolidSphere.h
Go to the documentation of this file.
1 /* Copyright (c) 2014-2017, ARM Limited and Contributors
2  *
3  * SPDX-License-Identifier: MIT
4  *
5  * Permission is hereby granted, free of charge,
6  * to any person obtaining a copy of this software and associated documentation files (the "Software"),
7  * to deal in the Software without restriction, including without limitation the rights to
8  * use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
9  * and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
10  *
11  * The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
12  *
13  * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
14  * INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15  * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
16  * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
17  * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
19  */
20 
21 #ifndef SOLID_SPHERE_H
22 #define SOLID_SPHERE_H
23 
24 namespace AstcTextures
25 {
26  class SolidSphere
27  {
28  public:
36  SolidSphere(const float radius, const unsigned int rings, const unsigned int sectors);
37 
43  float* getSphereVertexData(int* vertex_data_size);
44 
50  float* getSphereNormalData(int* normal_data_size);
51 
57  float* getSphereTexcoords (int* texcoords_size);
58 
64  unsigned short* getSphereIndices(int* n_indices);
65 
66  private:
67 
68  /* Pointers to mesh data. */
69  float* sphere_vertices;
70  float* sphere_normals;
71  float* sphere_texcoords;
72 
73  /* Indices that determine how to construct a sequence of primitives for glDrawElements call. */
74  unsigned short* sphere_indices;
75 
76  /* Sizes of mesh data. */
80 
81  /* Number of indices. */
82  int sphere_n_indices;
83  };
84 }
85 
86 #endif /* SOLID_SPHERE_H */
unsigned short * getSphereIndices(int *n_indices)
Returns sphere indices.
float * getSphereNormalData(int *normal_data_size)
Returns normal coordinates.
float * getSphereTexcoords(int *texcoords_size)
Returns texture coordinates.
SolidSphere(const float radius, const unsigned int rings, const unsigned int sectors)
Solid sphere constructor. It generates vertex position, normals and texture coordinates data based on...
Definition: SolidSphere.cpp:30
float * getSphereVertexData(int *vertex_data_size)
Returns sphere vertices.
Definition: SolidSphere.cpp:98
unsigned short * sphere_indices
Definition: SolidSphere.h:74