Pass vec by value
diff --git a/include/rive/animation/state_machine_instance.hpp b/include/rive/animation/state_machine_instance.hpp
index 712b6d7..83e86a1 100644
--- a/include/rive/animation/state_machine_instance.hpp
+++ b/include/rive/animation/state_machine_instance.hpp
@@ -75,9 +75,9 @@
         // the empty string.
         const LayerState* stateChangedByIndex(size_t index) const;
 
-        void pointerMove(const Vec2D& position);
-        void pointerDown(const Vec2D& position);
-        void pointerUp(const Vec2D& position);
+        void pointerMove(Vec2D position);
+        void pointerDown(Vec2D position);
+        void pointerUp(Vec2D position);
     };
 } // namespace rive
 #endif
diff --git a/src/animation/state_machine_instance.cpp b/src/animation/state_machine_instance.cpp
index 48a076a..bfa61b4 100644
--- a/src/animation/state_machine_instance.cpp
+++ b/src/animation/state_machine_instance.cpp
@@ -273,13 +273,13 @@
     }
 }
 
-void StateMachineInstance::pointerMove(const Vec2D& position) {
+void StateMachineInstance::pointerMove(Vec2D position) {
     processEvent(position, EventType::updateHover);
 }
-void StateMachineInstance::pointerDown(const Vec2D& position) {
+void StateMachineInstance::pointerDown(Vec2D position) {
     processEvent(position, EventType::down);
 }
-void StateMachineInstance::pointerUp(const Vec2D& position) {
+void StateMachineInstance::pointerUp(Vec2D position) {
     processEvent(position, EventType::up);
 }