VTK
vtkGESignaReader Member List

This is the complete list of members for vtkGESignaReader, including all inherited members.

AbortExecutevtkAlgorithm
AbortExecuteOff()vtkAlgorithmvirtual
AbortExecuteOn()vtkAlgorithmvirtual
AddInputConnection(int port, vtkAlgorithmOutput *input)vtkAlgorithmvirtual
AddInputConnection(vtkAlgorithmOutput *input)vtkAlgorithmvirtual
AddInputData(vtkDataObject *)vtkImageAlgorithmvirtual
AddInputData(int, vtkDataObject *)vtkImageAlgorithmvirtual
AddInputDataInternal(int port, vtkDataObject *input)vtkAlgorithminlineprotected
AddInputDataObject(int port, vtkDataObject *data)vtkAlgorithmvirtual
AddInputDataObject(vtkDataObject *data)vtkAlgorithminlinevirtual
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)vtkObjectinline
AddObserver(unsigned long event, U observer, void(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)vtkObjectinline
AddObserver(unsigned long event, U observer, bool(T::*callback)(vtkObject *, unsigned long, void *), float priority=0.0f)vtkObjectinline
AllocateOutputData(vtkImageData *out, vtkInformation *outInfo, int *uExtent)vtkImageAlgorithmprotectedvirtual
AllocateOutputData(vtkDataObject *out, vtkInformation *outInfo)vtkImageAlgorithmprotectedvirtual
BreakOnError()vtkObjectstatic
CAN_HANDLE_PIECE_REQUEST()vtkAlgorithmstatic
CAN_PRODUCE_SUB_EXTENT()vtkAlgorithmstatic
CanReadFile(const char *fname)vtkGESignaReadervirtual
vtkMedicalImageReader2::CanReadFile(const char *vtkNotUsed(fname))vtkImageReader2inlinevirtual
CollectRevisions(ostream &)vtkObjectBaseinlineprotectedvirtual
ComputeDataIncrements()vtkImageReader2protectedvirtual
ComputeInternalFileName(int slice)vtkImageReader2virtual
ComputePipelineMTime(vtkInformation *request, vtkInformationVector **inInfoVec, vtkInformationVector *outInfoVec, int requestFromOutputPort, vtkMTimeType *mtime)vtkAlgorithmvirtual
ConvertTotalInputToPortConnection(int ind, int &port, int &conn)vtkAlgorithm
CopyAttributeData(vtkImageData *in, vtkImageData *out, vtkInformationVector **inputVector)vtkImageAlgorithmprotectedvirtual
CopyInputArrayAttributesToOutput(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)vtkImageAlgorithmprotectedvirtual
CreateDefaultExecutive()vtkAlgorithmprotectedvirtual
DataExtentvtkImageReader2protected
DataIncrementsvtkImageReader2protected
DataOriginvtkImageReader2protected
DataScalarTypevtkImageReader2protected
DataSpacingvtkImageReader2protected
DebugvtkObjectprotected
DebugOff()vtkObjectvirtual
DebugOn()vtkObjectvirtual
DEFAULT_PRECISION enum valuevtkAlgorithm
DefaultExecutivePrototypevtkAlgorithmprotectedstatic
Delete()vtkObjectBasevirtual
DesiredOutputPrecision enum namevtkAlgorithm
DOUBLE_PRECISION enum valuevtkAlgorithm
ErrorCodevtkAlgorithmprotected
Execute()vtkImageAlgorithmprotectedvirtual
ExecuteData(vtkDataObject *output)vtkImageAlgorithmprotectedvirtual
ExecuteDataWithInformation(vtkDataObject *out, vtkInformation *outInfo)vtkGESignaReaderprotectedvirtual
ExecuteInformation()vtkGESignaReaderprotectedvirtual
FastDelete()vtkObjectBasevirtual
FilevtkImageReader2protected
FileDimensionalityvtkImageReader2protected
FileLowerLeftvtkImageReader2protected
FileLowerLeftOff()vtkImageReader2virtual
FileLowerLeftOn()vtkImageReader2virtual
FileNamevtkImageReader2protected
FileNamesvtkImageReader2protected
FileNameSliceOffsetvtkImageReader2protected
FileNameSliceSpacingvtkImageReader2protected
FilePatternvtkImageReader2protected
FilePrefixvtkImageReader2protected
FillInputPortInformation(int port, vtkInformation *info) overridevtkImageAlgorithmprotectedvirtual
FillOutputPortInformation(int port, vtkInformation *info) overridevtkImageAlgorithmprotectedvirtual
GetAbortExecute()vtkAlgorithmvirtual
GetClassName() const vtkObjectBase
GetCommand(unsigned long tag)vtkObject
GetDataByteOrder()vtkImageReader2virtual
GetDataByteOrderAsString()vtkImageReader2virtual
GetDataExtent()vtkImageReader2virtual
GetDataExtent(int &, int &, int &, int &, int &, int &)vtkImageReader2virtual
GetDataExtent(int[6])vtkImageReader2virtual
GetDataIncrements()vtkImageReader2virtual
GetDataIncrements(unsigned long data[4])vtkImageReader2virtual
GetDataOrigin()vtkImageReader2virtual
GetDataOrigin(double &, double &, double &)vtkImageReader2virtual
GetDataOrigin(double[3])vtkImageReader2virtual
GetDataScalarType()vtkImageReader2virtual
GetDataSpacing()vtkImageReader2virtual
GetDataSpacing(double &, double &, double &)vtkImageReader2virtual
GetDataSpacing(double[3])vtkImageReader2virtual
GetDate()vtkMedicalImageReader2virtual
GetDebug()vtkObject
GetDescriptiveName()vtkGESignaReaderinlinevirtual
GetErrorCode()vtkAlgorithmvirtual
GetExecutive()vtkAlgorithm
GetFile()vtkImageReader2inline
GetFileDimensionality()vtkImageReader2inline
GetFileExtensions()vtkGESignaReaderinlinevirtual
GetFileLowerLeft()vtkImageReader2virtual
GetFileName()vtkImageReader2virtual
GetFileNames()vtkImageReader2virtual
GetFileNameSliceOffset()vtkImageReader2virtual
GetFileNameSliceSpacing()vtkImageReader2virtual
GetFilePattern()vtkImageReader2virtual
GetFilePrefix()vtkImageReader2virtual
GetGlobalWarningDisplay()vtkObjectstatic
GetHeaderSize()vtkImageReader2
GetHeaderSize(unsigned long slice)vtkImageReader2
GetImageDataInput(int port)vtkImageAlgorithm
GetImageNumber()vtkMedicalImageReader2virtual
GetInformation()vtkAlgorithmvirtual
GetInput(int port)vtkImageAlgorithm
GetInput()vtkImageAlgorithminline
GetInputAbstractArrayToProcess(int idx, vtkInformationVector **inputVector)vtkAlgorithmprotected
GetInputAbstractArrayToProcess(int idx, vtkInformationVector **inputVector, int &association)vtkAlgorithmprotected
GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector)vtkAlgorithmprotected
GetInputAbstractArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association)vtkAlgorithmprotected
GetInputAbstractArrayToProcess(int idx, vtkDataObject *input)vtkAlgorithmprotected
GetInputAbstractArrayToProcess(int idx, vtkDataObject *input, int &association)vtkAlgorithmprotected
GetInputAlgorithm(int port, int index, int &algPort)vtkAlgorithm
GetInputAlgorithm(int port, int index)vtkAlgorithm
GetInputAlgorithm()vtkAlgorithminline
GetInputArrayAssociation(int idx, vtkInformationVector **inputVector)vtkAlgorithmprotected
GetInputArrayAssociation(int idx, int connection, vtkInformationVector **inputVector)vtkAlgorithmprotected
GetInputArrayAssociation(int idx, vtkDataObject *input)vtkAlgorithmprotected
GetInputArrayFieldInformation(int idx, vtkInformationVector **inputVector)vtkAlgorithmprotected
GetInputArrayInformation(int idx)vtkAlgorithm
GetInputArrayToProcess(int idx, vtkInformationVector **inputVector)vtkAlgorithmprotected
GetInputArrayToProcess(int idx, vtkInformationVector **inputVector, int &association)vtkAlgorithmprotected
GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector)vtkAlgorithmprotected
GetInputArrayToProcess(int idx, int connection, vtkInformationVector **inputVector, int &association)vtkAlgorithmprotected
GetInputArrayToProcess(int idx, vtkDataObject *input)vtkAlgorithmprotected
GetInputArrayToProcess(int idx, vtkDataObject *input, int &association)vtkAlgorithmprotected
GetInputConnection(int port, int index)vtkAlgorithm
GetInputDataObject(int port, int connection)vtkAlgorithm
GetInputExecutive(int port, int index)vtkAlgorithm
GetInputExecutive()vtkAlgorithminline
GetInputInformation(int port, int index)vtkAlgorithm
GetInputInformation()vtkAlgorithminline
GetInputPortInformation(int port)vtkAlgorithm
GetInternalFileName()vtkImageReader2virtual
GetMedicalImageProperties()vtkMedicalImageReader2virtual
GetMemoryBuffer()vtkImageReader2inlinevirtual
GetMemoryBufferLength()vtkImageReader2inline
GetModality()vtkMedicalImageReader2virtual
GetMTime()vtkObjectvirtual
GetNumberOfInputConnections(int port)vtkAlgorithm
GetNumberOfInputPorts()vtkAlgorithm
GetNumberOfOutputPorts()vtkAlgorithm
GetNumberOfScalarComponents()vtkImageReader2virtual
GetOutput()vtkImageAlgorithm
GetOutput(int)vtkImageAlgorithm
GetOutputDataObject(int port)vtkAlgorithm
GetOutputInformation(int port)vtkAlgorithm
GetOutputPort(int index)vtkAlgorithm
GetOutputPort()vtkAlgorithminline
GetOutputPortInformation(int port)vtkAlgorithm
GetPatientID()vtkMedicalImageReader2virtual
GetPatientName()vtkMedicalImageReader2virtual
GetProgress()vtkAlgorithmvirtual
GetProgressObserver()vtkAlgorithmvirtual
GetProgressText()vtkAlgorithmvirtual
GetReferenceCount()vtkObjectBaseinline
GetReleaseDataFlag()vtkAlgorithmvirtual
GetSeries()vtkMedicalImageReader2virtual
GetStudy()vtkMedicalImageReader2virtual
GetSwapBytes()vtkImageReader2inlinevirtual
GetTotalNumberOfInputConnections()vtkAlgorithm
GetUpdateExtent()vtkAlgorithminline
GetUpdateExtent(int port)vtkAlgorithm
GetUpdateExtent(int &x0, int &x1, int &y0, int &y1, int &z0, int &z1)vtkAlgorithminline
GetUpdateExtent(int port, int &x0, int &x1, int &y0, int &y1, int &z0, int &z1)vtkAlgorithm
GetUpdateExtent(int extent[6])vtkAlgorithminline
GetUpdateExtent(int port, int extent[6])vtkAlgorithm
GetUpdateGhostLevel()vtkAlgorithminline
GetUpdateGhostLevel(int port)vtkAlgorithm
GetUpdateNumberOfPieces()vtkAlgorithminline
GetUpdateNumberOfPieces(int port)vtkAlgorithm
GetUpdatePiece()vtkAlgorithminline
GetUpdatePiece(int port)vtkAlgorithm
GlobalWarningDisplayOff()vtkObjectinlinestatic
GlobalWarningDisplayOn()vtkObjectinlinestatic
HasExecutive()vtkAlgorithm
HasObserver(unsigned long event, vtkCommand *)vtkObject
HasObserver(const char *event, vtkCommand *)vtkObject
HasObserver(unsigned long event)vtkObject
HasObserver(const char *event)vtkObject
HeaderSizevtkImageReader2protected
InformationvtkAlgorithmprotected
InitializeObjectBase()vtkObjectBase
INPUT_ARRAYS_TO_PROCESS()vtkAlgorithmstatic
INPUT_CONNECTION()vtkAlgorithmstatic
INPUT_IS_OPTIONAL()vtkAlgorithmstatic
INPUT_IS_REPEATABLE()vtkAlgorithmstatic
INPUT_PORT()vtkAlgorithmstatic
INPUT_REQUIRED_DATA_TYPE()vtkAlgorithmstatic
INPUT_REQUIRED_FIELDS()vtkAlgorithmstatic
InputPortIndexInRange(int index, const char *action)vtkAlgorithmprotected
InternalFileNamevtkImageReader2protected
InternalGrabFocus(vtkCommand *mouseEvents, vtkCommand *keypressEvents=NULL)vtkObjectprotected
InternalReleaseFocus()vtkObjectprotected
InvokeEvent(unsigned long event, void *callData)vtkObject
InvokeEvent(const char *event, void *callData)vtkObject
InvokeEvent(unsigned long event)vtkObjectinline
InvokeEvent(const char *event)vtkObjectinline
IsA(const char *type)vtkGESignaReadervirtual
IsTypeOf(const char *type)vtkGESignaReaderstatic
ManualHeaderSizevtkImageReader2protected
MedicalImagePropertiesvtkMedicalImageReader2protected
MemoryBuffervtkImageReader2protected
MemoryBufferLengthvtkImageReader2protected
Modified()vtkObjectvirtual
ModifyRequest(vtkInformation *request, int when)vtkAlgorithmvirtual
MTimevtkObjectprotected
New()vtkGESignaReaderstatic
NewInstance() const vtkGESignaReader
NewInstanceInternal() const vtkGESignaReaderprotectedvirtual
NumberOfScalarComponentsvtkImageReader2protected
OpenFile()vtkImageReader2virtual
vtkObjectBase::operator=(const vtkObjectBase &)vtkObjectBaseinlineprotected
OutputPortIndexInRange(int index, const char *action)vtkAlgorithmprotected
PORT_REQUIREMENTS_FILLED()vtkAlgorithmprotectedstatic
Print(ostream &os)vtkObjectBase
PrintHeader(ostream &os, vtkIndent indent)vtkObjectBasevirtual
PrintRevisions(ostream &)vtkObjectBaseinline
PrintSelf(ostream &os, vtkIndent indent) overridevtkGESignaReadervirtual
PrintTrailer(ostream &os, vtkIndent indent)vtkObjectBasevirtual
ProcessRequest(vtkInformation *, vtkInformationVector **, vtkInformationVector *) overridevtkImageAlgorithmvirtual
vtkAlgorithm::ProcessRequest(vtkInformation *request, vtkCollection *inInfo, vtkInformationVector *outInfo)vtkAlgorithm
ProgressvtkAlgorithmprotected
ProgressObservervtkAlgorithmprotected
ProgressTextvtkAlgorithmprotected
PropagateUpdateExtent()vtkAlgorithmvirtual
ReferenceCountvtkObjectBaseprotected
Register(vtkObjectBase *o) overridevtkAlgorithmvirtual
RegisterInternal(vtkObjectBase *, vtkTypeBool check) overridevtkObjectprotectedvirtual
ReleaseDataFlagOff()vtkAlgorithm
ReleaseDataFlagOn()vtkAlgorithm
RemoveAllInputConnections(int port)vtkAlgorithmvirtual
RemoveAllInputs()vtkAlgorithm
RemoveAllObservers()vtkObject
RemoveInputConnection(int port, vtkAlgorithmOutput *input)vtkAlgorithmvirtual
RemoveInputConnection(int port, int idx)vtkAlgorithmvirtual
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 *) overridevtkAlgorithmprotectedvirtual
RequestData(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)vtkImageAlgorithmprotectedvirtual
RequestInformation(vtkInformation *request, vtkInformationVector **inputVector, vtkInformationVector *outputVector)vtkImageReader2protectedvirtual
RequestUpdateExtent(vtkInformation *, vtkInformationVector **, vtkInformationVector *)vtkImageAlgorithmprotectedvirtual
SafeDownCast(vtkObjectBase *o)vtkGESignaReaderstatic
SeekFile(int i, int j, int k)vtkImageReader2virtual
SetAbortExecute(int)vtkAlgorithmvirtual
SetDataByteOrder(int)vtkImageReader2virtual
SetDataByteOrderToBigEndian()vtkImageReader2virtual
SetDataByteOrderToLittleEndian()vtkImageReader2virtual
SetDataExtent(int, int, int, int, int, int)vtkImageReader2virtual
SetDataExtent(int[6])vtkImageReader2virtual
SetDataOrigin(double, double, double)vtkImageReader2virtual
SetDataOrigin(double[3])vtkImageReader2virtual
SetDataScalarType(int type)vtkImageReader2virtual
SetDataScalarTypeToChar()vtkImageReader2inlinevirtual
SetDataScalarTypeToDouble()vtkImageReader2inlinevirtual
SetDataScalarTypeToFloat()vtkImageReader2inlinevirtual
SetDataScalarTypeToInt()vtkImageReader2inlinevirtual
SetDataScalarTypeToShort()vtkImageReader2inlinevirtual
SetDataScalarTypeToSignedChar()vtkImageReader2inlinevirtual
SetDataScalarTypeToUnsignedChar()vtkImageReader2inlinevirtual
SetDataScalarTypeToUnsignedInt()vtkImageReader2inlinevirtual
SetDataScalarTypeToUnsignedShort()vtkImageReader2inlinevirtual
SetDataSpacing(double, double, double)vtkImageReader2virtual
SetDataSpacing(double[3])vtkImageReader2virtual
SetDate(const char *)vtkMedicalImageReader2virtual
SetDebug(bool debugFlag)vtkObject
SetDefaultExecutivePrototype(vtkExecutive *proto)vtkAlgorithmstatic
SetErrorCode(unsigned long)vtkAlgorithmprotectedvirtual
SetExecutive(vtkExecutive *executive)vtkAlgorithmvirtual
SetFileDimensionality(int)vtkImageReader2virtual
SetFileLowerLeft(int)vtkImageReader2virtual
SetFileName(const char *)vtkImageReader2virtual
SetFileNames(vtkStringArray *)vtkImageReader2virtual
SetFileNameSliceOffset(int)vtkImageReader2virtual
SetFileNameSliceSpacing(int)vtkImageReader2virtual
SetFilePattern(const char *)vtkImageReader2virtual
SetFilePrefix(const char *)vtkImageReader2virtual
SetGlobalWarningDisplay(int val)vtkObjectstatic
SetHeaderSize(unsigned long size)vtkImageReader2virtual
SetImageNumber(const char *)vtkMedicalImageReader2virtual
SetInformation(vtkInformation *)vtkAlgorithmvirtual
SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, const char *name)vtkAlgorithmvirtual
SetInputArrayToProcess(int idx, int port, int connection, int fieldAssociation, int fieldAttributeType)vtkAlgorithmvirtual
SetInputArrayToProcess(int idx, vtkInformation *info)vtkAlgorithmvirtual
SetInputArrayToProcess(int idx, int port, int connection, const char *fieldAssociation, const char *attributeTypeorName)vtkAlgorithmvirtual
SetInputConnection(int port, vtkAlgorithmOutput *input)vtkAlgorithmvirtual
SetInputConnection(vtkAlgorithmOutput *input)vtkAlgorithmvirtual
SetInputData(vtkDataObject *)vtkImageAlgorithm
SetInputData(int, vtkDataObject *)vtkImageAlgorithm
SetInputDataInternal(int port, vtkDataObject *input)vtkAlgorithminlineprotected
SetInputDataObject(int port, vtkDataObject *data)vtkAlgorithmvirtual
SetInputDataObject(vtkDataObject *data)vtkAlgorithminlinevirtual
SetMemoryBuffer(void *)vtkImageReader2virtual
SetMemoryBufferLength(vtkIdType buflen)vtkImageReader2virtual
SetModality(const char *)vtkMedicalImageReader2virtual
SetNthInputConnection(int port, int index, vtkAlgorithmOutput *input)vtkAlgorithmprotectedvirtual
SetNumberOfInputConnections(int port, int n)vtkAlgorithmprotectedvirtual
SetNumberOfInputPorts(int n)vtkAlgorithmprotectedvirtual
SetNumberOfOutputPorts(int n)vtkAlgorithmprotectedvirtual
SetNumberOfScalarComponents(int)vtkImageReader2virtual
SetOutput(vtkDataObject *d)vtkImageAlgorithmvirtual
SetPatientID(const char *)vtkMedicalImageReader2virtual
SetPatientName(const char *)vtkMedicalImageReader2virtual
SetProgress(double)vtkAlgorithmvirtual
SetProgressObserver(vtkProgressObserver *)vtkAlgorithm
SetProgressText(const char *ptext)vtkAlgorithm
SetReferenceCount(int)vtkObjectBase
SetReleaseDataFlag(int)vtkAlgorithmvirtual
SetSeries(const char *)vtkMedicalImageReader2virtual
SetStudy(const char *)vtkMedicalImageReader2virtual
SetSwapBytes(int)vtkImageReader2virtual
SetUpdateExtent(int port, int piece, int numPieces, int ghostLevel)vtkAlgorithm
SetUpdateExtent(int piece, int numPieces, int ghostLevel)vtkAlgorithm
SetUpdateExtent(int port, int extent[6])vtkAlgorithm
SetUpdateExtent(int extent[6])vtkAlgorithm
SetUpdateExtentToWholeExtent(int port)vtkAlgorithm
SetUpdateExtentToWholeExtent()vtkAlgorithm
SINGLE_PRECISION enum valuevtkAlgorithm
SubjectHelpervtkObjectprotected
Superclass typedefvtkGESignaReader
SwapBytesvtkImageReader2protected
SwapBytesOff()vtkImageReader2virtual
SwapBytesOn()vtkImageReader2virtual
UnRegister(vtkObjectBase *o) overridevtkAlgorithmvirtual
UnRegisterInternal(vtkObjectBase *, vtkTypeBool check) overridevtkObjectprotectedvirtual
Update(int port)vtkAlgorithmvirtual
Update()vtkAlgorithmvirtual
Update(int port, vtkInformationVector *requests)vtkAlgorithmvirtual
Update(vtkInformation *requests)vtkAlgorithmvirtual
UpdateDataObject()vtkAlgorithmvirtual
UpdateExtent(const int extents[6])vtkAlgorithmvirtual
UpdateExtentIsEmpty(vtkInformation *pinfo, vtkDataObject *output)vtkAlgorithm
UpdateExtentIsEmpty(vtkInformation *pinfo, int extentType)vtkAlgorithm
UpdateInformation()vtkAlgorithmvirtual
UpdatePiece(int piece, int numPieces, int ghostLevels, const int extents[6]=0)vtkAlgorithmvirtual
UpdateProgress(double amount)vtkAlgorithm
UpdateTimeStep(double time, int piece=-1, int numPieces=1, int ghostLevels=0, const int extents[6]=0)vtkAlgorithmvirtual
UpdateWholeExtent()vtkAlgorithmvirtual
vtkAlgorithm()vtkAlgorithmprotected
vtkBaseTypeMacro(vtkObject, vtkObjectBase)vtkObject
vtkGESignaReader()vtkGESignaReaderinlineprotected
vtkImageAlgorithm()vtkImageAlgorithmprotected
vtkImageReader2()vtkImageReader2protected
vtkMedicalImageReader2()vtkMedicalImageReader2protected
vtkObject()vtkObjectprotected
vtkObjectBase()vtkObjectBaseprotected
vtkObjectBase(const vtkObjectBase &)vtkObjectBaseinlineprotected
WeakPointersvtkObjectBaseprotected
~vtkAlgorithm() overridevtkAlgorithmprotected
~vtkGESignaReader()vtkGESignaReaderinlineprotected
~vtkImageAlgorithm() overridevtkImageAlgorithmprotected
~vtkImageReader2()vtkImageReader2protected
~vtkMedicalImageReader2()vtkMedicalImageReader2protected
~vtkObject() overridevtkObjectprotected
~vtkObjectBase()vtkObjectBaseprotectedvirtual