Class VRPoseHistoryImpl
java.lang.Object
net.timtaran.interactivemc.util.vr.VRPoseHistoryImpl
- All Implemented Interfaces:
VRPoseHistory
-
Field Summary
Fields inherited from interface net.timtaran.interactivemc.util.vr.VRPoseHistory
MAX_TICKS_BACK -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidnet.minecraft.world.phys.Vec3averageVelocity(PlayerBodyPart bodyPart, int maxTicksBack, boolean playerPositionRelative) Gets the average velocity in blocks/tick between the most recent VRPose in this instance and the oldest VRPose that can be retrieved, going no farther back thanmaxTicksBack.voidclear()Gets a raw list ofVRPoseinstances, with index 0 representing the current tick's pose, 1 representing last tick's pose, etc.getHistoricalData(int ticksBack, boolean playerPositionRelative) Gets the pose fromticksBackticks back, ornullif such data isn't available.booleanisEmpty()net.minecraft.world.phys.Vec3netMovement(PlayerBodyPart bodyPart, int maxTicksBack, boolean playerPositionRelative) Gets the net movement between the most recent VRPose in this instance and the oldest VRPose that can be retrieved, going no farther back thanmaxTicksBack.intGets the number of ticks, historical data is currently available for.
-
Constructor Details
-
VRPoseHistoryImpl
public VRPoseHistoryImpl()
-
-
Method Details
-
addPose
-
clear
public void clear() -
isEmpty
public boolean isEmpty() -
ticksOfHistory
public int ticksOfHistory()Description copied from interface:VRPoseHistoryGets the number of ticks, historical data is currently available for. The number returned by this method will never be higher thanVRPoseHistory.MAX_TICKS_BACK, the maximum number of ticks this implementation holds data for, however, it can be lower thanVRPoseHistory.MAX_TICKS_BACK.- Specified by:
ticksOfHistoryin interfaceVRPoseHistory- Returns:
- The number of ticks, historical data is currently available for.
-
getAllHistoricalData
Description copied from interface:VRPoseHistoryGets a raw list ofVRPoseinstances, with index 0 representing the current tick's pose, 1 representing last tick's pose, etc.- Specified by:
getAllHistoricalDatain interfaceVRPoseHistory- Returns:
- The aforementioned list of
VRPoseinstances.
-
getHistoricalData
public VRPose getHistoricalData(int ticksBack, boolean playerPositionRelative) throws IllegalArgumentException Description copied from interface:VRPoseHistoryGets the pose fromticksBackticks back, ornullif such data isn't available.- Specified by:
getHistoricalDatain interfaceVRPoseHistory- Parameters:
ticksBack- Ticks back to retrieve data from.playerPositionRelative- Whether to get the historical data with position relative to the player's position.- Returns:
- A
VRPoseinstance fromticksBackticks ago, ornullif that data isn't available. - Throws:
IllegalArgumentException- Thrown whenticksBackis outside the range [0,200].
-
netMovement
public net.minecraft.world.phys.Vec3 netMovement(PlayerBodyPart bodyPart, int maxTicksBack, boolean playerPositionRelative) throws IllegalArgumentException Description copied from interface:VRPoseHistoryGets the net movement between the most recent VRPose in this instance and the oldest VRPose that can be retrieved, going no farther back thanmaxTicksBack.- Specified by:
netMovementin interfaceVRPoseHistory- Parameters:
bodyPart- The body part to get the net movement for.maxTicksBack- The maximum number of ticks back to compare the most recent data with.playerPositionRelative- Whether net movement should be calculated relative to the player position.- Returns:
- The aforementioned net movement. Note that this will return zero change on all axes if only zero ticks
can be looked back. Will be
nullif the body part requested isn't available. - Throws:
IllegalArgumentException- Thrown whenmaxTicksBackis outside the range [0,200] or an invalidbodyPartis supplied.
-
averageVelocity
public net.minecraft.world.phys.Vec3 averageVelocity(PlayerBodyPart bodyPart, int maxTicksBack, boolean playerPositionRelative) throws IllegalArgumentException Description copied from interface:VRPoseHistoryGets the average velocity in blocks/tick between the most recent VRPose in this instance and the oldest VRPose that can be retrieved, going no farther back thanmaxTicksBack.- Specified by:
averageVelocityin interfaceVRPoseHistory- Parameters:
bodyPart- The body part to get the average velocity for.maxTicksBack- The maximum number of ticks back to calculate velocity with.playerPositionRelative- Whether velocity should be calculated to the player position.- Returns:
- The aforementioned average velocity on each axis. Note that this will return zero velocity on all axes
if only zero ticks can be looked back. Will be
nullif the body part requested isn't available. - Throws:
IllegalArgumentException- Thrown whenmaxTicksBackis outside the range [0,200] or an invalidbodyPartis supplied.
-