1cb93a386Sopenharmony_ci// 2cb93a386Sopenharmony_ci// Copyright 2014 The ANGLE Project Authors. All rights reserved. 3cb93a386Sopenharmony_ci// Use of this source code is governed by a BSD-style license that can be 4cb93a386Sopenharmony_ci// found in the LICENSE file. 5cb93a386Sopenharmony_ci// 6cb93a386Sopenharmony_ci// geometry_utils: 7cb93a386Sopenharmony_ci// Helper library for generating certain sets of geometry. 8cb93a386Sopenharmony_ci// 9cb93a386Sopenharmony_ci 10cb93a386Sopenharmony_ci#ifndef UTIL_GEOMETRY_UTILS_H 11cb93a386Sopenharmony_ci#define UTIL_GEOMETRY_UTILS_H 12cb93a386Sopenharmony_ci 13cb93a386Sopenharmony_ci#include <cstddef> 14cb93a386Sopenharmony_ci#include <vector> 15cb93a386Sopenharmony_ci 16cb93a386Sopenharmony_ci#include <GLES2/gl2.h> 17cb93a386Sopenharmony_ci 18cb93a386Sopenharmony_ci#include "common/vector_utils.h" 19cb93a386Sopenharmony_ci#include "util/util_export.h" 20cb93a386Sopenharmony_ci 21cb93a386Sopenharmony_cistruct ANGLE_UTIL_EXPORT SphereGeometry 22cb93a386Sopenharmony_ci{ 23cb93a386Sopenharmony_ci SphereGeometry(); 24cb93a386Sopenharmony_ci ~SphereGeometry(); 25cb93a386Sopenharmony_ci 26cb93a386Sopenharmony_ci std::vector<angle::Vector3> positions; 27cb93a386Sopenharmony_ci std::vector<angle::Vector3> normals; 28cb93a386Sopenharmony_ci std::vector<GLushort> indices; 29cb93a386Sopenharmony_ci}; 30cb93a386Sopenharmony_ci 31cb93a386Sopenharmony_ciANGLE_UTIL_EXPORT void CreateSphereGeometry(size_t sliceCount, 32cb93a386Sopenharmony_ci float radius, 33cb93a386Sopenharmony_ci SphereGeometry *result); 34cb93a386Sopenharmony_ci 35cb93a386Sopenharmony_cistruct ANGLE_UTIL_EXPORT CubeGeometry 36cb93a386Sopenharmony_ci{ 37cb93a386Sopenharmony_ci CubeGeometry(); 38cb93a386Sopenharmony_ci ~CubeGeometry(); 39cb93a386Sopenharmony_ci 40cb93a386Sopenharmony_ci std::vector<angle::Vector3> positions; 41cb93a386Sopenharmony_ci std::vector<angle::Vector3> normals; 42cb93a386Sopenharmony_ci std::vector<angle::Vector2> texcoords; 43cb93a386Sopenharmony_ci std::vector<GLushort> indices; 44cb93a386Sopenharmony_ci}; 45cb93a386Sopenharmony_ci 46cb93a386Sopenharmony_ciANGLE_UTIL_EXPORT void GenerateCubeGeometry(float radius, CubeGeometry *result); 47cb93a386Sopenharmony_ci 48cb93a386Sopenharmony_ci#endif // UTIL_GEOMETRY_UTILS_H 49