KiCad PCB EDA Suite
c3dmodel.h
Go to the documentation of this file.
1 /*
2  * This program source code file is part of KiCad, a free EDA CAD application.
3  *
4  * Copyright (C) 2015 Mario Luzeiro <mrluzeiro@ua.pt>
5  * Copyright (C) 1992-2015 KiCad Developers, see AUTHORS.txt for contributors.
6  *
7  * This program is free software; you can redistribute it and/or
8  * modify it under the terms of the GNU General Public License
9  * as published by the Free Software Foundation; either version 2
10  * of the License, or (at your option) any later version.
11  *
12  * This program is distributed in the hope that it will be useful,
13  * but WITHOUT ANY WARRANTY; without even the implied warranty of
14  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  * GNU General Public License for more details.
16  *
17  * You should have received a copy of the GNU General Public License
18  * along with this program; if not, you may find one here:
19  * http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
20  * or you may search the http://www.gnu.org website for the version 2 license,
21  * or you may write to the Free Software Foundation, Inc.,
22  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
23  */
24 
31 #ifndef C3DMODEL_H
32 #define C3DMODEL_H
33 
35 
36 
37 typedef struct
38 {
43  float m_Shininess; //
45 
46  // !TODO: to be implemented
47  /*struct textures
48  {
49  wxString m_Ambient; // map_Ka
50  wxString m_Diffuse; // map_Kd
51  wxString m_Specular; // map_Ks
52  wxString m_Specular_highlight; // map_Ns
53  wxString m_Bump; // map_bump, bump
54  wxString m_Displacement; // disp
55  wxString m_Alpha; // map_d
56  };*/
57 } SMATERIAL;
58 
59 
76 typedef struct
77 {
78  unsigned int m_VertexSize;
83  unsigned int m_FaceIdxSize;
84  unsigned int *m_FaceIdx;
85  unsigned int m_MaterialIdx;
86 } SMESH;
87 
88 
90 typedef struct
91 {
92  unsigned int m_MeshesSize;
94 
95  unsigned int m_MaterialsSize;
97 } S3DMODEL;
98 
99 #endif // C3DMODEL_H
SFVEC3F * m_Normals
Vertex normals array.
Definition: c3dmodel.h:80
SFVEC3F m_Ambient
Definition: c3dmodel.h:39
float m_Transparency
1.0 is completely transparent, 0.0 completely opaque
Definition: c3dmodel.h:44
SFVEC3F * m_Positions
Vertex position array.
Definition: c3dmodel.h:79
Per-vertex normal/color/texcoors structure.
Definition: c3dmodel.h:76
SMESH * m_Meshes
The meshes list of this model.
Definition: c3dmodel.h:93
unsigned int m_FaceIdxSize
Number of elements of the m_FaceIdx array.
Definition: c3dmodel.h:83
unsigned int m_VertexSize
Number of vertex in the arrays.
Definition: c3dmodel.h:78
glm::vec2 SFVEC2F
Definition: xv3d_types.h:45
SFVEC2F * m_Texcoords
Vertex texture coordinates array, can be NULL.
Definition: c3dmodel.h:81
SFVEC3F * m_Color
Vertex color array, can be NULL.
Definition: c3dmodel.h:82
float m_Shininess
Definition: c3dmodel.h:43
unsigned int m_MaterialsSize
Number of materials in the material array.
Definition: c3dmodel.h:95
SFVEC3F m_Emissive
Definition: c3dmodel.h:41
glm::vec3 SFVEC3F
Definition: xv3d_types.h:47
unsigned int m_MaterialIdx
Material Index to be used in this mesh (must be < m_MaterialsSize )
Definition: c3dmodel.h:85
SMATERIAL * m_Materials
The materials list of this model.
Definition: c3dmodel.h:96
SFVEC3F m_Diffuse
Default diffuse color if m_Color is NULL.
Definition: c3dmodel.h:40
Store the a model based on meshes and materials.
Definition: c3dmodel.h:90
unsigned int * m_FaceIdx
Triangle Face Indexes.
Definition: c3dmodel.h:84
unsigned int m_MeshesSize
Number of meshes in the array.
Definition: c3dmodel.h:92
SFVEC3F m_Specular
Definition: c3dmodel.h:42