1 #line 1 "S:/jenkins/workspace/ECP/ufe/ufe-full-python3.9-windows/ufe/include/transform3d.h" 36 enum Type {NoHint, None = NoHint, Translate, Rotate, Scale, RotatePivot, ScalePivot};
92 typedef std::shared_ptr<Transform3d>
Ptr;
112 static Ptr editTransform3d(
124 static bool addObserver(
134 static bool removeObserver(
148 static bool removeObserver(
167 static bool hasObserver(
172 static bool hasObservers(
const Path&
path);
178 static bool hasObservers(
Rtid runTimeId);
183 static void notify(
const Path&
path);
193 virtual const Path&
path()
const = 0;
204 double x,
double y,
double z) = 0;
207 return translateCmd(0, 0, 0); }
215 auto cmd = translateCmd(x, y, z);
223 virtual Vector3d translation()
const = 0;
232 double x,
double y,
double z) = 0;
235 return rotateCmd(0, 0, 0); }
242 virtual void rotate(
double x,
double y,
double z) {
243 auto cmd = rotateCmd(x, y, z);
252 virtual Vector3d rotation()
const = 0;
260 double x,
double y,
double z) = 0;
263 return scaleCmd(1, 1, 1); }
270 virtual void scale(
double x,
double y,
double z) {
271 auto cmd = scaleCmd(x, y, z);
288 double x,
double y,
double z) = 0;
291 return rotatePivotCmd(0, 0, 0); }
299 auto cmd = rotatePivotCmd(x, y, z);
307 virtual Vector3d rotatePivot()
const = 0;
316 double x,
double y,
double z) = 0;
319 return scalePivotCmd(0, 0, 0); }
327 auto cmd = scalePivotCmd(x, y, z);
335 virtual Vector3d scalePivot()
const = 0;
347 double x,
double y,
double z) {
348 (void) x; (void) y; (void) z;
353 return translateRotatePivotCmd(0, 0, 0); }
362 auto cmd = translateRotatePivotCmd(x, y, z);
385 double x,
double y,
double z) {
386 (void) x; (void) y; (void) z;
391 return translateScalePivotCmd(0, 0, 0); }
399 auto cmd = translateScalePivotCmd(x, y, z);
421 double x,
double y,
double z) {
422 (void) x; (void) y; (void) z;
427 return rotateAxisCmd(0, 0, 0); }
435 auto cmd = rotateAxisCmd(x, y, z);
455 double xy,
double xz,
double yz) {
456 (void) xy; (void) xz; (void) yz;
461 return shearCmd(0, 0, 0); }
468 virtual void shear(
double xy,
double xz,
double yz) {
469 auto cmd = shearCmd(xy, xz, yz);
493 auto cmd = setMatrixCmd(m);
501 virtual Matrix4d matrix()
const = 0;
520 virtual Matrix4d segmentInclusiveMatrix()
const = 0;
529 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)