#pragma once #include "api.h" #include "pros/adi.hpp" #include "pros/rotation.hpp" namespace ez{ class ArmMech{ private: std::vector armStates; int numArmStates; float armKP; public: int currArmState; int armTarget; float armError; float armVelocity; ArmMech(); ArmMech(std::initializer_list armStates, int numArmStates); void cycle_states(); void reset_state(); void arm_control(); int get_arm_state(); int get_num_arm_states(); int get_arm_kp(); }; class LiftMech { private: std::vector liftStates; int numLiftStates; float liftKP; public: int currLiftState; int liftTarget; float liftError; float liftVelocity; LiftMech(); LiftMech(std::initializer_list liftStates, int numLiftStates); void cycle_states(); void reset_state(); void lift_control(); int get_lift_state(); int get_num_lift_states(); int get_lift_kp(); }; class WristMech { private: std::vector wristStates; int numWristStates; float wristKP; public: int currWristState; int wristTarget; float wristError; float wristVelocity; WristMech(); WristMech(std::initializer_list wristStates, int numWristStates); void cycle_states(); void reset_state(); void wrist_control(); int get_wrist_state(); int get_num_wrist_states(); int get_wrist_kp(); }; };