11 #include <vtkObjectFactory.h>
15 #if !((VTK_MAJOR_VERSION > 9) || \
16 (VTK_MAJOR_VERSION == 9 && VTK_MINOR_VERSION >= 3))
20 : CustomAxisEnabled(false) {
34 this->SetTranslationAxis(-1);
51 for (
int i = 0; i < 3; i++) {
69 double axis[3] = {
x,
y,
z};
78 vtkMath::Subtract(p2, p1, p12);
89 ->GetTranslationAxis();
90 if (translationAxis == -1) {
92 for (
int i = 0; i < 3; ++i) {
97 for (
int i = 0; i < 3; ++i) {
98 if (translationAxis == i) {
125 double* worldPos = this->GetWorldPosition();
127 for (
int i = 0; i < 3; ++i) {
128 newPos[i] = worldPos[i] + dir[i];
130 this->SetWorldPosition(newPos);
133 this->Superclass::Translate(v);
140 this->Superclass::PrintSelf(os, indent);
145 os << indent <<
"Custom Translation Axis: ("
156 this->Superclass::PrintSelf(os, indent);
Handle representation with custom translation axis support.
void SetCustomTranslationAxisOff()
Disable custom translation axis mode.
cvCustomAxisHandleRepresentation()
double CustomTranslationAxis[3]
void PrintSelf(ostream &os, vtkIndent indent) override
void SetCustomTranslationAxisOn()
Enable custom translation axis mode.
void Translate(const double *p1, const double *p2) override
Override Translate to support custom axis.
void GetTranslationVector(const double *p1, const double *p2, double *v) const override
Override GetTranslationVector to support custom axis.
void SetCustomTranslationAxis(double axis[3])
Set the custom translation axis vector.
~cvCustomAxisHandleRepresentation() override
vtkStandardNewMacro(cvCustomAxisHandleRepresentation)