Files
ThirdParty-6/ParaView-5.0.1/ParaViewCore/ClientServerCore/Rendering/vtkPythonRepresentation.h

154 lines
5.1 KiB
C++

/*=========================================================================
Program: ParaView
Module: vtkPythonRepresentation.h
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 vtkPythonRepresentation
// .SECTION Description
// Representation for showing data in a vtkPythonView. This representation
// does not create any intermediate data for display. Instead, it simply
// fetches data from the server.
#ifndef vtkPythonRepresentation_h
#define vtkPythonRepresentation_h
#include "vtkPVDataRepresentation.h"
#include "vtkPVClientServerCoreRenderingModule.h" //needed for exports
class vtkReductionFilter;
class VTKPVCLIENTSERVERCORERENDERING_EXPORT vtkPythonRepresentation : public vtkPVDataRepresentation
{
public:
static vtkPythonRepresentation* New();
vtkTypeMacro(vtkPythonRepresentation, vtkPVDataRepresentation);
void PrintSelf(ostream& os, vtkIndent indent);
// Description:
// vtkAlgorithm::ProcessRequest() equivalent for rendering passes. This is
// typically called by the vtkView to request meta-data from the
// representations or ask them to perform certain tasks e.g.
// PrepareForRendering.
// Overridden to skip processing when visibility if off.
virtual int ProcessViewRequest(vtkInformationRequestKey* request_type,
vtkInformation* inInfo,
vtkInformation* outInfo);
// Description:
// Gets local copy of the input. This will be NULL on the client when running in client-only
// mode until after Update() is called.
vtkGetMacro(LocalInput, vtkDataObject*);
// Description:
// Gets the client's copy of the input
vtkGetMacro(ClientDataObject, vtkDataObject*);
// Description:
// Get number of arrays in an attribute (e.g., vtkDataObject::POINT,
// vtkDataObject::CELL, vtkDataObject::ROW, vtkDataObject::FIELD_DATA).
int GetNumberOfAttributeArrays(int attributeType);
// Description:
// From the input data, get the name of attribute array at index for
// the given attribute type.
const char* GetAttributeArrayName(int attributeType, int arrayIndex);
// Description:
// Set the array status for the input data object. A
// status of 1 means that the array with the given name for the
// given attribute will be copied to the client. A status of 0 means
// the array will not be copied to the client. The status is 0 by
// default.
void SetAttributeArrayStatus(int attributeType, const char* name, int status);
// Description:
// Get the status indicating whether the array with the given name
// and attribute type in the input will be copied to the
// client. Status is 0 by default.
int GetAttributeArrayStatus( int attributeType, const char* name);
// Description:
// Enable all arrays. When called, all arrays will be marked as enabled.
void EnableAllAttributeArrays();
// Description:
// Disable all arrays. When called, all arrays will be marked as disabled.
void DisableAllAttributeArrays();
//BTX
protected:
vtkPythonRepresentation();
~vtkPythonRepresentation();
// Description:
// Overridden to make input optional.
int FillInputPortInformation(int port, vtkInformation* info);
// Description:
// Overridden to copy data from the server to the client
int RequestData(vtkInformation*, vtkInformationVector**, vtkInformationVector*);
private:
vtkPythonRepresentation(const vtkPythonRepresentation&); // Not implemented
void operator=(const vtkPythonRepresentation&); // Not implemented
//ETX
// Description:
// Local input for each processor.
vtkDataObject* LocalInput;
// Description:
// Data object located on the client.
vtkDataObject* ClientDataObject;
// Description:
// Internal data for the representation.
class vtkPythonRepresentationInternal;
vtkPythonRepresentationInternal* Internal;
//BTX
// Description:
// Sets the pre-gather helper on the reduction filter based on the
// data object
void InitializePreGatherHelper(vtkReductionFilter* reductionFilter, vtkDataObject* input);
// Description:
// Sets the post-gather helper on the reduction filter based on the
// data object
void InitializePostGatherHelper(vtkReductionFilter* reductionFilter, vtkDataObject* input);
// Description:
// Query whether this process has a particular role.
bool HasProcessRole(vtkTypeUInt32 role);
// Description:
// Query whether this process is a client
bool IsClientProcess();
// Description:
// Query whether this process is a data server
bool IsDataServerProcess();
// Description:
// Sends the data type from the root node of the server to the client
int SendDataTypeToClient(int & dataType);
// Description:
// Transfers local data from the server nodes to the client.
void TransferLocalDataToClient();
//ETX
};
#endif // vtkPythonRepresentation_h