it works !
Thank you Utkarsh !
On Wed, 19 Nov 2008 14:01:55 -0500
Utkarsh Ayachit <[EMAIL PROTECTED]> wrote:
Ah I think I know the problem. vtkSMProxy::Copy() copies
all properties even those on the sub proxies. A
representation is a complex beast with several internal
subproxies which are linked up internally. You actually
simply want to save/restore the exposed properties so
I'd do something
like follows:
void Copy(vtkSMProxy* src, vtkSMProxy* dest)
{
vtkSMPropertyIterator* iter =
dest->NewPropertyIterator();
for (iter->Begin(); !iter->IsAtEnd(); iter->Next())
{
vtkSMProperty* destProp = iter->GetProperty();
vtkSMProperty* srcProp =
src->GetProperty(iter->GetKey());
if (destProp && srcProp)
{
destProp->Copy(srcProp);
}
}
iter->Delete();
}
Use the above Copy instead of vtkSMProxy::Copy().
Utkarsh
Nehme Bilal wrote:
Hi again,
I did save and restore the source proxy and
representations and it's
working.
All display properties are saved/restored perfectly, but
after
restoring, changing "color" or "Style" properties from
the object
inspector has no effect. Other properties like "visible"
or
"Transformation" works !
after restoring I called:
vtkSMObject::GetProxyManager()->UpdateRegisteredProxiesInOrder();
but it didn't solve the problem.
On Wed, 19 Nov 2008 13:14:27 -0500
Utkarsh Ayachit <[EMAIL PROTECTED]> wrote:
For saving the object inspector properties you'll have
to save/restore
the state for the source proxy (and not merely it's
representation
proxy).
Utkarsh
Nehme Bilal wrote:
Thank you Utkarsh !
it works but I have some problems like:
- after restoring the proxy, changing some display
properties in
Paraview has no effect (like color ...)
- only the display properties are saved/restored.
(variables in
object inspector "properties" tab are not restored)
It's probably the way that I'm casting the source proxy
and some
staff like that.
I'll try to solve these problems and let you know.
thank you !
On Wed, 19 Nov 2008 10:20:52 -0500
Utkarsh Ayachit <[EMAIL PROTECTED]> wrote:
Here's one way of doing it:
vtkSMProxyManager* pxm = vtkSMObject::GetProxyManager();
vtkSMProxy *tempProxy = pxm->NewProxy(
src->GetXMLGroup(),
src->GetXMLName());
tempProxy->Copy(src);
....
src->Copy(tempProxy);
Utkarsh
Nehme Bilal wrote:
tempProxy is just a proxy I created using:
vtkSMProxy tempProxy = vtkSMProxy::New();
I am trying to save/restore all the object properties
displayed in
the object inspector.
On Wed, 19 Nov 2008 09:30:55 -0500
Utkarsh Ayachit <[EMAIL PROTECTED]> wrote:
Nehme,
What properties are you changing/trying to restore? Is
"tempProxy"
of the same type as "src"?
Utkarsh
Nehme Bilal wrote:
Hello,
Sorry I missed a few commas in the last message. this is
the
correct one:
I am looking for a way to save a proxy properties and
restore it
later.
The only way I found is by saving and restoring the
state using:
virtual vtkPVXMLElement* SaveState(vtkPVXMLElement*
root);
virtual int LoadState(vtkPVXMLElement* element,
vtkSMStateLoaderBase* loader);
I don't want to use LoadState because this method create
a new
proxy. I just want to restore all properties to the
existing proxy.
There is also a method called Copy (void
Copy(vtkSMProxy* src),
this method will copy all src properties to another
proxy:
//copying properties to tempProxy
tempProxy->Copy(src,0,vtkSMProxy::COPY_PROXY_PROPERTY_VALUES_BY_CLONING);
I tried to change some display properties in Paraview
and then
restore using:
src->Copy(tempProxy,0,vtkSMProxy::COPY_PROXY_PROPERTY_VALUES_BY_CLONING);
src->UpdateVTKObjects();
but nothing is restored ! why? Is there any other way to
do that?
(suppose that I have only on source)
Thank you
_______________________________________________
ParaView mailing list
[email protected]
http://www.paraview.org/mailman/listinfo/paraview
_______________________________________________
ParaView mailing list
[email protected]
http://www.paraview.org/mailman/listinfo/paraview