ABORTED() | vtkAlgorithm | static |
AbortExecute | vtkAlgorithm | |
AbortExecuteOff() | vtkAlgorithm | virtual |
AbortExecuteOn() | vtkAlgorithm | virtual |
AddInputConnection(int port, vtkAlgorithmOutput *input) | vtkAlgorithm | virtual |
AddInputConnection(vtkAlgorithmOutput *input) | vtkAlgorithm | virtual |
AddInputData(vtkDataObject *) | vtkImageAlgorithm | virtual |
AddInputData(int, vtkDataObject *) | vtkImageAlgorithm | virtual |
AddInputDataInternal(int port, vtkDataObject *input) | vtkAlgorithm | inlineprotected |
AddInputDataObject(int port, vtkDataObject *data) | vtkAlgorithm | virtual |
AddInputDataObject(vtkDataObject *data) | vtkAlgorithm | inlinevirtual |
AddObserver(unsigned long event, vtkCommand *, float priority=0.0f) | vtkObject | |
AddObserver(const char *event, vtkCommand *, float priority=0.0f) | vtkObject | |
AddObserver(unsigned long event, U observer, void(T::*callback)(), float priority=0.0f) | vtkObject | inline |
AddObserver(unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) | vtkObject | inline |
AddObserver(unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f) | vtkObject | inline |
AllocateOutputData(vtkImageData *out, vtkInformation *outInfo, int *uExtent) | vtkImageAlgorithm | protectedvirtual |
AllocateOutputData(vtkDataObject *out, vtkInformation *outInfo) | vtkImageAlgorithm | protectedvirtual |
BreakOnError() | vtkObject | static |
CAN_HANDLE_PIECE_REQUEST() | vtkAlgorithm | static |
CAN_PRODUCE_SUB_EXTENT() | vtkAlgorithm | static |
CheckAbort() | vtkAlgorithm | |
CheckUpstreamAbort() | vtkAlgorithm | protected |
ClipSegment(int &a0, int &a1, int &b0, int &b1) | vtkImageCanvasSource2D | protected |
ComputePipelineMTime(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, vtkMTimeType *mtime) | vtkAlgorithm | virtual |
ConvertTotalInputToPortConnection(int ind, int &port, int &conn) | vtkAlgorithm | |
CopyAttributeData(vtkImageData *in, vtkImageData *out, vtkInformationVector **inputVector) | vtkImageAlgorithm | protectedvirtual |
CopyInputArrayAttributesToOutput(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector) | vtkImageAlgorithm | protectedvirtual |
CreateDefaultExecutive() | vtkAlgorithm | protectedvirtual |
Debug | vtkObject | protected |
DebugOff() | vtkObject | virtual |
DebugOn() | vtkObject | virtual |
DEFAULT_PRECISION enum value | vtkAlgorithm | |
DefaultExecutivePrototype | vtkAlgorithm | protectedstatic |
DefaultZ | vtkImageCanvasSource2D | protected |
Delete() | vtkObjectBase | virtual |
DesiredOutputPrecision enum name | vtkAlgorithm | |
DOUBLE_PRECISION enum value | vtkAlgorithm | |
DrawCircle(int c0, int c1, double radius) | vtkImageCanvasSource2D | |
DrawColor | vtkImageCanvasSource2D | protected |
DrawImage(int x0, int y0, vtkImageData *i) | vtkImageCanvasSource2D | inline |
DrawImage(int x0, int y0, vtkImageData *, int sx, int sy, int width, int height) | vtkImageCanvasSource2D | |
DrawPoint(int p0, int p1) | vtkImageCanvasSource2D | |
DrawSegment(int x0, int y0, int x1, int y1) | vtkImageCanvasSource2D | |
DrawSegment3D(double *p0, double *p1) | vtkImageCanvasSource2D | |
DrawSegment3D(double x1, double y1, double z1, double x2, double y2, double z2) | vtkImageCanvasSource2D | inline |
ErrorCode | vtkAlgorithm | protected |
Execute() | vtkImageAlgorithm | protectedvirtual |
ExecuteData(vtkDataObject *output) | vtkImageAlgorithm | protectedvirtual |
ExecuteDataWithInformation(vtkDataObject *output, vtkInformation *outInfo) | vtkImageAlgorithm | protectedvirtual |
FastDelete() | vtkObjectBase | virtual |
FillBox(int min0, int max0, int min1, int max1) | vtkImageCanvasSource2D | |
FillInputPortInformation(int port, vtkInformation *info) override | vtkImageAlgorithm | protectedvirtual |
FillOutputPortInformation(int port, vtkInformation *info) override | vtkImageAlgorithm | protectedvirtual |
FillPixel(int x, int y) | vtkImageCanvasSource2D | |
FillTriangle(int x0, int y0, int x1, int y1, int x2, int y2) | vtkImageCanvasSource2D | |
FillTube(int x0, int y0, int x1, int y1, double radius) | vtkImageCanvasSource2D | |
GetAbortExecute() | vtkAlgorithm | virtual |
GetAbortOutput() | vtkAlgorithm | virtual |
GetAlternateFreeFunction() | vtkObjectBase | protectedstatic |
GetClassName() const | vtkObjectBase | |
GetCommand(unsigned long tag) | vtkObject | |
GetContainerAlgorithm() | vtkAlgorithm | inline |
GetCurrentFreeFunction() | vtkObjectBase | protectedstatic |
GetCurrentMallocFunction() | vtkObjectBase | protectedstatic |
GetCurrentReallocFunction() | vtkObjectBase | protectedstatic |
GetDebug() | vtkObject | |
GetDefaultZ() | vtkImageCanvasSource2D | virtual |
GetDrawColor() | vtkImageCanvasSource2D | virtual |
GetDrawColor(double &, double &, double &, double &) | vtkImageCanvasSource2D | virtual |
GetDrawColor(double[4]) | vtkImageCanvasSource2D | virtual |
GetErrorCode() | vtkAlgorithm | virtual |
GetExecutive() | vtkAlgorithm | |
GetGlobalWarningDisplay() | vtkObject | static |
GetImageDataInput(int port) | vtkImageAlgorithm | |
GetInformation() | vtkAlgorithm | virtual |
GetInput(int port) | vtkImageAlgorithm | |
GetInput() | vtkImageAlgorithm | inline |
GetInputAbstractArrayToProcess(int idx, vtkInformationVector **inputVector) | vtkAlgorithm | protected |
GetInputAbstractArrayToProcess(int idx, vtkInformationVector **inputVector, int &association) | vtkAlgorithm | protected |
GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector) | vtkAlgorithm | protected |
GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association) | vtkAlgorithm | protected |
GetInputAbstractArrayToProcess(int idx, vtkDataObject *input) | vtkAlgorithm | protected |
GetInputAbstractArrayToProcess(int idx, vtkDataObject *input, int &association) | vtkAlgorithm | protected |
GetInputAlgorithm(int port, int index, int &algPort) | vtkAlgorithm | |
GetInputAlgorithm(int port, int index) | vtkAlgorithm | |
GetInputAlgorithm() | vtkAlgorithm | inline |
GetInputArrayAssociation(int idx, vtkInformationVector **inputVector) | vtkAlgorithm | protected |
GetInputArrayAssociation(int idx, int connection, vtkInformationVector **inputVector) | vtkAlgorithm | protected |
GetInputArrayAssociation(int idx, vtkDataObject *input) | vtkAlgorithm | protected |
GetInputArrayFieldInformation(int idx, vtkInformationVector **inputVector) | vtkAlgorithm | protected |
GetInputArrayInformation(int idx) | vtkAlgorithm | |
GetInputArrayToProcess(int idx, vtkInformationVector **inputVector) | vtkAlgorithm | protected |
GetInputArrayToProcess(int idx, vtkInformationVector **inputVector, int &association) | vtkAlgorithm | protected |
GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector) | vtkAlgorithm | protected |
GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association) | vtkAlgorithm | protected |
GetInputArrayToProcess(int idx, vtkDataObject *input) | vtkAlgorithm | protected |
GetInputArrayToProcess(int idx, vtkDataObject *input, int &association) | vtkAlgorithm | protected |
GetInputConnection(int port, int index) | vtkAlgorithm | |
GetInputDataObject(int port, int connection) | vtkAlgorithm | |
GetInputExecutive(int port, int index) | vtkAlgorithm | |
GetInputExecutive() | vtkAlgorithm | inline |
GetInputInformation(int port, int index) | vtkAlgorithm | |
GetInputInformation() | vtkAlgorithm | inline |
GetInputPortInformation(int port) | vtkAlgorithm | |
GetIsInMemkind() const | vtkObjectBase | |
GetMTime() | vtkObject | virtual |
GetNumberOfGenerationsFromBase(const char *name) | vtkObjectBase | virtual |
GetNumberOfGenerationsFromBaseType(const char *name) | vtkObjectBase | static |
GetNumberOfInputConnections(int port) | vtkAlgorithm | |
GetNumberOfInputPorts() | vtkAlgorithm | |
GetNumberOfOutputPorts() | vtkAlgorithm | |
GetNumberOfScalarComponents() const | vtkImageCanvasSource2D | virtual |
GetObjectDescription() const override | vtkObject | virtual |
GetObjectName() const | vtkObject | virtual |
GetOutput() | vtkImageAlgorithm | |
GetOutput(int) | vtkImageAlgorithm | |
GetOutputDataObject(int port) | vtkAlgorithm | |
GetOutputInformation(int port) | vtkAlgorithm | |
GetOutputPort(int index) | vtkAlgorithm | |
GetOutputPort() | vtkAlgorithm | inline |
GetOutputPortInformation(int port) | vtkAlgorithm | |
GetProgress() | vtkAlgorithm | virtual |
GetProgressObserver() | vtkAlgorithm | virtual |
GetProgressScale() | vtkAlgorithm | virtual |
GetProgressShift() | vtkAlgorithm | virtual |
GetProgressText() | vtkAlgorithm | virtual |
GetRatio() | vtkImageCanvasSource2D | virtual |
GetRatio(double &, double &, double &) | vtkImageCanvasSource2D | virtual |
GetRatio(double[3]) | vtkImageCanvasSource2D | virtual |
GetReferenceCount() | vtkObjectBase | inline |
GetReleaseDataFlag() | vtkAlgorithm | virtual |
GetScalarType() const | vtkImageCanvasSource2D | |
GetTotalNumberOfInputConnections() | vtkAlgorithm | |
GetUpdateExtent() | vtkAlgorithm | inline |
GetUpdateExtent(int port) | vtkAlgorithm | |
GetUpdateExtent(int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) | vtkAlgorithm | inline |
GetUpdateExtent(int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1) | vtkAlgorithm | |
GetUpdateExtent(int extent[6]) | vtkAlgorithm | inline |
GetUpdateExtent(int port, int extent[6]) | vtkAlgorithm | |
GetUpdateGhostLevel() | vtkAlgorithm | inline |
GetUpdateGhostLevel(int port) | vtkAlgorithm | |
GetUpdateNumberOfPieces() | vtkAlgorithm | inline |
GetUpdateNumberOfPieces(int port) | vtkAlgorithm | |
GetUpdatePiece() | vtkAlgorithm | inline |
GetUpdatePiece(int port) | vtkAlgorithm | |
GetUsingMemkind() | vtkObjectBase | static |
GlobalWarningDisplayOff() | vtkObject | inlinestatic |
GlobalWarningDisplayOn() | vtkObject | inlinestatic |
HasExecutive() | vtkAlgorithm | |
HasObserver(unsigned long event, vtkCommand *) | vtkObject | |
HasObserver(const char *event, vtkCommand *) | vtkObject | |
HasObserver(unsigned long event) | vtkObject | |
HasObserver(const char *event) | vtkObject | |
ImageData | vtkImageCanvasSource2D | protected |
Information | vtkAlgorithm | protected |
InitializeCanvasVolume(vtkImageData *volume) | vtkImageCanvasSource2D | |
InitializeObjectBase() | vtkObjectBase | |
INPUT_ARRAYS_TO_PROCESS() | vtkAlgorithm | static |
INPUT_CONNECTION() | vtkAlgorithm | static |
INPUT_IS_OPTIONAL() | vtkAlgorithm | static |
INPUT_IS_REPEATABLE() | vtkAlgorithm | static |
INPUT_PORT() | vtkAlgorithm | static |
INPUT_REQUIRED_DATA_TYPE() | vtkAlgorithm | static |
INPUT_REQUIRED_FIELDS() | vtkAlgorithm | static |
InputPortIndexInRange(int index, const char *action) | vtkAlgorithm | protected |
InternalGrabFocus(vtkCommand *mouseEvents, vtkCommand *keypressEvents=nullptr) | vtkObject | protected |
InternalReleaseFocus() | vtkObject | protected |
InvokeEvent(unsigned long event, void *callData) | vtkObject | |
InvokeEvent(const char *event, void *callData) | vtkObject | |
InvokeEvent(unsigned long event) | vtkObject | inline |
InvokeEvent(const char *event) | vtkObject | inline |
IsA(const char *type) | vtkImageCanvasSource2D | virtual |
IsTypeOf(const char *type) | vtkImageCanvasSource2D | static |
LastAbortCheckTime | vtkAlgorithm | protected |
LastAbortTime | vtkAlgorithm | protectedstatic |
Modified() | vtkObject | virtual |
ModifyRequest(vtkInformation *request, int when) | vtkAlgorithm | virtual |
MTime | vtkObject | protected |
New() | vtkImageCanvasSource2D | static |
NewInstance() const | vtkImageCanvasSource2D | |
NewInstanceInternal() const | vtkImageCanvasSource2D | protectedvirtual |
ObjectName | vtkObject | protected |
vtkObjectBase::operator=(const vtkObjectBase &) | vtkObjectBase | inlineprotected |
OutputPortIndexInRange(int index, const char *action) | vtkAlgorithm | protected |
PORT_REQUIREMENTS_FILLED() | vtkAlgorithm | protectedstatic |
Print(ostream &os) | vtkObjectBase | |
PrintHeader(ostream &os, vtkIndent indent) | vtkObjectBase | virtual |
PrintSelf(ostream &os, vtkIndent indent) override | vtkImageCanvasSource2D | virtual |
PrintTrailer(ostream &os, vtkIndent indent) | vtkObjectBase | virtual |
ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override | vtkImageAlgorithm | virtual |
vtkAlgorithm::ProcessRequest(vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo) | vtkAlgorithm | |
Progress | vtkAlgorithm | protected |
ProgressObserver | vtkAlgorithm | protected |
ProgressText | vtkAlgorithm | protected |
PropagateUpdateExtent() | vtkAlgorithm | virtual |
Ratio | vtkImageCanvasSource2D | protected |
ReferenceCount | vtkObjectBase | protected |
Register(vtkObjectBase *o) | vtkObjectBase | |
RegisterInternal(vtkObjectBase *, vtkTypeBool check) override | vtkObject | protectedvirtual |
ReleaseDataFlagOff() | vtkAlgorithm | |
ReleaseDataFlagOn() | vtkAlgorithm | |
RemoveAllInputConnections(int port) | vtkAlgorithm | virtual |
RemoveAllInputs() | vtkAlgorithm | |
RemoveAllObservers() | vtkObject | |
RemoveInputConnection(int port, vtkAlgorithmOutput *input) | vtkAlgorithm | virtual |
RemoveInputConnection(int port, int idx) | vtkAlgorithm | virtual |
RemoveNoPriorTemporalAccessInformationKey() | vtkAlgorithm | |
RemoveObserver(vtkCommand *) | vtkObject | |
RemoveObserver(unsigned long tag) | vtkObject | |
RemoveObservers(unsigned long event, vtkCommand *) | vtkObject | |
RemoveObservers(const char *event, vtkCommand *) | vtkObject | |
RemoveObservers(unsigned long event) | vtkObject | |
RemoveObservers(const char *event) | vtkObject | |
ReportReferences(vtkGarbageCollector *) override | vtkAlgorithm | protectedvirtual |
RequestData(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override | vtkImageCanvasSource2D | protectedvirtual |
RequestInformation(vtkInformation *, vtkInformationVector **, vtkInformationVector *) override | vtkImageCanvasSource2D | protectedvirtual |
RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *) | vtkImageAlgorithm | protectedvirtual |
RequestUpdateTime(vtkInformation *, vtkInformationVector **, vtkInformationVector *) | vtkImageAlgorithm | protectedvirtual |
SafeDownCast(vtkObjectBase *o) | vtkImageCanvasSource2D | static |
SetAbortExecute(vtkTypeBool) | vtkAlgorithm | virtual |
SetAbortExecuteAndUpdateTime() | vtkAlgorithm | |
SetAbortOutput(bool) | vtkAlgorithm | virtual |
SetContainerAlgorithm(vtkAlgorithm *containerAlg) | vtkAlgorithm | inline |
SetDebug(bool debugFlag) | vtkObject | |
SetDefaultExecutivePrototype(vtkExecutive *proto) | vtkAlgorithm | static |
SetDefaultZ(int) | vtkImageCanvasSource2D | virtual |
SetDrawColor(double, double, double, double) | vtkImageCanvasSource2D | virtual |
SetDrawColor(double[4]) | vtkImageCanvasSource2D | virtual |
SetDrawColor(double a) | vtkImageCanvasSource2D | inline |
SetDrawColor(double a, double b) | vtkImageCanvasSource2D | inline |
SetDrawColor(double a, double b, double c) | vtkImageCanvasSource2D | inline |
SetErrorCode(unsigned long) | vtkAlgorithm | protectedvirtual |
SetExecutive(vtkExecutive *executive) | vtkAlgorithm | virtual |
SetExtent(int *extent) | vtkImageCanvasSource2D | |
SetExtent(int x1, int x2, int y1, int y2, int z1, int z2) | vtkImageCanvasSource2D | |
SetGlobalWarningDisplay(vtkTypeBool val) | vtkObject | static |
SetInformation(vtkInformation *) | vtkAlgorithm | virtual |
SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, const char *name) | vtkAlgorithm | virtual |
SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, int fieldAttributeType) | vtkAlgorithm | virtual |
SetInputArrayToProcess(int idx, vtkInformation *info) | vtkAlgorithm | virtual |
SetInputArrayToProcess(int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName) | vtkAlgorithm | virtual |
SetInputConnection(int port, vtkAlgorithmOutput *input) | vtkAlgorithm | virtual |
SetInputConnection(vtkAlgorithmOutput *input) | vtkAlgorithm | virtual |
SetInputData(vtkDataObject *) | vtkImageAlgorithm | |
SetInputData(int, vtkDataObject *) | vtkImageAlgorithm | |
SetInputDataInternal(int port, vtkDataObject *input) | vtkAlgorithm | inlineprotected |
SetInputDataObject(int port, vtkDataObject *data) | vtkAlgorithm | virtual |
SetInputDataObject(vtkDataObject *data) | vtkAlgorithm | inlinevirtual |
SetMemkindDirectory(const char *directoryname) | vtkObjectBase | static |
SetNoPriorTemporalAccessInformationKey(int key) | vtkAlgorithm | |
SetNoPriorTemporalAccessInformationKey() | vtkAlgorithm | |
SetNthInputConnection(int port, int index, vtkAlgorithmOutput *input) | vtkAlgorithm | protectedvirtual |
SetNumberOfInputConnections(int port, int n) | vtkAlgorithm | protectedvirtual |
SetNumberOfInputPorts(int n) | vtkAlgorithm | protectedvirtual |
SetNumberOfOutputPorts(int n) | vtkAlgorithm | protectedvirtual |
SetNumberOfScalarComponents(int i) | vtkImageCanvasSource2D | virtual |
SetObjectName(const std::string &objectName) | vtkObject | virtual |
SetOutput(vtkDataObject *d) | vtkImageAlgorithm | virtual |
SetProgressObserver(vtkProgressObserver *) | vtkAlgorithm | |
SetProgressShiftScale(double shift, double scale) | vtkAlgorithm | |
SetProgressText(const char *ptext) | vtkAlgorithm | |
SetRatio(double, double, double) | vtkImageCanvasSource2D | virtual |
SetRatio(double[3]) | vtkImageCanvasSource2D | virtual |
SetReferenceCount(int) | vtkObjectBase | |
SetReleaseDataFlag(vtkTypeBool) | vtkAlgorithm | virtual |
SetScalarType(int) | vtkImageCanvasSource2D | |
SetScalarTypeToChar() | vtkImageCanvasSource2D | inline |
SetScalarTypeToDouble() | vtkImageCanvasSource2D | inline |
SetScalarTypeToFloat() | vtkImageCanvasSource2D | inline |
SetScalarTypeToInt() | vtkImageCanvasSource2D | inline |
SetScalarTypeToLong() | vtkImageCanvasSource2D | inline |
SetScalarTypeToShort() | vtkImageCanvasSource2D | inline |
SetScalarTypeToUnsignedChar() | vtkImageCanvasSource2D | inline |
SetScalarTypeToUnsignedInt() | vtkImageCanvasSource2D | inline |
SetScalarTypeToUnsignedLong() | vtkImageCanvasSource2D | inline |
SetScalarTypeToUnsignedShort() | vtkImageCanvasSource2D | inline |
SINGLE_PRECISION enum value | vtkAlgorithm | |
SubjectHelper | vtkObject | protected |
Superclass typedef | vtkImageCanvasSource2D | |
UnRegister(vtkObjectBase *o) | vtkObjectBase | virtual |
UnRegisterInternal(vtkObjectBase *, vtkTypeBool check) override | vtkObject | protectedvirtual |
Update(int port) | vtkAlgorithm | virtual |
Update() | vtkAlgorithm | virtual |
Update(int port, vtkInformationVector *requests) | vtkAlgorithm | virtual |
Update(vtkInformation *requests) | vtkAlgorithm | virtual |
UpdateDataObject() | vtkAlgorithm | virtual |
UpdateExtent(const int extents[6]) | vtkAlgorithm | virtual |
UpdateExtentIsEmpty(vtkInformation *pinfo, vtkDataObject *output) | vtkAlgorithm | |
UpdateExtentIsEmpty(vtkInformation *pinfo, int extentType) | vtkAlgorithm | |
UpdateInformation() | vtkAlgorithm | virtual |
UpdatePiece(int piece, int numPieces, int ghostLevels, const int extents[6]=nullptr) | vtkAlgorithm | virtual |
UpdateProgress(double amount) | vtkAlgorithm | |
UpdateTimeStep(double time, int piece=-1, int numPieces=1, int ghostLevels=0, const int extents[6]=nullptr) | vtkAlgorithm | virtual |
UpdateWholeExtent() | vtkAlgorithm | virtual |
UsesGarbageCollector() const override | vtkAlgorithm | inlinevirtual |
vtkAlgorithm() | vtkAlgorithm | protected |
vtkBaseTypeMacro(vtkObject, vtkObjectBase) | vtkObject | |
vtkImageAlgorithm() | vtkImageAlgorithm | protected |
vtkImageCanvasSource2D() | vtkImageCanvasSource2D | protected |
vtkObject() | vtkObject | protected |
vtkObjectBase() | vtkObjectBase | protected |
vtkObjectBase(const vtkObjectBase &) | vtkObjectBase | inlineprotected |
WeakPointers | vtkObjectBase | protected |
WholeExtent | vtkImageCanvasSource2D | protected |
~vtkAlgorithm() override | vtkAlgorithm | protected |
~vtkImageAlgorithm() override | vtkImageAlgorithm | protected |
~vtkImageCanvasSource2D() override | vtkImageCanvasSource2D | protected |
~vtkObject() override | vtkObject | protected |
~vtkObjectBase() | vtkObjectBase | protectedvirtual |