/* * Copyright (C) 2020 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ #ifndef MATH_MATHFWD_H_ #define MATH_MATHFWD_H_ #ifdef _MSC_VER // MSVC cannot compute the size of math types correctly when this file is included before the // actual implementations. // See github.com/google/filament/issues/2190. #include #include #include #include #include #include #else #include namespace filament { namespace math { namespace details { template class TVec2; template class TVec3; template class TVec4; template class TMat22; template class TMat33; template class TMat44; } // namespace details using double2 = details::TVec2; using float2 = details::TVec2; using int2 = details::TVec2; using uint2 = details::TVec2; using short2 = details::TVec2; using ushort2 = details::TVec2; using byte2 = details::TVec2; using ubyte2 = details::TVec2; using bool2 = details::TVec2; using double3 = details::TVec3; using float3 = details::TVec3; using int3 = details::TVec3; using uint3 = details::TVec3; using short3 = details::TVec3; using ushort3 = details::TVec3; using byte3 = details::TVec3; using ubyte3 = details::TVec3; using bool3 = details::TVec3; using double4 = details::TVec4; using float4 = details::TVec4; using int4 = details::TVec4; using uint4 = details::TVec4; using short4 = details::TVec4; using ushort4 = details::TVec4; using byte4 = details::TVec4; using ubyte4 = details::TVec4; using bool4 = details::TVec4; using mat2 = details::TMat22; using mat2f = details::TMat22; using mat3 = details::TMat33; using mat3f = details::TMat33; using mat4 = details::TMat44; using mat4f = details::TMat44; } // namespace math } // namespace filament #endif // _MSC_VER #endif // MATH_MATHFWD_H_