/// <summary> /// When implemented in a derived class, creates a new instance of the <see cref="Camera"/> /// derived class. /// </summary> /// <returns>The new instance.</returns> /// <remarks> /// <para> /// Do not call this method directly (except when calling base in an implementation). This /// method is called internally by the <see cref="Clone"/> method whenever a new instance of the /// <see cref="Camera"/> is created. /// </para> /// <para> /// <strong>Notes to Inheritors:</strong> Every <see cref="Camera"/> derived class must /// implement this method. A typical implementation is to simply call the default constructor /// and return the result. /// </para> /// </remarks> protected virtual Camera CreateInstanceCore() { return(new Camera(Projection.Clone())); }
/// <inheritdoc/> protected override Light CreateInstanceCore() { return(new ProjectorLight(null, Projection.Clone())); }