1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121
|
/*=========================================================================
Program: ParaView
Module: vtkSMInputProperty.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.
=========================================================================*/
/**
* @class vtkSMInputProperty
* @brief proxy representing inputs to a filter
*
* vtkSMInputProperty is a concrete sub-class of vtkSMProperty representing
* inputs to a filter (through vtkSMProxy). It is a special property that
* always calls AddInput on a vtkSMSourceProxy.
* The xml configuration for input proxy supports the following attributes:
* multiple_input: For an input port that connects multiple connections
* such as the input of an append filter. port_index: The input port to
* be used.
* @sa
* vtkSMInputProperty vtkSMSourceProxy
*/
#ifndef vtkSMInputProperty_h
#define vtkSMInputProperty_h
struct vtkSMInputPropertyInternals;
#include "vtkPVServerManagerCoreModule.h" //needed for exports
#include "vtkSMProxyProperty.h"
class vtkSMStateLocator;
class VTKPVSERVERMANAGERCORE_EXPORT vtkSMInputProperty : public vtkSMProxyProperty
{
public:
static vtkSMInputProperty* New();
vtkTypeMacro(vtkSMInputProperty, vtkSMProxyProperty);
void PrintSelf(ostream& os, vtkIndent indent) VTK_OVERRIDE;
//@{
/**
* Should be set to true if the "input port" this property represents
* can accept multiple inputs (for example, an append filter)
*/
vtkSetMacro(MultipleInput, int);
vtkGetMacro(MultipleInput, int);
//@}
//@{
/**
* Add a proxy to the list of input proxies. The outputPort controls
* which outputPort will be used in connecting the pipeline.
* The proxy is added with corresponding Add and Set methods and
* can be removed with RemoveXXX() methods as usual.
*/
void AddInputConnection(vtkSMProxy* proxy, unsigned int outputPort);
void SetInputConnection(unsigned int idx, vtkSMProxy* proxy, unsigned int outputPort);
//@}
void AddUncheckedInputConnection(vtkSMProxy* proxy, unsigned int outputPort);
void SetUncheckedInputConnection(unsigned int idx, vtkSMProxy* proxy, unsigned int inputPort);
//@{
/**
* Sets the value of the property to the list of proxies specified.
*/
virtual void SetProxies(
unsigned int numElements, vtkSMProxy* proxies[], unsigned int outputports[]);
using Superclass::SetProxies;
//@}
//@{
/**
* Given an index for a connection (proxy), returns which output port
* is used to connect the pipeline.
*/
unsigned int GetOutputPortForConnection(unsigned int idx);
unsigned int GetUncheckedOutputPortForConnection(unsigned int idx);
//@}
//@{
/**
* Controls which input port this property uses when making connections.
* By default, this is 0.
*/
vtkSetMacro(PortIndex, int);
vtkGetMacro(PortIndex, int);
//@}
protected:
vtkSMInputProperty();
~vtkSMInputProperty();
/**
* Set the appropriate ivars from the xml element. Should
* be overwritten by subclass if adding ivars.
*/
virtual int ReadXMLAttributes(vtkSMProxy* parent, vtkPVXMLElement* element) VTK_OVERRIDE;
/**
* Fill state property/proxy XML element with output port attribute
*/
virtual vtkPVXMLElement* AddProxyElementState(
vtkPVXMLElement* propertyElement, unsigned int idx) VTK_OVERRIDE;
int MultipleInput;
int PortIndex;
private:
vtkSMInputProperty(const vtkSMInputProperty&) VTK_DELETE_FUNCTION;
void operator=(const vtkSMInputProperty&) VTK_DELETE_FUNCTION;
};
#endif
|