src/gl/common.h

changeset 35
98906a94732f
parent 34
1de2b8d64e9f
child 37
90443fb328ea
equal deleted inserted replaced
34:1de2b8d64e9f 35:98906a94732f
45 Quadrilateral, 45 Quadrilateral,
46 ConditionalEdge 46 ConditionalEdge
47 }; 47 };
48 Type type; 48 Type type;
49 glm::vec3 vertices[4]; 49 glm::vec3 vertices[4];
50 Color color; 50 ldraw::Color color;
51 linetypes::Id id; 51 ldraw::Id id;
52 52
53 /** 53 /**
54 * @return amount of vertices used for geometry 54 * @return amount of vertices used for geometry
55 */ 55 */
56 inline unsigned int numPolygonVertices() const 56 inline unsigned int numPolygonVertices() const
82 82
83 Q_DECLARE_METATYPE(gl::Polygon) 83 Q_DECLARE_METATYPE(gl::Polygon)
84 84
85 namespace gl 85 namespace gl
86 { 86 {
87 inline Polygon edgeLine(const glm::vec3& v_1, const glm::vec3& v_2, Color color, linetypes::Id id) 87 inline Polygon edgeLine(const glm::vec3& v_1, const glm::vec3& v_2, ldraw::Color color, ldraw::Id id)
88 { 88 {
89 return {Polygon::EdgeLine, {v_1, v_2}, color, id}; 89 return {Polygon::EdgeLine, {v_1, v_2}, color, id};
90 } 90 }
91 91
92 inline Polygon triangle( 92 inline Polygon triangle(
93 const glm::vec3& v_1, 93 const glm::vec3& v_1,
94 const glm::vec3& v_2, 94 const glm::vec3& v_2,
95 const glm::vec3& v_3, 95 const glm::vec3& v_3,
96 Color color, 96 ldraw::Color color,
97 linetypes::Id id) 97 ldraw::Id id)
98 { 98 {
99 return {Polygon::Triangle, {v_1, v_2, v_3}, color, id}; 99 return {Polygon::Triangle, {v_1, v_2, v_3}, color, id};
100 } 100 }
101 101
102 inline Polygon quadrilateral( 102 inline Polygon quadrilateral(
103 const glm::vec3& v_1, 103 const glm::vec3& v_1,
104 const glm::vec3& v_2, 104 const glm::vec3& v_2,
105 const glm::vec3& v_3, 105 const glm::vec3& v_3,
106 const glm::vec3& v_4, 106 const glm::vec3& v_4,
107 Color color, 107 ldraw::Color color,
108 linetypes::Id id) 108 ldraw::Id id)
109 { 109 {
110 return {Polygon::Quadrilateral, {v_1, v_2, v_3, v_4}, color, id}; 110 return {Polygon::Quadrilateral, {v_1, v_2, v_3, v_4}, color, id};
111 } 111 }
112 112
113 inline Polygon conditionalEdge( 113 inline Polygon conditionalEdge(
114 const glm::vec3& v_1, 114 const glm::vec3& v_1,
115 const glm::vec3& v_2, 115 const glm::vec3& v_2,
116 const glm::vec3& control_1, 116 const glm::vec3& control_1,
117 const glm::vec3& control_2, 117 const glm::vec3& control_2,
118 Color color, 118 ldraw::Color color,
119 linetypes::Id id) 119 ldraw::Id id)
120 { 120 {
121 return {Polygon::ConditionalEdge, {v_1, v_2, control_1, control_2}, color, id}; 121 return {Polygon::ConditionalEdge, {v_1, v_2, control_1, control_2}, color, id};
122 } 122 }
123 123
124 // Vbo names 124 // Vbo names
127 Lines, 127 Lines,
128 Triangles, 128 Triangles,
129 Quads, 129 Quads,
130 ConditionalLines 130 ConditionalLines
131 }; 131 };
132
132 constexpr ArrayClass ARRAY_CLASSES[] = {ArrayClass::Lines, ArrayClass::Triangles, ArrayClass::Quads, ArrayClass::ConditionalLines}; 133 constexpr ArrayClass ARRAY_CLASSES[] = {ArrayClass::Lines, ArrayClass::Triangles, ArrayClass::Quads, ArrayClass::ConditionalLines};
133 constexpr int NUM_ARRAY_CLASSES = countof(ARRAY_CLASSES); 134 constexpr int NUM_ARRAY_CLASSES = countof(ARRAY_CLASSES);
134 constexpr int FLOATS_PER_VERTEX = 7; 135 constexpr int FLOATS_PER_VERTEX = 7;
135 136
136 enum class RenderStyle 137 enum class RenderStyle

mercurial