1 #line 1 "S:/jenkins/workspace/ufe-full-windows/ufe/include/transform3d.h" 34 enum Type {None, Translate, Rotate, Scale, RotatePivot, ScalePivot};
90 typedef std::shared_ptr<Transform3d>
Ptr;
110 static Ptr editTransform3d(
122 static bool addObserver(
131 static bool removeObserver(
148 static bool hasObserver(
153 static bool hasObservers(
const Path&
path);
159 static bool hasObservers(
Rtid runTimeId);
164 static void notify(
const Path&
path);
174 virtual const Path&
path()
const = 0;
185 double x,
double y,
double z) = 0;
188 return translateCmd(0, 0, 0); }
196 auto cmd = translateCmd(x, y, z);
204 virtual Vector3d translation()
const = 0;
213 double x,
double y,
double z) = 0;
216 return rotateCmd(0, 0, 0); }
223 virtual void rotate(
double x,
double y,
double z) {
224 auto cmd = rotateCmd(x, y, z);
233 virtual Vector3d rotation()
const = 0;
241 double x,
double y,
double z) = 0;
244 return scaleCmd(1, 1, 1); }
251 virtual void scale(
double x,
double y,
double z) {
252 auto cmd = scaleCmd(x, y, z);
269 double x,
double y,
double z) = 0;
272 return rotatePivotCmd(0, 0, 0); }
280 auto cmd = rotatePivotCmd(x, y, z);
288 virtual Vector3d rotatePivot()
const = 0;
297 double x,
double y,
double z) = 0;
300 return scalePivotCmd(0, 0, 0); }
308 auto cmd = scalePivotCmd(x, y, z);
316 virtual Vector3d scalePivot()
const = 0;
328 double x,
double y,
double z) {
329 (void) x; (void) y; (void) z;
334 return translateRotatePivotCmd(0, 0, 0); }
343 auto cmd = translateRotatePivotCmd(x, y, z);
366 double x,
double y,
double z) {
367 (void) x; (void) y; (void) z;
372 return translateScalePivotCmd(0, 0, 0); }
380 auto cmd = translateScalePivotCmd(x, y, z);
402 double x,
double y,
double z) {
403 (void) x; (void) y; (void) z;
408 return rotateAxisCmd(0, 0, 0); }
416 auto cmd = rotateAxisCmd(x, y, z);
436 double xy,
double xz,
double yz) {
437 (void) xy; (void) xz; (void) yz;
442 return shearCmd(0, 0, 0); }
449 virtual void shear(
double xy,
double xz,
double yz) {
450 auto cmd = shearCmd(xy, xz, yz);
474 auto cmd = setMatrixCmd(m);
482 virtual Matrix4d matrix()
const = 0;
501 virtual Matrix4d segmentInclusiveMatrix()
const = 0;
510 virtual Matrix4d segmentExclusiveMatrix()
const = 0;
std::shared_ptr< SetValue3UndoableCommand > Ptr
TypedVector3< double > Vector3d
std::shared_ptr< Observer > Ptr
Definition of macros for symbol visibility.
std::shared_ptr< SetValueUndoableCommand > Ptr
Identify an object or 3D path in the scene.
Matrix class for 3D transforms.
std::shared_ptr< SceneItem > Ptr
Path path(const std::string &pathString)