Commit 11fb4913 authored by Utkarsh Ayachit's avatar Utkarsh Ayachit

Fixed comparative animation cue.

Still need to resolved the state and undo-redo special case for the cue.
parent b4dabc0b
......@@ -36,9 +36,8 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
#include "pqUndoStack.h"
#include "vtkEventQtSlotConnect.h"
#ifdef FIXME_COLLABORATION
#include "vtkPVComparativeAnimationCue.h"
#include "vtkSMComparativeAnimationCueProxy.h"
#endif
#include "vtkSMPropertyHelper.h"
#include <vtkstd/vector>
......@@ -103,7 +102,6 @@ pqComparativeCueWidget::~pqComparativeCueWidget()
//-----------------------------------------------------------------------------
void pqComparativeCueWidget::setCue(vtkSMProxy* _cue)
{
#ifdef FIXME_COLLABORATION
if (this->Cue.GetPointer() == _cue)
{
return;
......@@ -119,29 +117,23 @@ void pqComparativeCueWidget::setCue(vtkSMProxy* _cue)
}
this->updateGUI();
this->setEnabled(this->Cue != NULL);
#endif
}
//-----------------------------------------------------------------------------
vtkSMComparativeAnimationCueProxy* pqComparativeCueWidget::cue() const
{
#ifdef FIXME_COLLABORATION
return this->Cue;
#endif
}
//-----------------------------------------------------------------------------
bool pqComparativeCueWidget::acceptsMultipleValues() const
{
#ifdef FIXME_COLLABORATION
return (this->Cue && this->Cue->GetAnimatedElement() == -1);
#endif
return (this->Cue && this->Cue->GetCue()->GetAnimatedElement() == -1);
}
//-----------------------------------------------------------------------------
void pqComparativeCueWidget::updateGUI()
{
#ifdef FIXME_COLLABORATION
pqLock lock(&this->InUpdateGUI, true);
this->clear();
......@@ -167,11 +159,12 @@ void pqComparativeCueWidget::updateGUI()
}
this->setHorizontalHeaderLabels(hlabels);
vtkSMComparativeAnimationCueProxy* acue = this->cue();
if (!acue)
vtkSMComparativeAnimationCueProxy* acueProxy = this->cue();
if (!acueProxy)
{
return;
}
vtkPVComparativeAnimationCue* acue = acueProxy->GetCue();
for (int colno=0; colno < cols; colno++)
{
......@@ -197,13 +190,11 @@ void pqComparativeCueWidget::updateGUI()
this->setItem(rowno, colno, tableitem);
}
}
#endif
}
//-----------------------------------------------------------------------------
void pqComparativeCueWidget::onCellChanged(int rowno, int colno)
{
#ifdef FIXME_COLLABORATION
if (this->InUpdateGUI)
{
return;
......@@ -222,19 +213,18 @@ void pqComparativeCueWidget::onCellChanged(int rowno, int colno)
*ptr = QVariant(part).toDouble();
ptr++;
}
this->cue()->UpdateValue(colno, rowno, newvalues,
this->cue()->GetCue()->UpdateValue(colno, rowno, newvalues,
static_cast<unsigned int>(parts.size()));
}
}
else
{
double item_data = QVariant(text).toDouble();
this->cue()->UpdateValue(colno, rowno, item_data);
this->cue()->GetCue()->UpdateValue(colno, rowno, item_data);
}
END_UNDO_SET();
emit this->valuesChanged();
#endif
}
//-----------------------------------------------------------------------------
......@@ -250,7 +240,6 @@ void pqComparativeCueWidget::mouseReleaseEvent(QMouseEvent* evt)
//-----------------------------------------------------------------------------
void pqComparativeCueWidget::editRange()
{
#ifdef FIXME_COLLABORATION
QList<QTableWidgetSelectionRange> ranges = this->selectedRanges();
if (ranges.size() != 1 ||
(ranges[0].columnCount() <= 1 &&
......@@ -296,18 +285,20 @@ void pqComparativeCueWidget::editRange()
BEGIN_UNDO_SET("Update Parameter Values");
vtkPVComparativeAnimationCue* acue = this->cue()->GetCue();
if (range.rowCount() == 1 &&
range.columnCount() == this->size().width())
{
// user set an x-range.
this->cue()->UpdateXRange(range.topRow(), &minvalues[0], &maxvalues[0],
acue->UpdateXRange(range.topRow(), &minvalues[0], &maxvalues[0],
numvalues);
}
else if (range.columnCount() == 1 &&
range.rowCount() == this->size().height())
{
// user set a y-range.
this->cue()->UpdateYRange(range.leftColumn(),
acue->UpdateYRange(range.leftColumn(),
&minvalues[0], &maxvalues[0], numvalues);
}
else if (range.columnCount() == this->size().width() &&
......@@ -318,20 +309,20 @@ void pqComparativeCueWidget::editRange()
{
case HORZ_FIRST:
// user set a t-range.
this->cue()->UpdateWholeRange(&minvalues[0], &maxvalues[0], numvalues);
acue->UpdateWholeRange(&minvalues[0], &maxvalues[0], numvalues);
break;
case VERT_FIRST:
this->cue()->UpdateWholeRange(&minvalues[0], &maxvalues[0], numvalues,
acue->UpdateWholeRange(&minvalues[0], &maxvalues[0], numvalues,
true);
break;
case HORZ_ONLY:
this->cue()->UpdateXRange(-1, &minvalues[0], &maxvalues[0], numvalues);
acue->UpdateXRange(-1, &minvalues[0], &maxvalues[0], numvalues);
break;
case VERT_ONLY:
this->cue()->UpdateYRange(-1, &minvalues[0], &maxvalues[0], numvalues);
acue->UpdateYRange(-1, &minvalues[0], &maxvalues[0], numvalues);
break;
default:
......@@ -375,7 +366,7 @@ void pqComparativeCueWidget::editRange()
}
newvalues[cc] = minvalues[cc] + scale_factor * (maxvalues[cc] - minvalues[cc]);
}
this->cue()->UpdateValue(xx, yy, &newvalues[0], numvalues);
acue->UpdateValue(xx, yy, &newvalues[0], numvalues);
}
}
}
......@@ -384,5 +375,4 @@ void pqComparativeCueWidget::editRange()
emit this->valuesChanged();
this->updateGUIOnIdle();
#endif
}
......@@ -35,11 +35,10 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
// Server Manager Includes.
#include "vtkEventQtSlotConnect.h"
#include "vtkProcessModule.h"
#include "vtkPVComparativeAnimationCue.h"
#include "vtkSmartPointer.h"
#ifdef FIXME_COLLABORATION
#include "vtkSMComparativeAnimationCueProxy.h"
#include "vtkSMComparativeViewProxy.h"
#endif
#include "vtkSMPropertyHelper.h"
#include "vtkSMProxyManager.h"
#include "vtkSMVectorProperty.h"
......@@ -174,10 +173,8 @@ namespace pqComparativeVisPanelNS
{
maxValue = domain[1].toDouble();
}
#ifdef FIXME_COLLABORATION
vtkSMComparativeAnimationCueProxy::SafeDownCast(
cueProxy)->UpdateWholeRange(minValue, maxValue);
#endif
cueProxy)->GetCue()->UpdateWholeRange(minValue, maxValue);
}
if (!proxy)
{
......@@ -185,10 +182,8 @@ namespace pqComparativeVisPanelNS
QPair<double, double> range = timekeeper->getTimeRange();
// this is a "Time" animation cue. Use the range provided by the time
// keeper.
#ifdef FIXME_COLLABORATION
vtkSMComparativeAnimationCueProxy::SafeDownCast(
cueProxy)->UpdateWholeRange(range.first, range.second);
#endif
cueProxy)->GetCue()->UpdateWholeRange(range.first, range.second);
}
cueProxy->UpdateVTKObjects();
pxm->RegisterProxy("comparative_cues",
......@@ -270,7 +265,6 @@ void pqComparativeVisPanel::setView(pqView* _view)
this->Internal->View = _view;
this->Internal->activeParameters->clearContents();
#ifdef FIXME_COLLABORATION
vtkSMComparativeViewProxy* viewProxy = _view?
vtkSMComparativeViewProxy::SafeDownCast(_view->getProxy()) : NULL;
......@@ -309,7 +303,6 @@ void pqComparativeVisPanel::setView(pqView* _view)
this, SLOT(updateParametersList()));
this->updateParametersList();
#endif
}
//-----------------------------------------------------------------------------
......
......@@ -48,6 +48,7 @@ SET (Kit_SRCS
vtkPMWriterProxy.cxx
vtkPVKeyFrameAnimationCueForProxies.cxx
vtkPVComparativeView.cxx
vtkPVComparativeAnimationCue.cxx
# --- SM Objects ---
vtkSMAnimationScene.cxx
vtkSMAnimationSceneImageWriter.cxx
......@@ -59,6 +60,7 @@ SET (Kit_SRCS
vtkSMCameraProxy.cxx
vtkSMChartRepresentationProxy.cxx
vtkSMComparativeViewProxy.cxx
vtkSMComparativeAnimationCueProxy.cxx
vtkSMCompoundProxyDefinitionLoader.cxx
vtkSMCompoundSourceProxy.cxx
vtkSMCompoundSourceProxyDefinitionBuilder.cxx
......@@ -196,7 +198,6 @@ SET(Kit_SRCS
vtkSMXMLPVAnimationWriterProxy.cxx
## Comparative view +++++++++
vtkSMComparativeAnimationCueProxy.cxx
## Charts stuff +++++++++++++
vtkSMContextArraysInformationHelper.cxx #---- SM Side only, not managed yet...
......
......@@ -690,15 +690,51 @@
<!-- End of AnimationCueBase -->
</Proxy>
<!-- FIXME
<ComparativeAnimationCueProxy name="ComparativeAnimationCue"
class="vtkAnimationCue"
base_proxygroup="animation" base_proxyname="AnimationCueBase">
<ComparativeAnimationCueProxy name="ComparativeAnimationCue"
class="vtkPVComparativeAnimationCue"
processes="client">
<Documentation>
Animation cue used by comparative views.
</Documentation>
<IntVectorProperty name="AnimatedElement"
command="SetAnimatedElement"
number_of_elements="1"
default_values="0">
</IntVectorProperty>
<IntVectorProperty name="Enabled"
command="SetEnabled"
number_of_elements="1"
default_values="1">
<BooleanDomain name="bool" />
<Documentation>
Enables this animation cue.
</Documentation>
</IntVectorProperty>
<ProxyProperty name="AnimatedProxy"
command="SetAnimatedProxy"
clean_command="RemoveAnimatedProxy"
argument_type="SMProxy">
<ProxyGroupDomain name="groups">
<Group name="sources" />
<Group name="filters" />
</ProxyGroupDomain>
</ProxyProperty>
<StringVectorProperty name="AnimatedPropertyName"
command="SetAnimatedPropertyName"
number_of_elements="1" >
</StringVectorProperty>
<StringVectorProperty name="AnimatedDomainName"
command="SetAnimatedDomainName"
number_of_elements="1">
</StringVectorProperty>
<!-- end of ComparativeAnimationCue -->
</ComparativeAnimationCueProxy>
-->
<Proxy name="KeyFrameAnimationCue"
class="vtkPVKeyFrameAnimationCueForProxies"
......
This diff is collapsed.
/*=========================================================================
Program: ParaView
Module: $RCSfile$
Copyright (c) Kitware, Inc.
All rights reserved.
See Copyright.txt or http://www.paraview.org/HTML/Copyright.html for details.
This software is distributed WITHOUT ANY WARRANTY; without even
the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the above copyright notice for more information.
=========================================================================*/
// .NAME vtkPVComparativeAnimationCue - cue used for parameter animation by the
// comparative view.
// .SECTION Description
// vtkPVComparativeAnimationCue is a animation cue used for parameter
// animation by the ComparativeView. It provides a non-conventional
// API i.e. without using properties to allow the user to setup parameter
// values over the comparative grid.
#ifndef __vtkPVComparativeAnimationCue_h
#define __vtkPVComparativeAnimationCue_h
#include "vtkObject.h"
class vtkSMDomain;
class vtkSMProperty;
class vtkSMProxy;
class VTK_EXPORT vtkPVComparativeAnimationCue : public vtkObject
{
public:
static vtkPVComparativeAnimationCue* New();
vtkTypeMacro(vtkPVComparativeAnimationCue, vtkObject);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// Set/Get the animated proxy.
void SetAnimatedProxy(vtkSMProxy*);
vtkGetObjectMacro(AnimatedProxy, vtkSMProxy);
void RemoveAnimatedProxy();
// Description:
// Set/Get the animated property name.
vtkSetStringMacro(AnimatedPropertyName);
vtkGetStringMacro(AnimatedPropertyName);
// Description:
// Set/Get the animated domain name.
vtkSetStringMacro(AnimatedDomainName);
vtkGetStringMacro(AnimatedDomainName);
// Description:
// The index of the element of the property this cue animates.
// If the index is -1, the cue will animate all the elements
// of the animated property.
vtkSetMacro(AnimatedElement, int);
vtkGetMacro(AnimatedElement, int);
// Description:
// Enable/Disable the cue.
vtkSetMacro(Enabled, bool);
vtkGetMacro(Enabled, bool);
vtkBooleanMacro(Enabled, bool);
// Description
// Methods use to fill up the values for the parameter over the comparative
// grid. These are order dependent methods i.e. the result of calling
// UpdateXRange() and then UpdateYRange() are different from calling
// UpdateYRange() and then UpdateXRange().
// These methods are convenience methods when the value can only be a single
// value.
void UpdateXRange(int y, double minx, double maxx)
{ this->UpdateXRange(y, &minx, &maxx, 1); }
void UpdateYRange(int x, double miny, double maxy)
{ this->UpdateYRange(x, &miny, &maxy, 1); }
void UpdateWholeRange(double mint, double maxt)
{ this->UpdateWholeRange(&mint, &maxt, 1); }
void UpdateValue(int x, int y, double value)
{ this->UpdateValue(x, y, &value, 1); }
// Description:
// Use these methods when the parameter can have multiple values eg. IsoValues
// for the Contour filter. The "AnimatedElement" for such properties must be
// set to -1, otherwise UpdateAnimatedValue() will raise an error.
void UpdateXRange(int y, double *minx, double* maxx, unsigned int numvalues);
void UpdateYRange(int x, double *minx, double* maxx, unsigned int numvalues);
void UpdateWholeRange(double *mint, double *maxt, unsigned int numValues)
{
this->UpdateWholeRange(mint, maxt, numValues, false);
}
void UpdateWholeRange(double *mint, double *maxt, unsigned int numValues,
bool vertical_first);
void UpdateValue(int x, int y, double *value, unsigned int numValues);
// Description:
// Update the animated property's value based on those specified using the
// Update.* methods. (x,y) is the location in the comparative grid, while
// (dx, dy) are the dimensions of the comparative grid.
void UpdateAnimatedValue(int x, int y, int dx, int dy);
// Description:
// Computes the value for a particular location in the comparative grid.
// (x,y) is the location in the comparative grid, while
// (dx, dy) are the dimensions of the comparative grid.
double GetValue(int x, int y, int dx, int dy)
{
unsigned int numValues=0;
double* vals = this->GetValues(x, y, dx, dy, numValues);
if (numValues > 0)
{
return vals[0];
}
return -1.0;
}
// Description:
// NOTE: Returned values is only valid until the next call to this method.
// Return value is only valid when numValues > 0.
double* GetValues(int x, int y, int dx, int dy, unsigned int &numValues);
//BTX
protected:
vtkPVComparativeAnimationCue();
~vtkPVComparativeAnimationCue();
// Description:
// Get the property being animated.
vtkSMProperty* GetAnimatedProperty();
// Description:
// Get the domain being animated.
vtkSMDomain* GetAnimatedDomain();
vtkSMProxy* AnimatedProxy;
int AnimatedElement;
char* AnimatedPropertyName;
char* AnimatedDomainName;
double* Values;
bool Enabled;
private:
vtkPVComparativeAnimationCue(const vtkPVComparativeAnimationCue&); // Not implemented
void operator=(const vtkPVComparativeAnimationCue&); // Not implemented
class vtkInternals;
vtkInternals* Internals;
//ETX
};
#endif
......@@ -19,11 +19,10 @@
#include "vtkMemberFunctionCommand.h"
#include "vtkObjectFactory.h"
#include "vtkProcessModule.h"
#include "vtkPVComparativeAnimationCue.h"
#include "vtkSmartPointer.h"
#include "vtkSMCameraLink.h"
#ifdef FIXME_COLLABORATION
#include "vtkSMComparativeAnimationCueProxy.h"
#endif
#include "vtkSMPropertyHelper.h"
#include "vtkSMPropertyIterator.h"
#include "vtkSMProxyLink.h"
......@@ -175,11 +174,9 @@ public:
typedef vtkstd::map<vtkSMRepresentationProxy*, RepresentationData> MapOfReprClones;
MapOfReprClones RepresentationClones;
#ifdef FIXME_COLLABORATION
typedef vtkstd::vector<vtkSmartPointer<vtkSMComparativeAnimationCueProxy> >
VectorOfCues;
VectorOfCues Cues;
#endif
vtkSmartPointer<vtkSMProxyLink> ViewLink;
vtkSmartPointer<vtkSMCameraLink> ViewCameraLink;
......@@ -273,30 +270,26 @@ vtkPVComparativeView::~vtkPVComparativeView()
//----------------------------------------------------------------------------
void vtkPVComparativeView::AddCue(vtkSMComparativeAnimationCueProxy* cue)
{
#ifdef FIXME_COLLABORATION
this->Internal->Cues.push_back(cue);
cue->AddObserver(vtkCommand::ModifiedEvent, this->MarkOutdatedObserver);
cue->GetCue()->AddObserver(vtkCommand::ModifiedEvent, this->MarkOutdatedObserver);
this->MarkOutdated();
#endif
}
//----------------------------------------------------------------------------
void vtkPVComparativeView::RemoveCue(vtkSMComparativeAnimationCueProxy* cue)
{
#ifdef FIXME_COLLABORATION
vtkInternal::VectorOfCues::iterator iter;
for (iter = this->Internal->Cues.begin();
iter != this->Internal->Cues.end(); ++iter)
{
if (iter->GetPointer() == cue)
{
cue->RemoveObserver(this->MarkOutdatedObserver);
cue->GetCue()->RemoveObserver(this->MarkOutdatedObserver);
this->Internal->Cues.erase(iter);
this->MarkOutdated();
break;
}
}
#endif
}
//----------------------------------------------------------------------------
......@@ -727,20 +720,18 @@ void vtkPVComparativeView::Update()
// cout << "-------------" << endl;
vtkSMComparativeAnimationCueProxy* timeCue = NULL;
#ifdef FIXME_COLLABORATION
// locate time cue.
for (vtkInternal::VectorOfCues::iterator iter = this->Internal->Cues.begin();
iter != this->Internal->Cues.end(); ++iter)
{
// for now, we are saying that the first cue that has no animatable proxy
// is for animating time.
if (iter->GetPointer()->GetAnimatedProxy() == NULL)
if (iter->GetPointer()->GetCue()->GetAnimatedProxy() == NULL)
{
timeCue = iter->GetPointer();
break;
}
}
#endif
int index = 0;
for (int y=0; y < this->Dimensions[1]; y++)
......@@ -750,21 +741,18 @@ void vtkPVComparativeView::Update()
int view_index = this->OverlayAllComparisons? 0 : index;
vtkSMViewProxy* view = this->Internal->Views[view_index];
#ifdef FIXME_COLLABORATION
if (timeCue)
{
double value = timeCue->GetValue(
double value = timeCue->GetCue()->GetValue(
x, y, this->Dimensions[0], this->Dimensions[1]);
vtkSMPropertyHelper(view,"ViewTime").Set(value);
}
else
#endif
{
vtkSMPropertyHelper(view,"ViewTime").Set(this->ViewTime);
}
view->UpdateVTKObjects();
#ifdef FIXME_COLLABORATION
for (vtkInternal::VectorOfCues::iterator iter =
this->Internal->Cues.begin();
iter != this->Internal->Cues.end(); ++iter)
......@@ -773,10 +761,9 @@ void vtkPVComparativeView::Update()
{
continue;
}
iter->GetPointer()->UpdateAnimatedValue(
iter->GetPointer()->GetCue()->UpdateAnimatedValue(
x, y, this->Dimensions[0], this->Dimensions[1]);
}
#endif
// Make the view cache the current setup.
this->UpdateAllRepresentations(x, y);
......
......@@ -133,13 +133,10 @@ public:
vtkSetVector2Macro(Spacing, int);
vtkGetVector2Macro(Spacing, int);
//BTX
// Description:
// Add/Remove parameter cues.
void AddCue(vtkSMComparativeAnimationCueProxy*);
void RemoveCue(vtkSMComparativeAnimationCueProxy*);
//ETX
// Description:
// Get/Set the view time.
......
......@@ -99,7 +99,8 @@ void vtkPVKeyFrameAnimationCueForProxies::SetAnimationValue(
//----------------------------------------------------------------------------
void vtkPVKeyFrameAnimationCueForProxies::EndUpdateAnimationValues()
{
// FIXME: How can the keyframe tell the cue that the property needs to be
// FIXME_COLLABORATION:
// How can the keyframe tell the cue that the property needs to be
// resized or not?
//vtkSMVectorProperty * vp = vtkSMVectorProperty::SafeDownCast(property);
//if(vp)
......
......@@ -14,7 +14,8 @@
=========================================================================*/
// .NAME vtkPVKeyFrameAnimationCueForProxies
// .SECTION Description
//
// vtkPVKeyFrameAnimationCueForProxies extends vtkPVKeyFrameAnimationCue to
// update properties on proxies in SetAnimationValue().
#ifndef __vtkPVKeyFrameAnimationCueForProxies_h
#define __vtkPVKeyFrameAnimationCueForProxies_h
......
......@@ -23,71 +23,23 @@
#ifndef __vtkSMComparativeAnimationCueProxy_h
#define __vtkSMComparativeAnimationCueProxy_h
#include "vtkSMAnimationCueProxy.h"
#include "vtkSMProxy.h"
class VTK_EXPORT vtkSMComparativeAnimationCueProxy : public vtkSMAnimationCueProxy
class vtkPVComparativeAnimationCue;
class VTK_EXPORT vtkSMComparativeAnimationCueProxy : public vtkSMProxy
{
public:
static vtkSMComparativeAnimationCueProxy* New();
vtkTypeMacro(vtkSMComparativeAnimationCueProxy, vtkSMAnimationCueProxy);
vtkTypeMacro(vtkSMComparativeAnimationCueProxy, vtkSMProxy);
void PrintSelf(ostream& os, vtkIndent indent);
// Description
// Methods use to fill up the values for the parameter over the comparative
// grid. These are order dependent methods i.e. the result of calling
// UpdateXRange() and then UpdateYRange() are different from calling
// UpdateYRange() and then UpdateXRange().
// These methods are convenience methods when the value can only be a single
// value.
void UpdateXRange(int y, double minx, double maxx)
{ this->UpdateXRange(y, &minx, &maxx, 1); }
void UpdateYRange(int x, double miny, double maxy)
{ this->UpdateYRange(x, &miny, &maxy, 1); }
void UpdateWholeRange(double mint, double maxt)
{ this->UpdateWholeRange(&mint, &maxt, 1); }
void UpdateValue(int x, int y, double value)
{ this->UpdateValue(x, y, &value, 1); }
// Description:
// Use these methods when the parameter can have multiple values eg. IsoValues
// for the Contour filter. The "AnimatedElement" for such properties must be
// set to -1, otherwise UpdateAnimatedValue() will raise an error.
void UpdateXRange(int y, double *minx, double* maxx, unsigned int numvalues);
void UpdateYRange(int x, double *minx, double* maxx, unsigned int numvalues);
void UpdateWholeRange(double *mint, double *maxt, unsigned int numValues)
{
this->UpdateWholeRange(mint, maxt, numValues, false);
}
void UpdateWholeRange(double *mint, double *maxt, unsigned int numValues,
bool vertical_first);
void UpdateValue(int x, int y, double *value, unsigned int numValues);
// Description:
// Update the animated property's value based on those specified using the
// Update.* methods. (x,y) is the location in the comparative grid, while
// (dx, dy) are the dimensions of the comparative grid.
void UpdateAnimatedValue(int x, int y, int dx, int dy);
// Description:
// Computes the value for a particular location in the comparative grid.
// (x,y) is the location in the comparative grid, while
// (dx, dy) are the dimensions of the comparative grid.
double GetValue(int x, int y, int dx, int dy)
{
unsigned int numValues=0;
double* vals = this->GetValues(x, y, dx, dy, numValues);
if (numValues > 0)
{
return vals[0];
}
return -1.0;
}
// Description:
// NOTE: Returned values is only valid until the next call to this method.
// Return value is only valid when numValues > 0.
double* GetValues(int x, int y, int dx, int dy, unsigned int &numValues);
// Returns the client-side vtkPVComparativeAnimationCue instance. Same as
// vtkPVComparativeAnimationCue::SafeDownCast(this->GetClientSideObject());
vtkPVComparativeAnimationCue* GetCue();
#ifdef FIXME_COLLABORATION
// Description:
// Saves the state of the proxy.
virtual vtkPVXMLElement* SaveState(vtkPVXMLElement* root)
......@@ -111,21 +63,17 @@ public:
// Same as LoadState except that the proxy will try to undo the changes
// recorded in the state.
virtual int RevertState(vtkPVXMLElement* element, vtkSMProxyLocator* locator);
#endif
//BTX
protected:
vtkSMComparativeAnimationCueProxy();
~vtkSMComparativeAnimationCueProxy();
double* Values;
private:
vtkSMComparativeAnimationCueProxy(const vtkSMComparativeAnimationCueProxy&); // Not implemented
void operator=(const vtkSMComparativeAnimationCueProxy&); // Not implemented
class vtkInternals;
vtkInternals* Internals;