1. A method, performed by a computing system having a memory and a processor, for planning a flight of an unmanned aerial vehicle in an environment, using a three-dimensional model of the environment, the method comprising: providing, for presentation to a user, information characterizing a visual representation of the three-dimensional model of the environment, the environment including a plurality of objects; based on an input from the user, shifting a viewpoint from which the user views the visual representation of the three-dimensional model of the environment; receiving, from the user, input related to a proposed flight path for the unmanned aerial vehicle through the environment, wherein the input indicates one or more regions of interest; calculating a predicted trajectory of the unmanned aerial vehicle through the environment based at least in part on the received input, one or more constraints or capabilities for pointing a sensor of the unmanned aerial vehicle toward the one or more regions of interest, and flight dynamics and capabilities of the unmanned aerial vehicle; determining whether the calculated predicted trajectory of the unmanned aerial vehicle through the environment is free of collisions; if the calculated predicted trajectory is determined to be not free of collisions: providing feedback to the user that the calculated predicted trajectory of the unmanned aerial vehicle is not free of collisions; and preventing an area causing a collision from being included in subsequent calculation of predicted trajectory of the unmanned aerial vehicle; and causing the unmanned aerial vehicle to perform at least a portion of a flight based at least in part on the predicted trajectory.