21#ifndef __vtkMRMLStreamingVolumeNode_h
22#define __vtkMRMLStreamingVolumeNode_h
33#include "vtkStreamingVolumeCodec.h"
36#include <vtkImageData.h>
38#include <vtkStdString.h>
39#include <vtkUnsignedCharArray.h>
50 void PrintSelf(ostream& os, vtkIndent indent)
override;
60 void WriteXML(ostream& of,
int indent)
override;
68 {
return "StreamingVolume";}
81 vtkStreamingVolumeFrame*
GetFrame(){
return this->Frame.GetPointer();};
100 FrameModifiedEvent = 18002
104 vtkSetMacro(Codec, vtkStreamingVolumeCodec*);
109 vtkGetMacro(CodecFourCC, std::string);
110 vtkSetMacro(CodecFourCC, std::string);
130 vtkSmartPointer<vtkStreamingVolumeCodec>
Codec;
132 vtkSmartPointer<vtkStreamingVolumeFrame>
Frame;
133 bool FrameDecoded{
false};
134 bool FrameDecodingInProgress{
false};
Abstract Superclass for all specific types of MRML nodes.
MRML node for representing a single compressed video frame that can be decoded to an image representa...
void operator=(const vtkMRMLStreamingVolumeNode &)
virtual bool DecodeFrame()
vtkStreamingVolumeCodec * GetCodec()
void AllocateImageForFrame(vtkImageData *imageData)
Allocates the vtkImageData so that the compressed image data can be decoded.
std::string GetCodecParameterString()
virtual bool EncodeImageData(bool forceKeyFrame=false)
vtkAlgorithmOutput * GetImageDataConnection() override
Return the input image data pipeline.
vtkMRMLStreamingVolumeNode(const vtkMRMLStreamingVolumeNode &)
vtkStreamingVolumeFrame * GetFrame()
Returns a pointer to the current frame.
virtual bool IsKeyFrame()
void SetCodecParameterString(std::string parameterString)
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
vtkSmartPointer< vtkStreamingVolumeCodec > Codec
~vtkMRMLStreamingVolumeNode() override
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
static vtkMRMLStreamingVolumeNode * New()
void SetAndObserveFrame(vtkStreamingVolumeFrame *frame)
void WriteXML(ostream &of, int indent) override
Write this node's information to a MRML file in XML format.
static void FrameModifiedCallback(vtkObject *caller, unsigned long eid, void *clientData, void *callData)
vtkMRMLStreamingVolumeNode()
void PrintSelf(ostream &os, vtkIndent indent) override
vtkSmartPointer< vtkStreamingVolumeFrame > Frame
void ProcessMRMLEvents(vtkObject *caller, unsigned long event, void *callData) override
alternative method to propagate events generated in Display nodes
void ReadXMLAttributes(const char **atts) override
Set node attributes.
void SetAndObserveImageData(vtkImageData *imageData) override
vtkImageData * GetImageData() override
vtkMRMLCopyContentMacro(vtkMRMLStreamingVolumeNode)
bool HasExternalImageObserver()
Returns true if the number of observers on the ImageData or ImageDataConnection is greater than the d...
vtkSmartPointer< vtkCallbackCommand > FrameModifiedCallbackCommand
MRML node for representing a vector volume (image stack).