37 #include <vtkImageChangeInformation.h>
38 #include <vtkImageData.h>
51 mStatus =
"USE_DEFAULT";
52 mRedirecter = vtkSmartPointer<vtkImageChangeInformation>::New();
58 mEmptyImage.reset(
new Image(uid, emptyImage));
59 mReceivedImage = mEmptyImage;
60 mRedirecter->SetInputData(mEmptyImage->getBaseVtkImageData());
63 mTimeoutTimer =
new QTimer(
this);
64 mTimeoutTimer->setInterval(1000);
65 connect(mTimeoutTimer, SIGNAL(timeout()),
this, SLOT(timeout()));
77 mTimeoutTimer->setParent(NULL);
87 return mReceivedImage->getUid();
91 return mReceivedImage->getName();
94 void BasicVideoSource::timeout()
111 return mReceivedImage->getAcquisitionTime().toMSecsSinceEpoch();
116 return (mReceivedImage!=mEmptyImage);
126 mRedirecter->SetOutputSpacing(resolution, resolution, resolution);
131 mRedirecter->Update();
132 return mRedirecter->GetOutput();
144 mTimeoutTimer->start();
162 mTimeoutTimer->stop();
171 if (mStatus!=
"USE_DEFAULT")
176 return "Not connected";
178 return "Not streaming";
192 mReceivedImage = input;
199 mEmptyImage.reset(
new Image(mReceivedImage->getUid(), mEmptyImage->getBaseVtkImageData()));
201 mReceivedImage = mEmptyImage;
203 mRedirecter->SetInputData(mReceivedImage->getBaseVtkImageData());
204 mRedirecter->Update();
209 mTimeoutTimer->start();
void overrideTimeout(bool timeout)
void connected(bool on)
emitted when source is connected/disconnected
virtual double getTimestamp()
void streaming(bool on)
emitted when streaming started/stopped
virtual void setResolution(double resolution)
boost::shared_ptr< class Image > ImagePtr
virtual void stop()
stop streaming
virtual bool isStreaming() const
return true when the source is streaming data.
void reportWarning(QString msg)
virtual void start()
start streaming
BasicVideoSource(QString uid="<none>")
vtkImageDataPtr generateVtkImageData(Eigen::Array3i dim, Vector3D spacing, const unsigned char initValue, int components)
virtual QString getStatusString() const
status text describing the stream state, display instead of stream when the stream is invalid...
virtual vtkImageDataPtr getVtkImageData()
Eigen::Vector3d Vector3D
Vector3D is a representation of a point or vector in 3D.
virtual bool validData() const
return true is data stream is ok to display. This is a heuristic based on the data rate...
void setInput(ImagePtr input)
void newFrame()
emitted when a new frame has arrived (getVtkImageData() returns something new). info/status/name/vali...
virtual QString getName()
virtual bool isConnected() const
return true when a connection to the data source is established.
virtual ~BasicVideoSource()