# Path: e3d/model_management/MaterialClass.py
# class ShaderProperty:
#     def __init__(self, nameInShader, val):
#         self.nameInShader = nameInShader
#         self._val = val
# 
#     def getVal(self):
#         pass


from collections import OrderedDict, defaultdict
from abc import ABCMeta
from cycgkit.cgtypes import vec3, vec4
from e3d.model_management.MaterialClass import ShaderProperty
    shader._reportInactive = ori


def _setObjectUniforms(shader, params):
    """

    @type shader: Shader
    """
    paramsList = []
    ori = shader._reportInactive
    shader._reportInactive = False

    paramsList.append(("Model", params.model))
    paramsList.append(("ModelView", params.ModelView))
    paramsList.append(("ModelViewProjection", params.ModelViewProjection))
    paramsList.append(("ModelProjection", params.ModelProjection))
    paramsList.append(("ModelInverse", params.ModelInverse))
    paramsList.append(("ModelInverseTranspose", params.ModelInverseTranspose))
    paramsList.append(("ModelViewInverse", params.ModelViewInverse))
    paramsList.append(("ModelViewInverseTranspose", params.ModelViewInverseTranspose))
    paramsList.append(("NormalMatrix", params.NormalMatrix))
    paramsList.append(("HasBones", params.hasBones))

    shader.setUniformsList(paramsList)
    shader._reportInactive = ori


def _setMaterialShaderProperties(shader, props):
    paramsList = []
    for p in props:

# Path: e3d/model_management/MaterialClass.py
# class ShaderProperty:
#     def __init__(self, nameInShader, val):
#         self.nameInShader = nameInShader
#         self._val = val
# 
#     def getVal(self):
#         pass


# Path: e3d/backends/base_backend.py
from collections import OrderedDict, defaultdict
from abc import ABCMeta
from cycgkit.cgtypes import vec3, vec4
from e3d.model_management.MaterialClass import ShaderProperty

    shader._reportInactive = ori


def _setObjectUniforms(shader, params):
    """

    @type shader: Shader
    """
    paramsList = []
    ori = shader._reportInactive
    shader._reportInactive = False

    paramsList.append(("Model", params.model))
    paramsList.append(("ModelView", params.ModelView))
    paramsList.append(("ModelViewProjection", params.ModelViewProjection))
    paramsList.append(("ModelProjection", params.ModelProjection))
    paramsList.append(("ModelInverse", params.ModelInverse))
    paramsList.append(("ModelInverseTranspose", params.ModelInverseTranspose))
    paramsList.append(("ModelViewInverse", params.ModelViewInverse))
    paramsList.append(("ModelViewInverseTranspose", params.ModelViewInverseTranspose))
    paramsList.append(("NormalMatrix", params.NormalMatrix))
    paramsList.append(("HasBones", params.hasBones))

    shader.setUniformsList(paramsList)
    shader._reportInactive = ori


def _setMaterialShaderProperties(shader, props):
    paramsList = []
    for p in props:

        assert isinstance(p, ShaderProperty)