Making DALi public API typesafe using guaranteed types; uint8_t, uint32_t
[platform/core/uifw/dali-core.git] / dali / public-api / math / vector3.h
index b813336..1a98005 100644 (file)
@@ -2,7 +2,7 @@
 #define __DALI_VECTOR_3_H__
 
 /*
- * Copyright (c) 2015 Samsung Electronics Co., Ltd.
+ * Copyright (c) 2018 Samsung Electronics Co., Ltd.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -19,6 +19,7 @@
  */
 
 // EXTERNAL INCLUDES
+#include <cstdint> // uint32_t
 #include <iosfwd>
 
 // INTERNAL INCLUDES
@@ -40,7 +41,7 @@ class Quaternion;
  * @brief A three dimensional vector.
  * @SINCE_1_0.0
  */
-struct DALI_IMPORT_API Vector3
+struct DALI_CORE_API Vector3
 {
 // Construction
 
@@ -340,7 +341,7 @@ struct DALI_IMPORT_API Vector3
    * @brief Unary negation operator.
    *
    * @SINCE_1_0.0
-   * @return A vector containg the negation
+   * @return A vector containing the negation
    */
   Vector3 operator-() const
   {
@@ -382,7 +383,7 @@ struct DALI_IMPORT_API Vector3
    * @param[in] index Subscript index
    * @return The float at the given index
    */
-  const float& operator[](const unsigned int index) const
+  const float& operator[](const uint32_t index) const
   {
     DALI_ASSERT_ALWAYS( index < 3 && "Vector element index out of bounds" );
 
@@ -397,7 +398,7 @@ struct DALI_IMPORT_API Vector3
    * @param[in] index Subscript index
    * @return The float at the given index
    */
-  float& operator[](const unsigned int index)
+  float& operator[](const uint32_t index)
   {
     DALI_ASSERT_ALWAYS( index < 3 && "Vector element index out of bounds" );
 
@@ -558,7 +559,7 @@ struct DALI_IMPORT_API Vector3
  * @param[in] vector The vector to print
  * @return The output stream operator
  */
-DALI_IMPORT_API std::ostream& operator<< (std::ostream& o, const Vector3& vector);
+DALI_CORE_API std::ostream& operator<< (std::ostream& o, const Vector3& vector);
 
 /**
  * @brief Returns a vector with components set to the minimum of the corresponding component in a and b.
@@ -601,7 +602,7 @@ inline Vector3 Max( const Vector3& a, const Vector3& b )
  * @param[in] max The maximum value
  * @return A vector containing the clamped components of v
  */
-DALI_IMPORT_API Vector3 Clamp( const Vector3& v, const float& min, const float& max );
+DALI_CORE_API Vector3 Clamp( const Vector3& v, const float& min, const float& max );
 
 // Allow Vector3 to be treated as a POD type
 template <> struct TypeTraits< Vector3 > : public BasicTypes< Vector3 > { enum { IS_TRIVIAL_TYPE = true }; };