in roboschool/cpp-household/python-binding.cpp [605:715]
void cpp_household_init()
{
sanity_checks();
using namespace boost::python;
class_<Pose>("Pose")
.def("set_xyz", &Pose::set_xyz)
.def("move_xyz", &Pose::move_xyz)
.def("set_rpy", &Pose::set_rpy)
.def("set_quaternion", &Pose::set_quaternion)
.def("rpy", &Pose::rpy)
.def("xyz", &Pose::xyz)
.def("quatertion", &Pose::quatertion)
.def("rotate_z", &Pose::rotate_z)
.def("dot", &Pose::dot)
;
class_<Thingy>("Thingy", no_init)
.def("pose", &Thingy::pose)
.def("speed", &Thingy::speed)
//.def("angular_speed", &Thingy::angular_speed)
//.def("push", &Thingy::push)
//.def("turn", &Thingy::turn)
.add_property("name", &Thingy::get_name, &Thingy::set_name)
.add_property("visibility_123", &Thingy::get_visibility_123, &Thingy::set_visibility_123)
//.add_property("highest_point", &Thingy::highest_point)
.def("contact_list", &Thingy::contact_list)
.def("__hash__", &Thingy::__hash__)
.def("__eq__", &Thingy::__eq__)
.def("set_multiply_color", &Thingy::set_multiply_color)
//.def("replace_texture", &Thingy::replace_texture)
.def("assign_metaclass", &Thingy::assign_metaclass) // assigns to class, not to instance
;
class_<Camera>("Camera", no_init)
.add_property("name", &Camera::name)
.add_property("resolution", &Camera::resolution)
.def("render", &Camera::render)
.def("test_window", &Camera::test_window)
.def("test_window_score", &Camera::test_window_score)
.def("set_key_callback", &Camera::set_key_callback)
.def("set_hfov", &Camera::set_hfov)
.def("set_near", &Camera::set_near)
.def("set_far", &Camera::set_far)
.def("set_pose", &Camera::set_pose)
.def("move_and_look_at", &Camera::move_and_look_at) // same as set_pose(), only sets camera position and orientation
;
class_<Joint>("Joint", no_init)
.add_property("name", &Joint::name)
.add_property("type", &Joint::type)
.def("set_servo_target", &Joint::set_servo_target)
.def("set_target_speed", &Joint::set_target_speed)
.def("set_motor_torque", &Joint::set_motor_torque)
.def("current_position", &Joint::current_position)
.def("current_relative_position", &Joint::current_relative_position)
.def("reset_current_position", &Joint::reset_current_position)
//.def("reset_current_relative_position", &Joint::reset_current_relative_position)
.def("limits", &Joint::limits)
;
class_<Robot>("Robot", no_init)
//.add_property("cameras", &Robot::cameras)
.add_property("joints", &Robot::joints)
.add_property("parts", &Robot::parts)
.add_property("root_part", &Robot::root_part)
.def("set_pose", &Robot::set_pose)
.def("set_pose_and_speed", &Robot::set_pose_and_speed)
.def("query_position", &Robot::query_position)
//.def("replace_texture", &Robot::replace_texture)
;
class_<World>("World", init<float,float>())
.def("clean_everything", &World::clean_everything)
.def("load_urdf", &World::load_urdf)
.def("load_sdf", &World::load_sdf)
.def("load_mjcf", &World::load_mjcf)
.def("load_thingy", &World::load_thingy)
.def("new_camera_free_float", &World::new_camera_free_float)
.def("step", &World::step)
.add_property("ts", &World::ts)
.def("test_window", &World::test_window)
.def("test_window_print", &World::test_window_print)
.def("test_window_billboard", &World::test_window_billboard)
.def("test_window_big_caption", &World::test_window_big_caption)
.def("test_window_observations", &World::test_window_observations)
.def("test_window_rewards", &World::test_window_rewards)
.def("test_window_actions", &World::test_window_actions)
.def("test_window_score", &World::test_window_score)
.def("test_window_history_advance", &World::test_window_history_advance)
.def("test_window_history_reset", &World::test_window_history_reset)
.def("set_key_callback", &World::set_key_callback)
//.def("tool_wall", &World::tool_wall)
//.def("tool_quad_prism", &World::tool_quad_prism)
.def("debug_rect", &World::debug_rect)
.def("debug_line", &World::debug_line)
.def("debug_sphere", &World::debug_sphere)
.def("set_glsl_path", &World::set_glsl_path)
;
scope().attr("tip_z") = tip_z;
scope().attr("tip_y") = tip_y;
scope().attr("COLLISION_MARGIN") = Household::COLLISION_MARGIN/SCALE;
scope().attr("METACLASS_FLOOR") = (int) Household::METACLASS_FLOOR;
scope().attr("METACLASS_WALL") = (int) Household::METACLASS_WALL;
scope().attr("METACLASS_MYSELF") = (int) Household::METACLASS_MYSELF;
scope().attr("METACLASS_FURNITURE")= (int) Household::METACLASS_FURNITURE;
scope().attr("METACLASS_ITEM") = (int) Household::METACLASS_ITEM;
scope().attr("METACLASS_HANDLE") = (int) Household::METACLASS_HANDLE;
}