@@ -126,19 +126,38 @@ def __init__(self, Gfdv3d_name, Gfdv3d_name_src='default'):
126126 self .projection = 'default'
127127 self .provenanceHandler = None
128128
129+ vcs .elements [self .g_name ][Gfdv3d_name ] = self
130+
131+ self ._axes = "xyz"
132+
133+ # Use parent config values if possible
134+ if isinstance (Gfdv3d_name_src , (unicode , str )):
135+ # Make sure we aren't inheriting from ourself
136+ if Gfdv3d_name_src != Gfdv3d_name :
137+ parent_cfg = vcs .elements [self .g_name ][Gfdv3d_name_src ].cfgManager
138+ self ._axes = vcs .elements [self .g_name ][Gfdv3d_name_src ]._axes
139+ else :
140+ parent_cfg = None
141+ else :
142+ # Make sure we aren't inheriting from ourself
143+ if Gfdv3d_name_src .name != self .name :
144+ parent_cfg = Gfdv3d_name_src .cfgManager
145+ self ._axes = Gfdv3d_name_src ._axes
146+ else :
147+ parent_cfg = None
148+
149+ self .cfgManager = ConfigManager (cm = parent_cfg )
150+
129151 if Gfdv3d_name == "Hovmoller3D" :
130152 self ._axes = "xyt"
131- else :
132- self ._axes = "xyz"
133153
134- self .cfgManager = ConfigManager ()
135154 self .ncores = multiprocessing .cpu_count ()
155+
136156 self .addParameters ()
137157
138- vcs .elements [self .g_name ][Gfdv3d_name ] = self
139158 self .plot_attributes ['name' ] = self .g_name
140159 self .plot_attributes ['template' ] = Gfdv3d_name
141- # print "Adding VCS element: %s %s " % ( self.g_name, Gfdv3d_name )
160+
142161
143162 def setProvenanceHandler (self , provenanceHandler ):
144163 self .provenanceHandler = provenanceHandler
@@ -215,22 +234,22 @@ class Gf3Dvector(Gfdv3d):
215234
216235 def __init__ (self , Gfdv3d_name , Gfdv3d_name_src = 'default' ):
217236 self .g_name = '3d_vector'
218- Gfdv3d .__init__ (self , Gfdv3d_name , Gfdv3d_name_src = 'default' )
237+ Gfdv3d .__init__ (self , Gfdv3d_name , Gfdv3d_name_src = Gfdv3d_name_src )
219238
220239
221240class Gf3Dscalar (Gfdv3d ):
222241
223242 def __init__ (self , Gfdv3d_name , Gfdv3d_name_src = 'default' ):
224243 self .g_name = '3d_scalar'
225- Gfdv3d .__init__ (self , Gfdv3d_name , Gfdv3d_name_src = 'default' )
244+ Gfdv3d .__init__ (self , Gfdv3d_name , Gfdv3d_name_src = Gfdv3d_name_src )
226245 self .VectorDisplay = Gfdv3d_name
227246
228247
229248class Gf3DDualScalar (Gfdv3d ):
230249
231250 def __init__ (self , Gfdv3d_name , Gfdv3d_name_src = 'default' ):
232251 self .g_name = '3d_dual_scalar'
233- Gfdv3d .__init__ (self , Gfdv3d_name , Gfdv3d_name_src = 'default' )
252+ Gfdv3d .__init__ (self , Gfdv3d_name , Gfdv3d_name_src = Gfdv3d_name_src )
234253
235254if __name__ == '__main__' :
236255 dv3d = vcs .get3d_scalar ()
0 commit comments