//------------------------------------------------------------------------------
//
// This code was generated by a tool.
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
//
//------------------------------------------------------------------------------
using Newtonsoft.Json;
using Shuttle.Api.AfterEffectsDTO.Properties;
namespace Shuttle.Api.AfterEffectsDTO.Items
{
///
/// The CompItem object represents a composition, and allows you to manipulate and get information
/// about it. Access the objects by position index number in a project’s ite m collection.
///
public class CompItem : AVItem
{
///
/// The active camera, which is the front-most camera layer that is enabled. The value is null if the
/// composition contains no enabled camera layers.
///
[JsonProperty("activeCamera")]
public Layer ActiveCamera { get; private set; }
///
/// The background color of the composition. The three array values specify the red, green, and blue
/// components of the color.
///
[JsonProperty("bgColor")]
public float[] BgColor { get; set; }
///
/// The time set as the beginning of the composition, in seconds. This is the equivalent of the Start
/// Timecode or Start Frame setting in the Composition Settings dialog box.
///
[JsonProperty("displayStartTime")]
public float DisplayStartTime { get; set; }
///
/// When true, Draft 3D mode is enabled for the Composition panel. This corresponds to the value of
/// the Draft 3D button in the Composition panel.
///
[JsonProperty("draft3d")]
public bool Draft3d { get; set; }
///
/// When true, indicates that the composition uses drop-frame timecode. When false, indicates
/// non-drop-frame timecode. This corresponds to the setting in the Composition Settings dialog box.
///
[JsonProperty("dropFrame")]
public bool DropFrame { get; set; }
///
/// When true, frame blending is enabled for this Composition. Corresponds to the value of the Frame
/// Blending button in the Composition panel.
///
[JsonProperty("frameBlending")]
public bool FrameBlending { get; set; }
///
/// When true, only layers with shy set to false are shown in the Timeline panel. When false, all
/// layers are visible, including those whose shy value is true. Corresponds to the value of the Hide All
/// Shy Layers button in the Composition panel.
///
[JsonProperty("hideShyLayers")]
public bool HideShyLayers { get; set; }
///
/// A LayerCollection object that contains all the Layer objects for layers in this composition.
///
[JsonProperty("layers")]
public Layer[] Layers { get; private set; } = new Layer[0];
///
/// A PropertyGroup object that contains all a composition’s markers. Composition marker scripting has
/// the same functionality as layer markers. See MarkerValue object
///
[JsonProperty("markerProperty")]
public PropertyGroup MarkerProperty { get; private set; }
///
/// When true, motion blur is enabled for the composition. Corresponds to the value of the Motion Blur
/// button in the Composition panel.
///
[JsonProperty("motionBlur")]
public bool MotionBlur { get; set; }
///
/// The maximum number of motion blur samples of 2D layer motion. This corresponds to the Adaptive
/// Sample Limit setting in the Advanced tab of the Composition Settings dialog box.
///
[JsonProperty("motionBlurAdaptiveSampleLimit")]
public int MotionBlurAdaptiveSampleLimit { get; set; }
///
/// The minimum number of motion blur samples per frame for Classic 3D layers, shape layers, and
/// certain effects. This corresponds to the Samples Per Frame setting in the Advanced tab of the Composition
/// Settings dialog box.
///
[JsonProperty("motionBlurSamplesPerFrame")]
public int MotionBlurSamplesPerFrame { get; set; }
///
/// The number of properties in the Essential Graphics panel for the composition.
///
[JsonProperty("motionGraphicsTemplateControllerCount")]
public int MotionGraphicsTemplateControllerCount { get; private set; }
///
/// Read or write the name property in the Essential Graphics panel for the composition.
///
[JsonProperty("motionGraphicsTemplateName")]
public string MotionGraphicsTemplateName { get; set; }
///
/// The number of layers in the composition.
///
[JsonProperty("numLayers")]
public int NumLayers { get; private set; }
///
/// When true, the frame rate of nested compositions is preserved in the current composition.
/// Corresponds to the value of the “Preserve frame rate when nested or in render queue” option in the Advanced
/// tab of the Composition Settings dialog box.
///
[JsonProperty("preserveNestedFrameRate")]
public bool PreserveNestedFrameRate { get; set; }
///
/// When true, the resolution of nested compositions is preserved in the current composition.
/// Corresponds to the value of the “Preserve Resolution When Nested” option in the Advanced tab of the
/// Composition Settings dialog box.
///
[JsonProperty("preserveNestedResolution")]
public bool PreserveNestedResolution { get; set; }
///
/// The current rendering plug-in module to be used to render this composition, as set in the Advanced
/// tab of the Composition Settings dialog box. Allowed values are the members of CompItem.renderers.
///
[JsonProperty("renderer")]
public string Renderer { get; set; }
///
/// The available rendering plug-in modules. Member strings reflect installed modules, as seen in the
/// Advanced tab of the Composition Settings dialog box.
///
[JsonProperty("renderers")]
public string[] Renderers { get; private set; } = new string[0];
///
/// The x and y downsample resolution factors for rendering the composition. The two values in the
/// array specify how many pixels to skip when sampling; the first number controls horizontal sampling, the
/// second controls vertical sampling. Full resolution is [1, 1], half resolution is [2, 2], and
/// quarter resolution is [4, 4]. The default is [1, 1].
///
[JsonProperty("resolutionFactor")]
public int[] ResolutionFactor { get; set; }
///
/// All of the selected layers in this composition. This is a 0-based array (the first object is at
/// index 0).
///
[JsonProperty("selectedLayers")]
public Layer[] SelectedLayers { get; private set; } = new Layer[0];
///
/// All of the selected properties (Property and PropertyGroup objects) in this composition. The first
/// property is at index position 0.
///
[JsonProperty("selectedProperties")]
public Property[] SelectedProperties { get; private set; } = new Property[0];
///
/// The shutter angle setting for the composition. This corresponds to the Shutter Angle setting in
/// the Advanced tab of the Composition Settings dialog box.
///
[JsonProperty("shutterAngle")]
public int ShutterAngle { get; set; }
///
/// The shutter phase setting for the composition. This corresponds to the Shutter Phase setting in
/// the Advanced tab of the Composition Settings dialog box.
///
[JsonProperty("shutterPhase")]
public int ShutterPhase { get; set; }
///
/// The duration of the work area in seconds. This is the difference of the start-point and end-point
/// times of the Composition work area.
///
[JsonProperty("workAreaDuration")]
public float WorkAreaDuration { get; set; }
///
/// The time when the Composition work area begins, in seconds.
///
[JsonProperty("workAreaStart")]
public float WorkAreaStart { get; set; }
public override string ToString()
{
return Name;
}
}
}