A Complete Coverage Algorithm for 3D Structural Inspection using an Autonomous Unmanned Aerial Vehicle