00001 /*************************************************************************** 00002 vertex.h - Basic vertex types 00003 ------------------- 00004 begin : Thu Jul 31 2003 00005 copyright : (C) 2003 by Reality Rift Studios 00006 email : mattias@realityrift.com 00007 *************************************************************************** 00008 00009 The contents of this file are subject to the Mozilla Public License Version 00010 1.1 (the "License"); you may not use this file except in compliance with 00011 the License. You may obtain a copy of the License at 00012 http://www.mozilla.org/MPL/ 00013 00014 Software distributed under the License is distributed on an "AS IS" basis, 00015 WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License 00016 for the specific language governing rights and limitations under the 00017 License. 00018 00019 The Original Code is the NeoEngine, vertex.h 00020 00021 The Initial Developer of the Original Code is Mattias Jansson. 00022 Portions created by Mattias Jansson are Copyright (C) 2003 00023 Reality Rift Studios. All Rights Reserved. 00024 00025 ***************************************************************************/ 00026 00027 #ifndef __NEVERTEX_H 00028 #define __NEVERTEX_H 00029 00030 #include "base.h" 00031 #include "nemath.h" 00032 #include "color.h" 00033 #include "vertexdecl.h" 00034 00035 00036 00043 namespace NeoEngine 00044 { 00045 00046 00047 00048 00053 class NEOENGINE_API Vertex 00054 { 00055 public: 00056 00058 Vector3d m_kPosition; 00059 00060 00062 static VertexDeclaration s_kDecl; 00063 }; 00064 00065 00066 00071 class NEOENGINE_API NormalVertex 00072 { 00073 public: 00074 00076 Vector3d m_kPosition; 00077 00079 Vector3d m_kNormal; 00080 00081 00083 static VertexDeclaration s_kDecl; 00084 }; 00085 00086 00087 00092 class NEOENGINE_API DiffuseVertex 00093 { 00094 public: 00095 00097 Vector3d m_kPosition; 00098 00100 Color32 m_kColor; 00101 00102 00104 static VertexDeclaration s_kDecl; 00105 }; 00106 00107 00108 00113 class NEOENGINE_API TexVertex 00114 { 00115 public: 00116 00118 Vector3d m_kPosition; 00119 00121 float m_afTexCoord[2]; 00122 00123 00125 static VertexDeclaration s_kDecl; 00126 }; 00127 00128 00129 00134 class NEOENGINE_API NormalDiffuseVertex 00135 { 00136 public: 00137 00139 Vector3d m_kPosition; 00140 00142 Vector3d m_kNormal; 00143 00145 Color32 m_kColor; 00146 00147 00149 static VertexDeclaration s_kDecl; 00150 }; 00151 00152 00153 00158 class NEOENGINE_API NormalTexVertex 00159 { 00160 public: 00161 00163 Vector3d m_kPosition; 00164 00166 Vector3d m_kNormal; 00167 00169 float m_afTexCoord[2]; 00170 00171 00173 static VertexDeclaration s_kDecl; 00174 }; 00175 00176 00177 00182 class NEOENGINE_API DiffuseTexVertex 00183 { 00184 public: 00185 00187 Vector3d m_kPosition; 00188 00190 Color32 m_kColor; 00191 00193 float m_afTexCoord[2]; 00194 00195 00197 static VertexDeclaration s_kDecl; 00198 }; 00199 00200 00201 00206 class NEOENGINE_API NormalDiffuseTexVertex 00207 { 00208 public: 00209 00211 Vector3d m_kPosition; 00212 00214 Vector3d m_kNormal; 00215 00217 Color32 m_kColor; 00218 00220 float m_afTexCoord[2]; 00221 00222 00224 static VertexDeclaration s_kDecl; 00225 }; 00226 00227 00228 }; // namespace NeoEngine 00229 00230 00231 #endif // __NEVERTEX_H