コード例 #1
0
 def slice(self):
     self.clear_draw()
     
     self.get_pt_and_no()
     
     mx = self.snap_ob.matrix_world
     imx = mx.inverted()
     if bversion() < '002.077.000':
         pt, no, seed, dist = self.bvh.find(imx * self.cut_pt)
     else:
         pt, no, seed, dist = self.bvh.find_nearest(imx * self.cut_pt)
     
     verts_x, eds = cross_section_seed_ver1(self.bme, mx, self.cut_pt, self.cut_no_x, seed, max_tests = 100)
     verts_y, eds = cross_section_seed_ver1(self.bme, mx, self.cut_pt, self.cut_no_y, seed, max_tests = 100)
     #put them in world space
     self.slice_points_x = [mx*v for v in verts_x]
     self.slice_points_y = [mx*v for v in verts_y]
 
     bmx = self.bracket_data.bracket_obj.matrix_world
     bracket_x = bmx.to_3x3()*Vector((1,0,0))
     bracket_y = bmx.to_3x3()*Vector((0,1,0))
     bracket_z = bmx.to_3x3()*Vector((0,0,1))
     
     v0 = self.cut_pt
     v1 = v0 + self.incisal_d * bracket_y
     v_l = v1 - 4 * bracket_z
     v_m = v1 + 2 * bracket_x
     v_d = v1 - 2 * bracket_x
     self.reference_L = [v0, v1, v_l, v_m, v_d]
コード例 #2
0
    def slice(self):
        self.clear_draw()

        self.get_pt_and_no()

        mx = self.snap_ob.matrix_world
        imx = mx.inverted()
        if bversion() < '002.077.000':
            pt, no, seed, dist = self.bvh.find(imx * self.cut_pt)
        else:
            pt, no, seed, dist = self.bvh.find_nearest(imx * self.cut_pt)

        verts_x, eds = cross_section_seed_ver1(self.bme,
                                               mx,
                                               self.cut_pt,
                                               self.cut_no_x,
                                               seed,
                                               max_tests=100)
        verts_y, eds = cross_section_seed_ver1(self.bme,
                                               mx,
                                               self.cut_pt,
                                               self.cut_no_y,
                                               seed,
                                               max_tests=100)
        #put them in world space

        if verts_x != None:
            self.slice_points_x = [mx * v for v in verts_x]
        else:
            self.slice_points_x = []
        if verts_y != None:
            self.slice_points_y = [mx * v for v in verts_y]
        else:
            self.slice_points_y = []

        bmx = self.bracket_data.bracket_obj.matrix_world
        bracket_x = bmx.to_3x3() * Vector((1, 0, 0))
        bracket_z = bmx.to_3x3() * Vector((0, 0, 1))
        bracket_y = bracket_z.cross(self.cut_no_x)

        v0 = self.cut_pt
        v1 = v0 + self.b_gauge * bracket_y
        v_l = v1 - 4 * bracket_z
        v_m = v1 + 2 * bracket_x
        v_d = v1 - 2 * bracket_x
        self.reference_L = [v0, v1, v_l, v_m, v_d]
コード例 #3
0
ファイル: margin.py プロジェクト: henrystewart/odc_public
 def slice(self):
     self.slice_points = []
     
     if len(self.crv_dat.b_pts) < 2 or self.crv_dat.selected == -1:
         return
     
     self.get_pt_and_no()
     
     mx = self.snap_ob.matrix_world
     imx = mx.inverted()
     pt, no, seed, dist = self.bvh.find(imx * self.cut_pt)
     
     verts, eds = cross_section_seed_ver1(self.bme, mx, self.cut_pt, self.cut_no, seed, max_tests = 40)
     
     #put them in world space
     self.slice_points = [mx*v for v in verts]
コード例 #4
0
ファイル: margin.py プロジェクト: digdendes/mnbvcxz
    def slice(self):
        self.slice_points = []

        if len(self.crv_dat.b_pts) < 2 or self.crv_dat.selected == -1:
            return

        self.get_pt_and_no()

        mx = self.snap_ob.matrix_world
        imx = mx.inverted()
        if bversion() < '002.077.000':
            pt, no, seed, dist = self.bvh.find(imx * self.cut_pt)
        else:
            pt, no, seed, dist = self.bvh.find_nearest(imx * self.cut_pt)

        verts, eds = cross_section_seed_ver1(self.bme,
                                             mx,
                                             self.cut_pt,
                                             self.cut_no,
                                             seed,
                                             max_tests=40)

        #put them in world space
        self.slice_points = [mx * v for v in verts]