parent
b8f30c5ad3
commit
5474e33d08
2 changed files with 0 additions and 317 deletions
@ -1,147 +0,0 @@ |
|||||||
|
|
||||||
__author__ = "eloraiby" |
|
||||||
__date__ = "$5-Sep-2010 9:35:29 PM$" |
|
||||||
|
|
||||||
atomic_types = ["unsigned char", "unsigned short", "unsigned int", |
|
||||||
"signed char", "signed short", "signed int", |
|
||||||
"float", "double"] |
|
||||||
|
|
||||||
|
|
||||||
glsl_vector_types = ["tvec2", "tvec3", "tvec4"] |
|
||||||
glsl_matrix_types = ["tmat2x2", "tmat2x3", "tmat2x4", |
|
||||||
"tmat3x2", "tmat3x3", "tmat3x4", |
|
||||||
"tmat4x2", "tmat4x3", "tmat4x4"] |
|
||||||
|
|
||||||
glsl_matrix_member_operators = ["+=", "-=", "*=", "/="] |
|
||||||
glsl_matrix_out_op_dic = { |
|
||||||
"tmat2x2":"tmat2x2", |
|
||||||
"tmat2x3":"tmat3x3", |
|
||||||
"tmat2x4":"tmat4x4", |
|
||||||
"tmat3x2":"tmat2x2", |
|
||||||
"tmat3x3":"tmat3x3", |
|
||||||
"tmat3x4":"tmat4x4", |
|
||||||
"tmat4x2":"tmat2x2", |
|
||||||
"tmat4x3":"tmat3x3", |
|
||||||
"tmat4x4":"tmat4x4", |
|
||||||
} |
|
||||||
|
|
||||||
glsl_matrix_right_op_dic = { |
|
||||||
"tmat2x2":"tmat2x2", |
|
||||||
"tmat2x3":"tmat3x2", |
|
||||||
"tmat2x4":"tmat4x2", |
|
||||||
"tmat3x2":"tmat2x3", |
|
||||||
"tmat3x3":"tmat3x3", |
|
||||||
"tmat3x4":"tmat4x3", |
|
||||||
"tmat4x2":"tmat2x4", |
|
||||||
"tmat4x3":"tmat3x4", |
|
||||||
"tmat4x4":"tmat4x4", |
|
||||||
} |
|
||||||
def gen_vectors(): |
|
||||||
for v in glsl_vector_types: |
|
||||||
print |
|
||||||
print "//" |
|
||||||
print "// " + v + " type explicit instantiation" |
|
||||||
print "//" |
|
||||||
for a in atomic_types: |
|
||||||
print "template struct " + v + "<" + a + ">;" |
|
||||||
print |
|
||||||
|
|
||||||
def gen_matrices_member_operators(): |
|
||||||
for m in glsl_matrix_types: |
|
||||||
print |
|
||||||
print "//" |
|
||||||
print "// " + m + " type member operator instantiation" |
|
||||||
print "//" |
|
||||||
for a in atomic_types: |
|
||||||
#print "template " + m + "<" + a + ">::col_type;" |
|
||||||
#print "template " + m + "<" + a + ">::row_type;" |
|
||||||
|
|
||||||
for c in atomic_types: |
|
||||||
if a != c: |
|
||||||
print "template " + m + "<" + a + ">::" + m + "(" + m + "<" + c + "> const &m);" |
|
||||||
|
|
||||||
"""for b in glsl_matrix_member_operators: |
|
||||||
for cm in atomic_types: |
|
||||||
print "template " + m + "<" + a + ">& " + m + "<" + a + ">::operator " + b + "( " + m + "<" + cm + "> const &m);" |
|
||||||
print "template " + m + "<" + a + ">& " + m + "<" + a + ">::operator " + b + "( " + cm + " const &s);" |
|
||||||
|
|
||||||
""" |
|
||||||
print |
|
||||||
print "//" |
|
||||||
print "// Binary operators" |
|
||||||
print "//" |
|
||||||
print "template " + m + "<" + a + "> operator + (" + m + "<" + a + "> const &m, " + a + " const &s);" |
|
||||||
if m == "tmat2x2" or m == "tmat3x3" or m == "tmat4x4": |
|
||||||
print "template " + m + "<" + a + "> operator + (" + a + " const &s, " + m + "<" + a + "> const &m);" |
|
||||||
print "template " + m + "<" + a + "> operator + (" + m + "<" + a + "> const &m1, " + m + "<" + a + "> const &m2);" |
|
||||||
|
|
||||||
print "template " + m + "<" + a + "> operator - (" + m + "<" + a + "> const &m, " + a + " const &s);" |
|
||||||
if m == "tmat2x2" or m == "tmat3x3" or m == "tmat4x4": |
|
||||||
print "template " + m + "<" + a + "> operator - (" + a + " const &s, " + m + "<" + a + "> const &m);" |
|
||||||
print "template " + m + "<" + a + "> operator - (" + m + "<" + a + "> const &m1, " + m + "<" + a + "> const &m2);" |
|
||||||
|
|
||||||
out_op = glsl_matrix_out_op_dic[m] |
|
||||||
right_op = glsl_matrix_right_op_dic[m] |
|
||||||
|
|
||||||
print "template " + m + "<" + a + "> operator * (" + m + "<" + a + "> const &m, " + a + " const &s);" |
|
||||||
if m == "tmat2x2" or m == "tmat3x3" or m == "tmat4x4": |
|
||||||
print "template " + m + "<" + a + "> operator * ( " + a + " const &s, " + m + "<" + a + "> const &m);" |
|
||||||
print "template " + out_op + "<" + a + "> operator * (" + m + "<" + a + "> const &m1, " + right_op + "<" + a + "> const &m2);" |
|
||||||
print "template " + m + "<" + a + ">::col_type" + " operator * ( " + m + "<" + a + "> const &m, " + m + "<" + a + ">::row_type" + " const &s);" |
|
||||||
print "template " + m + "<" + a + ">::row_type" + " operator * ( " + m + "<" + a + ">::col_type const &s, " + m + "<" + a + "> const &m);" |
|
||||||
|
|
||||||
print "template " + m + "<" + a + "> operator / (" + m + "<" + a + "> const &m, " + a + " const &s);" |
|
||||||
#print "template " + right_op + "<" + a + "> operator / ( " + a + " const &s, " + m + "<" + a + "> const &m);" |
|
||||||
|
|
||||||
if m == "tmat2x2" or m == "tmat3x3" or m == "tmat4x4": |
|
||||||
print "template " + m + "<" + a + "> operator / ( " + a + " const &s, " + m + "<" + a + "> const &m);" |
|
||||||
#print "template " + m + "<" + a + "> operator / (" + m + "<" + a + "> const &m1, " + m + "<" + a + "> const &m2);" |
|
||||||
else: |
|
||||||
print "template " + m + "<" + a + "> operator / ( " + a + " const &s, " + m + "<" + a + "> const &m);" |
|
||||||
|
|
||||||
#print "template " + m + "<" + a + ">" + " operator / ( " + m + "<" + a + "> const &m, " + a + " const &s);" |
|
||||||
#print "template " + m + "<" + a + ">" + " operator / ( " + a + " const &s, " + m + "<" + a + "> const &m);" |
|
||||||
|
|
||||||
print |
|
||||||
print "//" |
|
||||||
print "// Unary constant operators" |
|
||||||
print "//" |
|
||||||
print "template " + m + "<" + a + "> const operator -(" + m + "<" + a + "> const &m);" |
|
||||||
print "template " + m + "<" + a + "> const operator --(" + m + "<" + a + "> const &m, int);" |
|
||||||
print "template " + m + "<" + a + "> const operator ++(" + m + "<" + a + "> const &m, int);" |
|
||||||
|
|
||||||
print |
|
||||||
|
|
||||||
def gen_matrices(): |
|
||||||
for m in glsl_matrix_types: |
|
||||||
print |
|
||||||
print "//" |
|
||||||
print "// " + m + " type explicit instantiation" |
|
||||||
print "//" |
|
||||||
for a in atomic_types: |
|
||||||
print "template struct " + m + "<" + a + ">;" |
|
||||||
print |
|
||||||
|
|
||||||
if __name__ == "__main__": |
|
||||||
print "//" |
|
||||||
print "// GLM External templates generator script version 0.1 for GLM core" |
|
||||||
print "//" |
|
||||||
print "// atomic types:", atomic_types |
|
||||||
print "// GLSL vector types:", glsl_vector_types; |
|
||||||
print "// GLSL matrix types:", glsl_matrix_types; |
|
||||||
print "//" |
|
||||||
print |
|
||||||
print "#include <glm/glm.hpp>" |
|
||||||
print |
|
||||||
print "namespace glm {" |
|
||||||
print "namespace detail {" |
|
||||||
|
|
||||||
|
|
||||||
gen_vectors() |
|
||||||
gen_matrices() |
|
||||||
gen_matrices_member_operators() |
|
||||||
|
|
||||||
print "} // namespace detail" |
|
||||||
print "} // namespace glm" |
|
||||||
|
|
||||||
|
|
@ -1,170 +0,0 @@ |
|||||||
//
|
|
||||||
// GLM External templates generator script version 0.1 for GLM core
|
|
||||||
//
|
|
||||||
// atomic types: ['unsigned char', 'unsigned short', 'unsigned int', 'signed char', 'signed short', 'signed int', 'float', 'double']
|
|
||||||
// GLSL vector types: ['tvec2', 'tvec3', 'tvec4']
|
|
||||||
// GLSL matrix types: ['tmat2x2', 'tmat2x3', 'tmat2x4', 'tmat3x2', 'tmat3x3', 'tmat3x4', 'tmat4x2', 'tmat4x3', 'tmat4x4']
|
|
||||||
//
|
|
||||||
|
|
||||||
#include <glm/glm.hpp> |
|
||||||
|
|
||||||
namespace glm { |
|
||||||
namespace detail { |
|
||||||
|
|
||||||
//
|
|
||||||
// tvec2 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tvec2<unsigned char>; |
|
||||||
template struct tvec2<unsigned short>; |
|
||||||
template struct tvec2<unsigned int>; |
|
||||||
template struct tvec2<signed char>; |
|
||||||
template struct tvec2<signed short>; |
|
||||||
template struct tvec2<signed int>; |
|
||||||
template struct tvec2<float>; |
|
||||||
template struct tvec2<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tvec3 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tvec3<unsigned char>; |
|
||||||
template struct tvec3<unsigned short>; |
|
||||||
template struct tvec3<unsigned int>; |
|
||||||
template struct tvec3<signed char>; |
|
||||||
template struct tvec3<signed short>; |
|
||||||
template struct tvec3<signed int>; |
|
||||||
template struct tvec3<float>; |
|
||||||
template struct tvec3<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tvec4 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tvec4<unsigned char>; |
|
||||||
template struct tvec4<unsigned short>; |
|
||||||
template struct tvec4<unsigned int>; |
|
||||||
template struct tvec4<signed char>; |
|
||||||
template struct tvec4<signed short>; |
|
||||||
template struct tvec4<signed int>; |
|
||||||
template struct tvec4<float>; |
|
||||||
template struct tvec4<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat2x2 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat2x2<unsigned char>; |
|
||||||
template struct tmat2x2<unsigned short>; |
|
||||||
template struct tmat2x2<unsigned int>; |
|
||||||
template struct tmat2x2<signed char>; |
|
||||||
template struct tmat2x2<signed short>; |
|
||||||
template struct tmat2x2<signed int>; |
|
||||||
template struct tmat2x2<float>; |
|
||||||
template struct tmat2x2<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat2x3 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat2x3<unsigned char>; |
|
||||||
template struct tmat2x3<unsigned short>; |
|
||||||
template struct tmat2x3<unsigned int>; |
|
||||||
template struct tmat2x3<signed char>; |
|
||||||
template struct tmat2x3<signed short>; |
|
||||||
template struct tmat2x3<signed int>; |
|
||||||
template struct tmat2x3<float>; |
|
||||||
template struct tmat2x3<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat2x4 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat2x4<unsigned char>; |
|
||||||
template struct tmat2x4<unsigned short>; |
|
||||||
template struct tmat2x4<unsigned int>; |
|
||||||
template struct tmat2x4<signed char>; |
|
||||||
template struct tmat2x4<signed short>; |
|
||||||
template struct tmat2x4<signed int>; |
|
||||||
template struct tmat2x4<float>; |
|
||||||
template struct tmat2x4<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat3x2 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat3x2<unsigned char>; |
|
||||||
template struct tmat3x2<unsigned short>; |
|
||||||
template struct tmat3x2<unsigned int>; |
|
||||||
template struct tmat3x2<signed char>; |
|
||||||
template struct tmat3x2<signed short>; |
|
||||||
template struct tmat3x2<signed int>; |
|
||||||
template struct tmat3x2<float>; |
|
||||||
template struct tmat3x2<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat3x3 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat3x3<unsigned char>; |
|
||||||
template struct tmat3x3<unsigned short>; |
|
||||||
template struct tmat3x3<unsigned int>; |
|
||||||
template struct tmat3x3<signed char>; |
|
||||||
template struct tmat3x3<signed short>; |
|
||||||
template struct tmat3x3<signed int>; |
|
||||||
template struct tmat3x3<float>; |
|
||||||
template struct tmat3x3<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat3x4 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat3x4<unsigned char>; |
|
||||||
template struct tmat3x4<unsigned short>; |
|
||||||
template struct tmat3x4<unsigned int>; |
|
||||||
template struct tmat3x4<signed char>; |
|
||||||
template struct tmat3x4<signed short>; |
|
||||||
template struct tmat3x4<signed int>; |
|
||||||
template struct tmat3x4<float>; |
|
||||||
template struct tmat3x4<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat4x2 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat4x2<unsigned char>; |
|
||||||
template struct tmat4x2<unsigned short>; |
|
||||||
template struct tmat4x2<unsigned int>; |
|
||||||
template struct tmat4x2<signed char>; |
|
||||||
template struct tmat4x2<signed short>; |
|
||||||
template struct tmat4x2<signed int>; |
|
||||||
template struct tmat4x2<float>; |
|
||||||
template struct tmat4x2<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat4x3 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat4x3<unsigned char>; |
|
||||||
template struct tmat4x3<unsigned short>; |
|
||||||
template struct tmat4x3<unsigned int>; |
|
||||||
template struct tmat4x3<signed char>; |
|
||||||
template struct tmat4x3<signed short>; |
|
||||||
template struct tmat4x3<signed int>; |
|
||||||
template struct tmat4x3<float>; |
|
||||||
template struct tmat4x3<double>; |
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// tmat4x4 type explicit instantiation
|
|
||||||
//
|
|
||||||
template struct tmat4x4<unsigned char>; |
|
||||||
template struct tmat4x4<unsigned short>; |
|
||||||
template struct tmat4x4<unsigned int>; |
|
||||||
template struct tmat4x4<signed char>; |
|
||||||
template struct tmat4x4<signed short>; |
|
||||||
template struct tmat4x4<signed int>; |
|
||||||
template struct tmat4x4<float>; |
|
||||||
template struct tmat4x4<double>; |
|
||||||
|
|
||||||
} // namespace detail
|
|
||||||
} // namespace glm
|
|
Loading…
Reference in New Issue