Pioneer
LoaderDefinitions.h
Go to the documentation of this file.
1 // Copyright © 2008-2023 Pioneer Developers. See AUTHORS.txt for details
2 // Licensed under the terms of the GPL v3. See licenses/GPL-3.txt
3 
4 #ifndef _LOADERDEFINITIONS_H_
5 #define _LOADERDEFINITIONS_H_
6 /*
7  * Data strcutrures used by Loader
8  */
9 #include "libs.h"
10 namespace SceneGraph {
11 
13  MaterialDefinition(const std::string &n) :
14  name(n),
15  tex_diff(""),
16  tex_spec(""),
17  tex_glow(""),
18  tex_ambi(""),
19  tex_norm(""),
20  diffuse(Color::WHITE),
21  specular(Color::WHITE),
22  ambient(Color::BLANK),
23  emissive(Color::BLANK),
24  shininess(100),
25  opacity(100),
26  alpha_test(false),
27  unlit(false),
28  use_pattern(false)
29  {}
30  std::string name;
31  std::string tex_diff;
32  std::string tex_spec;
33  std::string tex_glow;
34  std::string tex_ambi;
35  std::string tex_norm;
40  unsigned int shininess; //specular power, 0-128
41  unsigned int opacity; //0-100
42  bool alpha_test;
43  bool unlit;
45  };
46 
47  struct LodDefinition {
48  LodDefinition(float size) :
49  pixelSize(size)
50  {}
51  float pixelSize;
52  std::vector<std::string> meshNames;
53  };
54 
55  struct AnimDefinition {
56  AnimDefinition(const std::string &name_, double start_, double end_, bool loop_) :
57  name(name_),
58  start(start_),
59  end(end_),
60  loop(loop_)
61  {}
62  std::string name;
63  double start;
64  double end;
65  bool loop;
66  };
67 
68  struct ModelDefinition {
69  std::string name;
70  std::vector<LodDefinition> lodDefs;
71  std::vector<MaterialDefinition> matDefs;
72  std::vector<std::string> collisionDefs;
73  std::vector<AnimDefinition> animDefs;
74  };
75 
76 } // namespace SceneGraph
77 
78 #endif
Definition: CityOnPlanet.h:31
Definition: Color.h:66
Definition: LoaderDefinitions.h:55
AnimDefinition(const std::string &name_, double start_, double end_, bool loop_)
Definition: LoaderDefinitions.h:56
bool loop
Definition: LoaderDefinitions.h:65
double end
Definition: LoaderDefinitions.h:64
double start
Definition: LoaderDefinitions.h:63
std::string name
Definition: LoaderDefinitions.h:62
Definition: LoaderDefinitions.h:47
LodDefinition(float size)
Definition: LoaderDefinitions.h:48
float pixelSize
Definition: LoaderDefinitions.h:51
std::vector< std::string > meshNames
Definition: LoaderDefinitions.h:52
Definition: LoaderDefinitions.h:12
bool use_pattern
Definition: LoaderDefinitions.h:44
Color specular
Definition: LoaderDefinitions.h:37
std::string tex_ambi
Definition: LoaderDefinitions.h:34
std::string name
Definition: LoaderDefinitions.h:30
std::string tex_glow
Definition: LoaderDefinitions.h:33
Color diffuse
Definition: LoaderDefinitions.h:36
unsigned int opacity
Definition: LoaderDefinitions.h:41
MaterialDefinition(const std::string &n)
Definition: LoaderDefinitions.h:13
unsigned int shininess
Definition: LoaderDefinitions.h:40
Color ambient
Definition: LoaderDefinitions.h:38
std::string tex_diff
Definition: LoaderDefinitions.h:31
std::string tex_spec
Definition: LoaderDefinitions.h:32
bool unlit
Definition: LoaderDefinitions.h:43
std::string tex_norm
Definition: LoaderDefinitions.h:35
Color emissive
Definition: LoaderDefinitions.h:39
bool alpha_test
Definition: LoaderDefinitions.h:42
Definition: LoaderDefinitions.h:68
std::vector< LodDefinition > lodDefs
Definition: LoaderDefinitions.h:70
std::vector< std::string > collisionDefs
Definition: LoaderDefinitions.h:72
std::vector< MaterialDefinition > matDefs
Definition: LoaderDefinitions.h:71
std::string name
Definition: LoaderDefinitions.h:69
std::vector< AnimDefinition > animDefs
Definition: LoaderDefinitions.h:73