[Paraview] Lookmarks with Python
Robert Maynard
RobertJMaynard at gmail.com
Fri Nov 28 10:09:37 EST 2008
Here is the latest version that I have worked on. It has some exceptions
built in because of problems we had when transferring the pickle files
across machines ( windows sizes, stereo settings).
On Thu, Nov 27, 2008 at 8:57 PM, Robert Maynard <RobertJMaynard at gmail.com>wrote:
> When I get into work tomorrow I will forward the newest version that I
> wrote if you would like.
>
> On Thu, Nov 27, 2008 at 7:08 PM, Jacques Papper <jacques.papper at gmail.com>wrote:
>
>> All,
>>
>> I modified a script that Robert Maynard posted back in 2007 for saving and
>> loading states.
>> I haven't thoroughly tested it yet, but it seems to work fine for me.
>> Basically it saves only the properties of the RenderView but not the
>> Representations property.
>> This has for effect that you only save the camera / lightings etc settings
>> without having to worry about what sources your viewing or representations
>> are associated to your view.
>> I find it very useful to automate post-processing were you use a standard
>> set of cam positions.
>>
>> Also for those who have problems with cPickle, just use pickle instead...
>>
>> Thought I'd give this back to the community - let me know if you are using
>> it, I will probably build some more on top of this.
>>
>>
>> #!/usr/bin/env python
>>
>> from paraview.servermanager import *
>> import cPickle as pickle
>> import re
>>
>> class CamState:
>>
>> def __init__(self):
>> #storage for a list of view objects
>> self.view = list()
>>
>> def loadState(self,file):
>> try:
>> self.view = pickle.load(open(file))
>> except IOError:
>> print "file not found"
>>
>> def saveState(self,file):
>> pickle.dump(self.view,open(file,'w'))
>>
>> def deleteView(self,name):
>> for item in self.view:
>> if(item.name == name):
>> del item
>> return True
>> return False
>>
>> def deleteAllViews(self):
>> del self.view
>> self.view = list()
>>
>> def addView(self,name):
>> newView = view(name, self.__getProperties())
>> self.view.append(newView)
>>
>> def loadView(self,name):
>> for v in self.view:
>> if (v.name == name):
>> self.__load(v.properties)
>>
>> def __getProperties(self):
>> repreg = re.compile("Representations")
>> properties = list()
>> view = servermanager.GetRenderView()
>> for property in view:
>> propertyName =
>> property.Proxy.GetPropertyName(property.SMProperty)
>>
>> if repreg.search(propertyName):
>> print "Not copying Representations"
>> else:
>> try:
>> value = property.GetData()
>> float(value)
>>
>> except(IndexError,TypeError,ValueError,AttributeError,SyntaxError):
>> try:
>> float(value[0])
>>
>> except(IndexError,TypeError,ValueError,AttributeError,SyntaxError):
>> pass
>> else:
>> properties.append((propertyName,value))
>> else:
>> properties.append((propertyName,value))
>> return properties
>>
>> def __load(self,properties):
>> view = servermanager.GetRenderView()
>> for i in properties:
>> print i[0],i[1]
>> view.SetPropertyWithName(i[0],i[1])
>> view.UpdateVTKObjects()
>> view.StillRender()
>>
>> class view:
>> def __init__(self,name,properties):
>> self.name = name
>> self.properties = properties
>>
>> def __getstate__(self):
>> pickleDict = dict()
>> pickleDict['name']=self.name
>> pickleDict['properties']=self.properties
>> return pickleDict
>>
>> def __setstate__(self,dict):
>> self.name = dict['name']
>> self.name = dict['properties']
>> self.__dict__.update(dict)
>>
>>
>>
>>
>>
>>
>>
>>
>> 2008/11/27 Jacques Papper <jacques.papper at gmail.com>
>>
>> Hi everyone,
>>>
>>> I'm trying to figure out a way of driving my post-processing through a
>>> python script.
>>> What I want to do is have a standard set of views that I can load through
>>> python (without having to reload the data every time) and output pictures
>>> for each of them.
>>> - different camera positions
>>> - different scalars plotted (and different scalar bars)
>>> Is using the lookmarks the best way ?
>>> If it is, how do I load lookmarks through python ?
>>>
>>> Jacques
>>>
>>
>>
>> _______________________________________________
>> ParaView mailing list
>> ParaView at paraview.org
>> http://www.paraview.org/mailman/listinfo/paraview
>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.paraview.org/pipermail/paraview/attachments/20081128/ac5a0c01/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: PowerView2.py
Type: application/octet-stream
Size: 9514 bytes
Desc: not available
URL: <http://www.paraview.org/pipermail/paraview/attachments/20081128/ac5a0c01/attachment-0001.obj>
More information about the ParaView
mailing list