Пример #1
0
    def new(self, pos, which_cur, pre_data=None, post_data=None):
        if which_cur == Curves.BEZIER_C0:
            self.selected = BezierC0(self.bz_points, self.bz_curves,
                                     self.bz_polygons)
        elif which_cur == Curves.BEZIER_C2:
            self.selected = BezierC2(self.bz_points, self.bz_curves,
                                     self.bz_polygons, self.bs_points,
                                     self.bs_curves, self.bs_polygons)
        elif which_cur == Curves.INTERPOLATION:
            self.selected = Interpolation()
        elif which_cur == Curves.SURFACE_C0:
            self.selected = SurfaceC0(pre_data, self.bz_points, self.bz_curves,
                                      self.bz_polygons)
        elif which_cur == Curves.SURFACE_C2:
            self.selected = SurfaceC2(pre_data, self.bz_points, self.bz_curves,
                                      self.bz_polygons)
        elif which_cur == Curves.SURFACE_PIPE:
            self.selected = Pipe(pre_data, self.bz_points, self.bz_curves,
                                 self.bz_polygons)
        elif which_cur == Curves.SURFACE_GREGORY:
            self.selected = GregoryGap(pre_data, self.bz_points,
                                       self.bz_curves, self.bz_polygons)

        self.selected.new(pos, post_data)
        self.add_child(self.selected)

        self.selected.set_screen_size(self.w, self.h)
Пример #2
0
	def make_bezier_pts( self , a , b ) :
		dx = (b - a)/3.0
		dy = np.empty(3,np.float32)
		dy[0] =-dx[1]
		dy[1] = dx[0]
		dy[2] = dx[2]
		beg = len(self.pts)
		for y in range(4) :
			for x in range(4) :
				if y == 0 and x == 0 :
					pt = a
				elif y == 0 and x == 3 :
					pt = b
				else :
					pt = a + dx * x + dy * y
				self.pts.append( pt )
		self.surfs.append( SurfaceC0( ((1,1),self.dens) , pts = self.pts[beg:beg+16] ) )
		self.base_surfs = len(self.surfs)
		self._subsurfs = np.zeros( (self.base_surfs,16,3) , np.float32 )