Exemplo n.º 1
0
    def __init__(\
        self,\
        load_obj,\
        block,\
        full_init = True,\
        tri = False,\
        egm = False\
    ):
        self.lno = load_obj
        self.data = self.lno.data
        self.tri = tri
        self.egm = egm
        self.nmv_doubles = set()
        self.bone_update_dict = {}
    
        if tri:
            self.niData = self.data
            self.verts = dict([(idx, vertex(idx, vert, self)) for idx, vert in enumerate(self.data.vertices)])
            self.init_faces()
            self.mat = matrix3x3()
            self.mat_i = matrix3x3()
            #print(self.verts)
            return
        if egm:
            return
        
        self.root_blocks = load_obj.root_blocks
        self.block = block
        self.textures = self.getTextures()
        self.material = self.getMaterial()
        self.niData = block.data
        self.verts = dict([(idx, vertex(idx, vert, self)) for idx, vert in enumerate(self.niData.vertices)])
        self.mat = self.block.get_transform()
        self.mat_i = self.mat.get_inverse()
        self.nmv_verts = {}
        self.init = full_init

        self.partition_map_ = None
        self.triangles_ = None
        self.skin = self.block.skin_instance
        if self.skin:
            if isinstance(self.skin, NifFormat.BSDismemberSkinInstance):
                self.triangles_, self.partition_map_ = (self.skin.get_dismember_partitions())
                #print(self.triangles_)
                #print(self.partition_map_)
        if self.skin.data:
            self.skin_transform = extractTransform(self.skin.data.skin_transform)
            self.skin_type = type(self.skin)
        """initialize UV Information"""
        self.uv_sets = self.niData.uv_sets
            
        if self.init:
            self.initDoubles()
            self.init_faces()
            if self.uv_sets:
                self.initUV()
            print ('initializing bones')
            self.initBones()
        else:
            """initialize Faces and Find NMV Vertices"""
            self.init_faces()
Exemplo n.º 2
0
global sphereKeyDict
global sphereValues
global sphereBloomValues
global circleValues
global circleKeyDict
global circleBloomValues

sphereKeyDict = {}
sphereValues = {}
sphereBloomValues = {}
circleValues = {}
circleKeyDict = {}
circleBloomValues = {}

identity_matrix = matrix3x3()

def NormalizeInfluence(influence_list):

    if not influence_list:
        return influence_list

    influence_sum = sum([influence for vert, influence in influence_list])

    if not influence_sum:
        norm_factor = 1.0 / float(len(influence_list))
        influence_list = [(vert, norm_factor) for vert, influence in list(influence_list)]

    else:
        norm_factor = 1.0 / float(influence_sum)
        influence_list = [(vert, influence * norm_factor) for vert, influence in list(influence_list)]