void cpp_household_init()

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;
}