mirror of
https://github.com/OpenFOAM/ThirdParty-6.git
synced 2025-12-08 06:57:43 +00:00
ParaView-5.0.1: Added the source-tree to ThirdParty-dev and patched as described in the README file
Resolves bug-report http://bugs.openfoam.org/view.php?id=2098
This commit is contained in:
@ -0,0 +1,219 @@
|
||||
/*=========================================================================
|
||||
|
||||
Program: ParaView
|
||||
Module: vtkSMCompositeTreeDomain.cxx
|
||||
|
||||
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.
|
||||
|
||||
=========================================================================*/
|
||||
#include "vtkSMCompositeTreeDomain.h"
|
||||
|
||||
#include "vtkObjectFactory.h"
|
||||
#include "vtkPVCompositeDataInformation.h"
|
||||
#include "vtkPVDataInformation.h"
|
||||
#include "vtkPVXMLElement.h"
|
||||
#include "vtkSMInputProperty.h"
|
||||
#include "vtkSMIntVectorProperty.h"
|
||||
#include "vtkSMPropertyHelper.h"
|
||||
#include "vtkSMSourceProxy.h"
|
||||
|
||||
vtkStandardNewMacro(vtkSMCompositeTreeDomain);
|
||||
vtkCxxSetObjectMacro(vtkSMCompositeTreeDomain, Information, vtkPVDataInformation);
|
||||
//----------------------------------------------------------------------------
|
||||
vtkSMCompositeTreeDomain::vtkSMCompositeTreeDomain()
|
||||
{
|
||||
this->Information = 0;
|
||||
this->LastInformation = 0;
|
||||
this->Mode = ALL;
|
||||
this->Source = 0;
|
||||
this->SourcePort = 0;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
vtkSMCompositeTreeDomain::~vtkSMCompositeTreeDomain()
|
||||
{
|
||||
this->Source = 0;
|
||||
this->SourcePort = 0;
|
||||
this->SetInformation(0);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
void vtkSMCompositeTreeDomain::Update(vtkSMProperty*)
|
||||
{
|
||||
this->Source = 0;
|
||||
this->SourcePort = 0;
|
||||
this->SetInformation(0);
|
||||
|
||||
vtkSMInputProperty* pp = vtkSMInputProperty::SafeDownCast(
|
||||
this->GetRequiredProperty("Input"));
|
||||
if (pp)
|
||||
{
|
||||
this->Update(pp);
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
void vtkSMCompositeTreeDomain::InvokeModifiedIfChanged()
|
||||
{
|
||||
if (this->Information != this->LastInformation ||
|
||||
(this->Information && this->UpdateTime < this->Information->GetMTime()))
|
||||
{
|
||||
this->LastInformation = this->Information;
|
||||
this->UpdateTime.Modified();
|
||||
this->DomainModified();
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
vtkSMSourceProxy* vtkSMCompositeTreeDomain::GetSource()
|
||||
{
|
||||
return this->Source.GetPointer();
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
void vtkSMCompositeTreeDomain::Update(vtkSMInputProperty *ip)
|
||||
{
|
||||
unsigned int i;
|
||||
unsigned int numProxs = ip->GetNumberOfUncheckedProxies();
|
||||
for (i = 0; i < numProxs; i++)
|
||||
{
|
||||
vtkSMSourceProxy* sp =
|
||||
vtkSMSourceProxy::SafeDownCast(ip->GetUncheckedProxy(i));
|
||||
if (sp)
|
||||
{
|
||||
vtkPVDataInformation *info = sp->GetDataInformation(
|
||||
ip->GetUncheckedOutputPortForConnection(i));
|
||||
if (!info)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
this->Source = sp;
|
||||
this->SourcePort = ip->GetUncheckedOutputPortForConnection(i);
|
||||
this->SetInformation(info);
|
||||
this->InvokeModifiedIfChanged();
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// In case there is no valid unchecked proxy, use the actual
|
||||
// proxy values
|
||||
numProxs = ip->GetNumberOfProxies();
|
||||
for (i=0; i<numProxs; i++)
|
||||
{
|
||||
vtkSMSourceProxy* sp =
|
||||
vtkSMSourceProxy::SafeDownCast(ip->GetProxy(i));
|
||||
if (sp)
|
||||
{
|
||||
vtkPVDataInformation *info = sp->GetDataInformation(
|
||||
ip->GetOutputPortForConnection(i));
|
||||
if (!info)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
this->Source = sp;
|
||||
this->SourcePort = ip->GetOutputPortForConnection(i);
|
||||
this->SetInformation(info);
|
||||
this->InvokeModifiedIfChanged();
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
int vtkSMCompositeTreeDomain::ReadXMLAttributes(
|
||||
vtkSMProperty* prop, vtkPVXMLElement* element)
|
||||
{
|
||||
this->Superclass::ReadXMLAttributes(prop, element);
|
||||
|
||||
this->Mode = ALL;
|
||||
const char* mode = element->GetAttribute("mode");
|
||||
if (mode)
|
||||
{
|
||||
if (strcmp(mode, "all") == 0)
|
||||
{
|
||||
this->Mode = ALL;
|
||||
}
|
||||
else if (strcmp(mode, "leaves") == 0)
|
||||
{
|
||||
this->Mode = LEAVES;
|
||||
}
|
||||
else if (strcmp(mode, "non-leaves") == 0)
|
||||
{
|
||||
this->Mode = NON_LEAVES;
|
||||
}
|
||||
else if (strcmp(mode, "none") == 0)
|
||||
{
|
||||
this->Mode = NONE;
|
||||
}
|
||||
else
|
||||
{
|
||||
vtkErrorMacro("Unrecognized mode: " << mode);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
int vtkSMCompositeTreeDomain::SetDefaultValues(
|
||||
vtkSMProperty* property, bool use_unchecked_values)
|
||||
{
|
||||
vtkSMIntVectorProperty* ivp = vtkSMIntVectorProperty::SafeDownCast(property);
|
||||
vtkSMPropertyHelper helper(property);
|
||||
helper.SetUseUnchecked(use_unchecked_values);
|
||||
if (ivp && this->Information && helper.GetNumberOfElements() == 1)
|
||||
{
|
||||
if (this->Mode == LEAVES)
|
||||
{
|
||||
// change the property default to be the first non-empty leaf.
|
||||
vtkPVDataInformation* info = this->Information;
|
||||
int index = 0;
|
||||
while (info && info->GetCompositeDataClassName() &&
|
||||
!info->GetCompositeDataInformation()->GetDataIsMultiPiece())
|
||||
{
|
||||
index++;
|
||||
info = this->Information->GetDataInformationForCompositeIndex(index);
|
||||
}
|
||||
if (info)
|
||||
{
|
||||
helper.Set(0, index);
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
return this->Superclass::SetDefaultValues(property, use_unchecked_values);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------------
|
||||
void vtkSMCompositeTreeDomain::PrintSelf(ostream& os, vtkIndent indent)
|
||||
{
|
||||
this->Superclass::PrintSelf(os, indent);
|
||||
os << indent << "Information: " << this->Information << endl;
|
||||
os << indent << "Mode: ";
|
||||
switch (this->Mode)
|
||||
{
|
||||
case ALL:
|
||||
os << "ALL";
|
||||
break;
|
||||
case LEAVES:
|
||||
os << "LEAVES";
|
||||
break;
|
||||
case NON_LEAVES:
|
||||
os << "NON_LEAVES";
|
||||
break;
|
||||
case NONE:
|
||||
os << "NONE";
|
||||
default:
|
||||
os << "UNKNOWN";
|
||||
}
|
||||
os << endl;
|
||||
os << indent << "SourcePort: " << this->SourcePort << endl;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user