Beispiel #1
0
    def __init__(self,
                 texture_array,
                 scale=0.2,
                 window_size=512,
                 texture_size=512):
        super().__init__()
        self.scale = scale
        self.current_scale = 1
        self.texture_array = texture_array
        self.texture_dtype = type(self.texture_array.flat[0])
        self.ndims = self.texture_array.ndim
        self.center_shift = TransformState.make_pos2d((-0.5, -0.5))
        self.shift_back = TransformState.make_pos2d((0.5, 0.5))

        #Create texture stage
        self.texture = Texture("Stimulus")
        self.texture.setup2dTexture(texture_size, texture_size,
                                    Texture.T_unsigned_byte,
                                    Texture.F_luminance)
        self.texture.setWrapU(Texture.WM_clamp)
        self.texture.setWrapV(Texture.WM_clamp)
        self.texture.setRamImageAs(self.texture_array, "L")
        self.textureStage = TextureStage("Stimulus")

        #Create scenegraph
        cm = CardMaker('card1')
        cm.setFrameFullscreenQuad()
        self.card1 = self.aspect2d.attachNewNode(cm.generate())
        self.card1.setTexture(self.textureStage, self.texture)  #ts, tx

        if self.scale != 0:
            self.taskMgr.add(self.scaleTextureTask, "scaleTextureTask")
 def trs_transform(self, elapsed_time):
     """ trs = translate rotate scale: transform for mask stage """        
     pos = 0.5 + self.mask_position_uv[0], 0.5 + self.mask_position_uv[1]
     center_shift = TransformState.make_pos2d((-pos[0], -pos[1]))
     scale = TransformState.make_scale2d(1/self.mask_scale)
     rotate = TransformState.make_rotate2d(np.mod(elapsed_time*40, 360))
     translate = TransformState.make_pos2d((0.5, 0.5))
     return translate.compose(rotate.compose(scale.compose(center_shift)))
 def trs_transform(self):
     """ trs = translate rotate scale: transform for mask stage """        
     pos = 0.5 + self.mask_position_uv[0], 0.5 + self.mask_position_uv[1]
     center_shift = TransformState.make_pos2d((-pos[0], -pos[1]))
     scale = TransformState.make_scale2d(1/self.scale)
     rotate = TransformState.make_rotate2d(self.mask_angle)
     translate = TransformState.make_pos2d((0.5, 0.5))
     return translate.compose(rotate.compose(scale.compose(center_shift)))
Beispiel #4
0
 def trs_transform(self):
     """ 
     trs = translate rotate scale transform for mask stage
     rdb contributed to this code
     """
     #print(self.strip_angle)
     pos = 0.5 + self.mask_position_uv[0], 0.5 + self.mask_position_uv[1]
     center_shift = TransformState.make_pos2d((-pos[0], -pos[1]))
     scale = TransformState.make_scale2d(1 / self.scale)
     rotate = TransformState.make_rotate2d(self.strip_angle)
     translate = TransformState.make_pos2d((0.5, 0.5))
     return translate.compose(rotate.compose(scale.compose(center_shift)))
Beispiel #5
0
 def trs_transform(self):
     """ 
     trs = translate-rotate-scale transform for mask stage
     panda3d developer rdb contributed to this code
     """
     pos = 0.5 + self.mask_position_uv[0], 0.5 + self.mask_position_uv[1]
     center_shift = TransformState.make_pos2d((-pos[0], -pos[1]))
     scale = TransformState.make_scale2d(1 / self.scale)
     rotate = TransformState.make_rotate2d(
         self.current_stim_params['strip_angle'])
     translate = TransformState.make_pos2d((0.5, 0.5))
     return translate.compose(rotate.compose(scale.compose(center_shift)))