This is a simple class that holds and handle the scene information generated on the pre batch process. You will never need to modify this for create you batch widgets, it is shown here only for clarification. This class is in the input of all batch widgets level events and you can use it from there.

The scene info output is basically a dictionary like shown in the below exemple:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
{
 'Project_Path' : 'PROJECTPATH',
 
 'Reference_CheckState_Info' : {
                               'CAMERA'    : {'main_camera' : True},
                               
                               'CHARACTER' : {
                                              'box'         : True,
                                              'box1'        : True,
                                              'box2'        : True
                                             },
                               
                               'FX'        : {'mash_voxel'  : True},
                               'PROP'      : {'sphere'      : True},
                               'SCENARIO'  : {'home'        : True}
                               },
                               
 'Reference_Full_Path' : {
                         'box'         :'scenes/REF/CHARACTER/box.mb',
                         'box1'        :'scenes/REF/CHARACTER/box.mb{1}',
                         'box2'        :'scenes/REF/CHARACTER/box.mb{2}',
                         'home'        :'scenes/REF/SCENARIO/home.mb',
                         'main_camera' :'scenes/REF/CAMERA/main_camera.mb',
                         'mash_voxel'  :'scenes/REF/FX/mash_voxel.mb',
                         'sphere'      :'scenes/REF/PROP/sphere.mb'
                        },
                       
                       
 'Scene_CheckState_Info' : {'SHOT_01': True},

 
 'reference_list' : {
                     'CAMERA'     : ['main_camera'],
                     'CHARACTER'  : ['box', 'box1', 'box2'],
                     'FX'         : ['mash_voxel'],
                     'PROP'       : ['sphere'],
                     'SCENARIO'   : ['home']
                    },
                   
                   
 'scene_full_path'  : '/scenes/ANIM/SHOT_01.mb',
 
 
 'scene_short_name' : 'SHOT_01',
 
 
 'start_frame' : 1.0,
 'end_frame'   : 120.0
 }

You can use the properties and methods of the class in any stage of execution of the batch widget to get scene information.

Thats the SceneInfo class.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#===============================================================================
# Autor : Rosenio Pinto
# e-mail: kenio3d@gmail.com
#===============================================================================

class Scene_Info(object):
    def __init__(self, scene_check_state      = {},
                        reference_check_state = {},
                        reference_full_path   = {},
                        scene_short_name      = '',
                        scene_full_path       = '',
                        project_path          = '',
                        reference_list        = {},
                        start_frame           = 0,
                        end_frame             = 1):
       
        object.__init__(scene_check_state,
                        reference_check_state,
                        reference_full_path,
                        scene_short_name,
                        scene_full_path,
                        project_path,
                        reference_list,
                        start_frame,
                        end_frame)
       
        #=======================================================================
        # Class parameters
        #=======================================================================
        self.scene_check_state      = scene_check_state
        self.reference_check_state  = reference_check_state
        self.reference_full_path    = reference_full_path
        self.scene_short_name       = scene_short_name
        self.scene_full_path        = scene_full_path
        self.project_path           = project_path
        self.reference_list         = reference_list
        self.start_frame            = start_frame
        self.end_frame              = end_frame
       
   
    #===========================================================================
    # Set the scene check state
    #===========================================================================
    def Set_Scene_Check_State(self, value):
        self.scene_check_state[self.scene_short_name] = value
        self.Set_All_Reference_Check_State(value)
   
    #===========================================================================
    # Set the reference check state
    #===========================================================================
    def Set_Reference_Check_State(self, reference_type, reference_name, value):
        self.reference_check_state[reference_type][reference_name] = value
       
    #===========================================================================
    # Get the scene check state
    #===========================================================================
    def Get_Scene_Check_State(self):
        return self.scene_check_state[self.scene_short_name]
   
    #===========================================================================
    # Get the reference check state
    #===========================================================================
    def Get_Reference_Check_State(self, reference_type, reference_name):
        return self.reference_check_state[reference_type][reference_name]
   
    #===========================================================================
    # Set all the scene check state
    #===========================================================================
    def Set_All_Reference_Check_State(self, value):
        for reference_type, reference_list in self.reference_list.iteritems():
            for reference_name in reference_list:
                self.Set_Reference_Check_State(reference_type, reference_name, value)
               
    #===========================================================================
    # Return all data as dict format
    #===========================================================================
    def As_Dict(self):
        return {
                'Scene_CheckState_Info'     :self.scene_check_state,
                'Reference_CheckState_Info' :self.reference_check_state,
                'Reference_Full_Path'       :self.reference_full_path,
                'reference_list'            :self.reference_list,
                'scene_short_name'          :self.scene_short_name,
                'scene_full_path'           :self.scene_full_path,
                'Project_Path'              :self.project_path,
                'start_frame'               :self.start_frame,
                'end_frame'                 :self.end_frame
                }