104 virtual void propertyValueChanged(QString name)
override;
109 virtual void updatePropertyFromTransformation();
113 virtual void resetTransform();
117 virtual void setSlice(
int)
override;
120 virtual void setSlice(
double,
double,
double)
override;
124 virtual int getSlice()
const override;
128 virtual int getNumberOfSlices()
const override;
138 void getArbitraryCenter(
double center[4])
const;
143 void getArbitraryPlaneNormal(
double normalVector[4])
const;
147 vtkSmartPointer<vtkActor> get3DCursor()
override;
151 return arbitraryTransformation.get();
156 return arbitraryFrame.get();
167 void setFrame(
const std::shared_ptr<FrameOfReference>& fr)
override;
172 virtual QMultiMap<const FrameOfReference*, Component*> getAllFrames(
bool includeChildrenFrames)
override;
177 virtual QMultiMap<const Transformation*, Component*> getAllTransformations(
bool includeChildrenTransformations)
override;
183 friend void ImageComponent::fromVariant(
const QVariant&);
189 void initArbitraryTransformation(
const std::shared_ptr<FrameOfReference>& arbitraryFrame,
const std::shared_ptr<FrameOfReference>& dataFrame,
const std::shared_ptr<Transformation>& tr =
nullptr);
192 void resetArbitraryTransformationMatrix();
198 virtual void updateTranslation();
203 virtual void updateRotation();
210 double computeTranslationRatio()
const;
222 void computeIntersectionsWithImageBorders(QVector3D& Cz_min, QVector3D& Cz_max)
const;
238 void computeIntersectionsWithImageBorders(
const QVector3D& origin,
const QVector3D& upVector, QVector3D& intersectionMin, QVector3D& intersectionMax)
const;
241 bool checkCenter(vtkSmartPointer<vtkMatrix4x4>)
const;
244 bool pointInsideVolume(QVector3D)
const;
253 std::shared_ptr<FrameOfReference> arbitraryFrame;
256 std::shared_ptr<Transformation> arbitraryTransformation;
279 template<
typename T>
static vtkSmartPointer<vtkMatrix4x4> Multiply4x4(T, T);
280 template<
typename T,
typename... Args>
static vtkSmartPointer<vtkMatrix4x4> Multiply4x4(T a, T b, Args... args);
290 static bool linePlaneIntersectionPoint(QVector3D, QVector3D, QVector3D, QVector3D, QVector3D&);
294 static float roundTo4Decimals(
float);
298 static QVector3D roundTo4Decimals(QVector3D);
303 static void cleanMatrix(vtkSmartPointer<vtkMatrix4x4> matrixToClean,
double epsilon = 1e-5);
const Transformation * getArbitraryTransformation() const
Returns the arbitrary transformation (from arbitraryFrame to main frame of this component,...
Definition ArbitrarySingleImageComponent.h:150
A Component represents something that could be included in the explorer view, the interactive 3D view...
Definition sdk/libraries/core/component/Component.h:304