def addShaderAttributes(self, shaderFunc): """ adds a per vertex shader attribute. """ ModelSegment.addShaderAttributes(self, shaderFunc) if self.hasCol(): shaderFunc.addAttribute(type="vec4", name="vertexColor") if self.hasOrco(): shaderFunc.addAttribute(type="vec2", name="vertexUV") if self.hasNor(): shaderFunc.addAttribute(type="vec3", name="vertexNormal")
def __init__(self, name, params): # remember duplicated vertices for animation purpose self.duplicatedIndexes = {} # Note: vertex data here maybe deleted later (after create) to save some ram self.vertices = params['cos'] conf = params.get('verticesConf') if conf!=None and conf.dynamic: self.dynamicVertices = True else: self.dynamicVertices = False self.normals = params.get('nos', None) conf = params.get('normalsConf') if conf!=None and conf.dynamic: self.dynamicNormals = True else: self.dynamicNormals = False self.uvs = params.get('uvco') conf = params.get('uvsConf') if conf!=None and conf.dynamic: self.dynamicUvs = True else: self.dynamicUvs = False self.colors = params.get('cols') conf = params.get('colorsConf') if conf!=None and conf.dynamic: self.dynamicColors = True else: self.dynamicColors = False self.numVertices = len(self.vertices.data) # num of vertices may change, # display lists may need lists with vertices added # multiple times. self.numInitialVertices = self.numVertices ModelSegment.__init__(self, name, params)