コード例 #1
0
    def load_brushes_size(self):
        blend_files = common.get_files_from_directory(
            self.root_blend_files + self.model_name + "/", ['blend'], "snap")
        brush_sizes = []
        for file in blend_files:
            bpy.ops.wm.open_mainfile(filepath=file[0],
                                     filter_blender=True,
                                     filemode=8,
                                     display_type='FILE_DEFAULTDISPLAY',
                                     load_ui=False,
                                     use_scripts=True)
            try:
                if bpy.data.scenes["Scene"]:
                    brush_sizes.append([
                        bpy.data.scenes["Scene"].tool_settings.
                        unified_paint_settings.size, bpy.data.scenes["Scene"].
                        tool_settings.unified_paint_settings.unprojected_radius
                    ])
                else:
                    brush_sizes.append(brush_sizes[-1])
            except KeyError:
                print('modifier not found')
        for el in brush_sizes:
            print(el)

        bs_file = open("../steps/" + self.model_name + "/b_size", "wb+")
        pickle.dump(brush_sizes, bs_file)
        bs_file.close()
コード例 #2
0
ファイル: parseOBJ.py プロジェクト: schism-/sculpstat
def parse_dir(files_path):
    onlyfiles = common.get_files_from_directory(files_path, ['obj'])

    for file in onlyfiles:
        print(file)
        data = parse_single_obj(file[0])
        print(data)
        print()
コード例 #3
0
 def __init__(self,
              model_name,
              obj_path="../obj2_files/",
              steps_path="../steps/"):
     self.model_name = model_name
     self.obj_path = obj_path + self.model_name + "/"
     self.mesh_no = len(
         common.get_files_from_directory(self.obj_path, ["obj"],
                                         start_with="snap"))
     self.steps_path = steps_path
コード例 #4
0
ファイル: blendConverter.py プロジェクト: schism-/sculpstat
    def __init__(self,
                 blend_root_dir,
                 obj_root_dir,
                 model_name,
                 start,
                 stop,
                 basemesh_name,
                 mode="obj"):
        self.blend_files_path = blend_root_dir + model_name
        self.obj_files_path = obj_root_dir + model_name
        self.start = start
        self.stop = stop
        self.basemesh_name = basemesh_name
        self.mode = mode

        self.blend_files = common.get_files_from_directory(
            self.blend_files_path, ['blend'], "snap")
        self.blend_files.sort()
コード例 #5
0
def parse_dir(files_path):
    onlyfiles = common.get_files_from_directory(files_path, ['obj'])

    for file in onlyfiles:
        print(file)
        loadOBJModel(file[0], True)
コード例 #6
0
ファイル: compactData.py プロジェクト: schism-/sculpstat
def distance_compressing(model_name, single_file=False):
    '''

    Produces the JSON for the data on mesh distances between steps

    For every step, it saves:
        - distance mean;
        - distance variance;
        - distance skewness;
        - distance curtosis;

    '''
    if single_file:
        file_name = "../steps/" + model_name[0] + "/distance_data.txt"

        fh = open(file_name, 'r')

        i = 0
        distances = {}
        idx = 0
        for line in fh:
            if i % 2 == 0:
                idx = int(line)
            else:
                data = line.split(' ')
                data = [
                    float(el) for idx, el in enumerate(data) if idx % 2 == 1
                ]
                if data:
                    np_data = numpy.array(data)
                    distances[idx] = {}
                    distances[idx]["distance_mean"] = numpy.mean(np_data,
                                                                 axis=0)
                    distances[idx]["distance_variance"] = numpy.var(np_data,
                                                                    axis=0)
                    distances[idx]["distance_skewness"] = scs.skew(np_data,
                                                                   axis=0)
                    distances[idx]["distance_curtosis"] = scs.kurtosis(np_data,
                                                                       axis=0)
                else:
                    distances[idx] = {}
                    distances[idx]["distance_mean"] = None
                    distances[idx]["distance_variance"] = None
                    distances[idx]["distance_skewness"] = None
                    distances[idx]["distance_curtosis"] = None
            i += 1
        fh.close()
        common.save_json(distances,
                         "../steps/" + model_name[0] + "/distance_data.json",
                         compressed=False)
    else:
        dir_name = "../steps/" + model_name[0] + "/dist_data/"

        files = common.get_files_from_directory(dir_name)

        distances = {}
        for path, filename in files:
            step = int(filename[4:])
            fh = open(path, 'r')
            dists = []
            for line in fh:
                data = line.split(' ')
                dists.append(float(data[1].strip()))
            if dists:
                distances[step] = {}
                distances[step]["distance_mean"] = numpy.mean(dists, axis=0)
                distances[step]["distance_variance"] = numpy.var(dists, axis=0)
                distances[step]["distance_skewness"] = scs.skew(dists, axis=0)
                distances[step]["distance_curtosis"] = scs.kurtosis(dists,
                                                                    axis=0)
            else:
                distances[step] = {}
                distances[step]["distance_mean"] = None
                distances[step]["distance_variance"] = None
                distances[step]["distance_skewness"] = None
                distances[step]["distance_curtosis"] = None

        common.save_json(distances,
                         "../steps/" + model_name[0] + "/distance_data.json",
                         compressed=False)
コード例 #7
0
 def __init__(self, model_name):
     self.model_name = model_name
     self.root_blend_files = "/Volumes/PART FAT/3ddata/"
     self.blend_files = common.get_files_from_directory(self.root_blend_files + self.model_name + "/", ['blend'], "snap")
     self.blend_files.sort()