diff --git a/interface/src/avatar/MyAvatar.h b/interface/src/avatar/MyAvatar.h
index bb6f036533..ef7af9abae 100644
--- a/interface/src/avatar/MyAvatar.h
+++ b/interface/src/avatar/MyAvatar.h
@@ -154,6 +154,7 @@ class MyAvatar : public Avatar {
*
* @property {Vec3} qmlPosition - A synonym for position
for use by QML.
*
+ * @property {Vec3} feetPosition - The position of the avatar's feet.
* @property {boolean} shouldRenderLocally=true - If true
then your avatar is rendered for you in Interface,
* otherwise it is not rendered for you (but it is still rendered for other users).
* @property {Vec3} motorVelocity=Vec3.ZERO - The target velocity of your avatar to be achieved by a scripted motor.
@@ -340,6 +341,7 @@ class MyAvatar : public Avatar {
Q_PROPERTY(QVector3D qmlPosition READ getQmlPosition)
QVector3D getQmlPosition() { auto p = getWorldPosition(); return QVector3D(p.x, p.y, p.z); }
+ Q_PROPERTY(glm::vec3 feetPosition READ getWorldFeetPosition WRITE goToFeetLocation)
Q_PROPERTY(bool shouldRenderLocally READ getShouldRenderLocally WRITE setShouldRenderLocally)
Q_PROPERTY(glm::vec3 motorVelocity READ getScriptedMotorVelocity WRITE setScriptedMotorVelocity)
Q_PROPERTY(float motorTimescale READ getScriptedMotorTimescale WRITE setScriptedMotorTimescale)
diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp
index c222853088..7f363dd36f 100644
--- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp
+++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.cpp
@@ -1848,13 +1848,6 @@ void Avatar::setPositionViaScript(const glm::vec3& position) {
updateAttitude(getWorldOrientation());
}
-void Avatar::setFeetPositionViaScript(const glm::vec3& position) {
- auto feetAjustment = getWorldPosition() - getWorldFeetPosition();
- auto _goToPosition = position + feetAjustment;
- setWorldPosition(_goToPosition);
- updateAttitude(getWorldOrientation());
-}
-
void Avatar::setOrientationViaScript(const glm::quat& orientation) {
setWorldOrientation(orientation);
updateAttitude(orientation);
diff --git a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h
index 891f125b28..7bb15ecbf7 100644
--- a/libraries/avatars-renderer/src/avatars-renderer/Avatar.h
+++ b/libraries/avatars-renderer/src/avatars-renderer/Avatar.h
@@ -437,7 +437,6 @@ public:
Q_INVOKABLE glm::vec3 getWorldFeetPosition();
void setPositionViaScript(const glm::vec3& position) override;
- void setFeetPositionViaScript(const glm::vec3& position) override;
void setOrientationViaScript(const glm::quat& orientation) override;
/**jsdoc
diff --git a/libraries/avatars/src/AvatarData.h b/libraries/avatars/src/AvatarData.h
index 5857a7dcaa..59a2e2a53e 100755
--- a/libraries/avatars/src/AvatarData.h
+++ b/libraries/avatars/src/AvatarData.h
@@ -488,7 +488,6 @@ class AvatarData : public QObject, public SpatiallyNestable {
// IMPORTANT: The JSDoc for the following properties should be copied to MyAvatar.h and ScriptableAvatar.h.
/*
* @property {Vec3} position - The position of the avatar.
- * @property {Vec3} feetPosition - The feet position of the avatar.
* @property {number} scale=1.0 - The scale of the avatar. The value can be set to anything between 0.005
and
* 1000.0
. When the scale value is fetched, it may temporarily be further limited by the domain's settings.
* @property {number} density - The density of the avatar in kg/m3. The density is used to work out its mass in
@@ -537,7 +536,6 @@ class AvatarData : public QObject, public SpatiallyNestable {
* Read-only.
*/
Q_PROPERTY(glm::vec3 position READ getWorldPosition WRITE setPositionViaScript)
- Q_PROPERTY(glm::vec3 feetPosition READ getWorldFeetPosition WRITE setFeetPositionViaScript)
Q_PROPERTY(float scale READ getDomainLimitedScale WRITE setTargetScale)
Q_PROPERTY(float density READ getDensity)
Q_PROPERTY(glm::vec3 handPosition READ getHandPosition WRITE setHandPosition)
@@ -631,7 +629,6 @@ public:
void setBodyRoll(float bodyRoll);
virtual void setPositionViaScript(const glm::vec3& position);
- virtual void setFeetPositionViaScript(const glm::vec3& position);
virtual void setOrientationViaScript(const glm::quat& orientation);
virtual void updateAttitude(const glm::quat& orientation) {}
diff --git a/libraries/avatars/src/ScriptAvatarData.cpp b/libraries/avatars/src/ScriptAvatarData.cpp
index 3228445f81..18717c8ca3 100644
--- a/libraries/avatars/src/ScriptAvatarData.cpp
+++ b/libraries/avatars/src/ScriptAvatarData.cpp
@@ -31,13 +31,6 @@ glm::vec3 ScriptAvatarData::getPosition() const {
return glm::vec3();
}
}
-glm::vec3 ScriptAvatarData::getFeetPosition() const {
- if (AvatarSharedPointer sharedAvatarData = _avatarData.lock()) {
- return sharedAvatarData->getWorldFeetPosition();
- } else {
- return glm::vec3();
- }
-}
float ScriptAvatarData::getTargetScale() const {
if (AvatarSharedPointer sharedAvatarData = _avatarData.lock()) {
return sharedAvatarData->getTargetScale();
diff --git a/libraries/avatars/src/ScriptAvatarData.h b/libraries/avatars/src/ScriptAvatarData.h
index 5b962d23df..9c5c2c6918 100644
--- a/libraries/avatars/src/ScriptAvatarData.h
+++ b/libraries/avatars/src/ScriptAvatarData.h
@@ -20,7 +20,6 @@
* Information about an avatar.
* @typedef {object} AvatarData
* @property {Vec3} position - The avatar's position.
- * @property {Vec3} feetPosition - The avatar's feet position.
* @property {number} scale - The target scale of the avatar without any restrictions on permissible values imposed by the
* domain.
* @property {Vec3} handPosition - A user-defined hand position, in world coordinates. The position moves with the avatar but
@@ -71,7 +70,6 @@ class ScriptAvatarData : public QObject {
// PHYSICAL PROPERTIES: POSITION AND ORIENTATION
//
Q_PROPERTY(glm::vec3 position READ getPosition)
- Q_PROPERTY(glm::vec3 feetPosition READ getFeetPosition)
Q_PROPERTY(float scale READ getTargetScale)
Q_PROPERTY(glm::vec3 handPosition READ getHandPosition)
Q_PROPERTY(float bodyPitch READ getBodyPitch)
@@ -126,7 +124,6 @@ public:
// PHYSICAL PROPERTIES: POSITION AND ORIENTATION
//
glm::vec3 getPosition() const;
- glm::vec3 getFeetPosition() const;
float getTargetScale() const;
glm::vec3 getHandPosition() const;
float getBodyPitch() const;