#ifndef ORSCAMERA_H__
#define ORSCAMERA_H__

enum
{
	ID_GROUP_OPTICAL = 10000,
	ID_GROUP_POSTEFFECTS,
	ID_GROUP_DISPLAY,
	ID_GROUP_LENS_EFFECTS,
	ID_GROUP_BACKGROUND,

	// These IDs are in no apparent order because they must match those in the legacy camera object (ocamera.h).
	// This is for backwards compatibility reasons.
	RSCAMERAOBJECT_FOCAL_LENGTH = 500,
	RSCAMERAOBJECT_ORTHOGRAPHIC_ZOOM = 1000,
	RSCAMERAOBJECT_PROJECTION = 1001,
	RSCAMERAOBJECT_MAPPING = 1004,
	RSCAMERAOBJECT_FOCUS_DISTANCE = 1010,

	RSCAMERAOBJECT_TARGETDISTANCE_PICK = 1120,
	RSCAMERAOBJECT_TARGETOBJECT = 1130,

	RSCAMERAOBJECT_NEAR_CLIPPING = 1122,
	RSCAMERAOBJECT_NEAR_CLIPPING_ENABLE = 1123,
	RSCAMERAOBJECT_FAR_CLIPPING = 1128,
	RSCAMERAOBJECT_FAR_CLIPPING_ENABLE = 1129,

	RSCAMERAOBJECT_ISO = 1231,
	RSCAMERAOBJECT_EXPOSURE = 1220,
	RSCAMERAOBJECT_SHUTTER_EFFICIENCY = 1214,
	RSCAMERAOBJECT_SHUTTER_SPEED = 1211,

	RSCAMERAOBJECT_VIGNETTING = 1321,

	RSCAMERAOBJECT_AFTER_EFFECTS	= 1344,

	RSCAMERAOBJECT_APERTURE_SHAPE 								= 1300,
	RSCAMERAOBJECT_APERTURE_BLADES 								= 1301,
	RSCAMERAOBJECT_APERTURE_ANGLE 								= 1302,
	RSCAMERAOBJECT_APERTURE_SPHERICAL_ABBERATION 	= 1303,
	RSCAMERAOBJECT_APERTURE_ASPECT 								= 1306,
	RSCAMERAOBJECT_APERTURE_SHADER 								= 1305,

	// Internal standins for backwards compatibility

	RSCAMERAOBJECT_FILM_OFFSET_X 	= 1118,	// RSCAMERAOBJECT_SENSOR_SHIFT.x
	RSCAMERAOBJECT_FILM_OFFSET_Y 	= 1119,	// RSCAMERAOBJECT_SENSOR_SHIFT.y
	RSCAMERAOBJECT_FOV_HORIZONTAL	= 1008,
	RSCAMERAOBJECT_FOV_VERTICAL		= 4600,
	RSCAMERAOBJECT_APERTURE 			= 1006,	// RSCAMERAOBJECT_SENSOR_SIZE.x

	// These are new properties and can use any IDs not used in Ocamera

	RSCAMERAOBJECT_GROUP_LENS = 7000,
	RSCAMERAOBJECT_SENSOR_SIZE,
	RSCAMERAOBJECT_FISHEYE_SCALE,
	RSCAMERAOBJECT_FISHEYE_ANGLE_OF_VIEW,
	RSCAMERAOBJECT_CYLINDRICAL_ORTHOGRAPHIC,
	RSCAMERAOBJECT_CYLINDRICAL_ANGLE_OF_VIEW_X,
	RSCAMERAOBJECT_CYLINDRICAL_ANGLE_OF_VIEW_Y,
	RSCAMERAOBJECT_CYLINDRICAL_HEIGHT,
	RSCAMERAOBJECT_SENSOR_SHIFT,
	RSCAMERAOBJECT_STEREO_SPHERICAL_MODE,
	RSCAMERAOBJECT_STEREO_SPHERICAL_FOCUS,
	RSCAMERAOBJECT_STEREO_SPHERICAL_ANGLE_OF_VIEW,
	RSCAMERAOBJECT_MANUAL_EXPOSURE,
	RSCAMERAOBJECT_CAMERA_TYPE,
	RSCAMERAOBJECT_STEREO_SPHERICAL_SEPARATION,
	RSCAMERAOBJECT_WHITE_POINT,
	RSCAMERAOBJECT_TONE_MAPPING_SATURATION,

	RSCAMERAOBJECT_GROUP_COLOR = 7800,

	RSCAMERAOBJECT_FOCUS_OFFSET = 7900,
	RSCAMERAOBJECT_GROUP_FOCUS,

	RSCAMERAOBJECT_GROUP_BOKEH = 8000,
	RSCAMERAOBJECT_BOKEH_APERTURE,
	RSCAMERAOBJECT_APERTURE_SHAPE_SHADER_NORMALIZATION,
	RSCAMERAOBJECT_BOKEH_MODE,

	RSCAMERAOBJECT_GROUP_MOTION_BLUR = 8100,
	RSCAMERAOBJECT_SHUTTER_ANGLE,
	RSCAMERAOBJECT_SHUTTER_OFFSET,
	RSCAMERAOBJECT_MOTION_BLUR_MODE,

	RSCAMERAOBJECT_GROUP_LENS_DISTORTION = 8200,
	RSCAMERAOBJECT_LENS_DISTORTION_FILE,
	RSCAMERAOBJECT_LENS_DISTORTION_MODE,

	// Post Effects. IDs match those from drsposteffects.h wherever possible

	RSCAMERAOBJECT_GROUP_EXPOSURE = 8300,
	RSCAMERAOBJECT_TONE_MAPPING_ENABLED,
	RSCAMERAOBJECT_TONE_MAPPING_HIGHLIGHTS,
	RSCAMERAOBJECT_TONE_MAPPING_DESATURATE_HIGHLIGHTS,
	RSCAMERAOBJECT_TONE_MAPPING_BLACKS,
	RSCAMERAOBJECT_TONE_MAPPING_BLACKS_THRESHOLD,
	RSCAMERAOBJECT_EXPOSURE_MODE,

	RSCAMERAOBJECT_LUT_ENABLED = 12400,
	RSCAMERAOBJECT_LUT_FILENAME,
	RSCAMERAOBJECT_LUT_LOG_SPACE,
	RSCAMERAOBJECT_LUT_COLOR_MANAGEMENT,
	RSCAMERAOBJECT_LUT_INTENSITY,
	RSCAMERAOBJECT_LUT_LIST,
	RSCAMERAOBJECT_GROUP_LUT,
	RSCAMERAOBJECT_LUT_MODE,

	RSCAMERAOBJECT_COLOR_CONTROLS_ENABLED = 12500,
	RSCAMERAOBJECT_COLOR_CONTROLS_BRIGHTNESS = 12501,
	RSCAMERAOBJECT_COLOR_CONTROLS_CONTRAST = 12502,
	RSCAMERAOBJECT_COLOR_CONTROLS_CURVE_RGB = 12505,
	RSCAMERAOBJECT_COLOR_CONTROLS_CURVE_RED = 12506,
	RSCAMERAOBJECT_COLOR_CONTROLS_CURVE_GREEN = 12507,
	RSCAMERAOBJECT_COLOR_CONTROLS_CURVE_BLUE = 12508,
	RSCAMERAOBJECT_GROUP_COLOR_CONTROLS,
	RSCAMERAOBJECT_COLOR_CONTROLS_MODE,

	RSCAMERAOBJECT_GROUP_BLOOM = 12100,
	RSCAMERAOBJECT_BLOOM_THRESHOLD,
	RSCAMERAOBJECT_BLOOM_SOFTNESS,
	RSCAMERAOBJECT_BLOOM_INTENSITY,
	RSCAMERAOBJECT_BLOOM_TINT_1,
	RSCAMERAOBJECT_BLOOM_TINT_2,
	RSCAMERAOBJECT_BLOOM_TINT_3,
	RSCAMERAOBJECT_BLOOM_TINT_4,
	RSCAMERAOBJECT_BLOOM_TINT_5,
	RSCAMERAOBJECT_BLOOM_TINT,
	RSCAMERAOBJECT_BLOOM_MODE,

	RSCAMERAOBJECT_GROUP_FLARE = 12200,
	RSCAMERAOBJECT_FLARE_THRESHOLD,
	RSCAMERAOBJECT_FLARE_SOFTNESS,
	RSCAMERAOBJECT_FLARE_CHROMATIC,
	RSCAMERAOBJECT_FLARE_SIZE,
	RSCAMERAOBJECT_FLARE_HALO,
	RSCAMERAOBJECT_FLARE_INTENSITY,
	RSCAMERAOBJECT_FLARE_TINT_1,
	RSCAMERAOBJECT_FLARE_TINT_2,
	RSCAMERAOBJECT_FLARE_TINT_3,
	RSCAMERAOBJECT_FLARE_TINT_4,
	RSCAMERAOBJECT_FLARE_TINT_5,
	RSCAMERAOBJECT_FLARE_TINT_6,
	RSCAMERAOBJECT_FLARE_TINT,
	RSCAMERAOBJECT_FLARE_MODE,

	RSCAMERAOBJECT_GROUP_STREAK = 12300,
	RSCAMERAOBJECT_STREAK_THRESHOLD,
	RSCAMERAOBJECT_STREAK_TAIL,
	RSCAMERAOBJECT_STREAK_SOFTNESS,
	RSCAMERAOBJECT_STREAK_NUMBER,
	RSCAMERAOBJECT_STREAK_ANGLE,
	RSCAMERAOBJECT_STREAK_INTENSITY,
	RSCAMERAOBJECT_STREAK_MODE,

	RSCAMERAOBJECT_BACKGROUND_COLOR = 13000,
	RSCAMERAOBJECT_BACKGROUND_FILE,
	RSCAMERAOBJECT_BACKGROUND_USE_AS_POST_EFFECT,
	RSCAMERAOBJECT_BACKGROUND_AFFECTED_BY_COLOR_CORRECTION,
	RSCAMERAOBJECT_BACKGROUND_FRAME,
	RSCAMERAOBJECT_BACKGROUND_OFFSET_X,
	RSCAMERAOBJECT_BACKGROUND_OFFSET_Y,
	RSCAMERAOBJECT_BACKGROUND_GAMMA,
	RSCAMERAOBJECT_BACKGROUND_EXPOSURE,
	RSCAMERAOBJECT_BACKGROUND_HUE,
	RSCAMERAOBJECT_BACKGROUND_SATURATION,
	RSCAMERAOBJECT_BACKGROUND_MODE,

	RSCAMERAOBJECT_GROUP_FRUSTUM = 13100,
	RSCAMERAOBJECT_DISPLAY_FOCUS_PLANE,
	RSCAMERAOBJECT_DISPLAY_FOCUS_PLANE_COLOR,
	RSCAMERAOBJECT_DISPLAY_FOCUS_PLANE_OPACITY,
	RSCAMERAOBJECT_DISPLAY_SHOW_NEAR_CLIP_PLANE,
	RSCAMERAOBJECT_DISPLAY_SHOW_FAR_CLIP_PLANE,
	RSCAMERAOBJECT_DISPLAY_MODE,

	RSCAMERAOBJECT_GROUP_SAFE_AREAS = 13200,
	RSCAMERAOBJECT_DISPLAY_RESOLUTION,
	RSCAMERAOBJECT_DISPLAY_RESOLUTION_MASKED,
	RSCAMERAOBJECT_DISPLAY_RESOLUTION_OPACITY,
	RSCAMERAOBJECT_DISPLAY_RESOLUTION_COLOR,
	RSCAMERAOBJECT_DISPLAY_SENSOR,
	RSCAMERAOBJECT_DISPLAY_SAFE_ACTION,
	RSCAMERAOBJECT_DISPLAY_SAFE_ACTION_SIZE,
	RSCAMERAOBJECT_DISPLAY_SAFE_TITLE,
	RSCAMERAOBJECT_DISPLAY_SAFE_TITLE_SIZE,
	RSCAMERAOBJECT_DISPLAY_EDITOR_OVERSCAN,


	// Layout helpers
	RSCAMERAOBJECT_GROUP_COMPOSITION = 5000,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_OVERLAYS = 5001,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GRID_ENABLE = 5002,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GRID_CELLS  = 5003,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSECTION_ENABLE	= 5004,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSECTION_I 	= 5005,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSECTION_TOP = 5006,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSECTION_BOTTOM	= 5007,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSECTION_LEFT = 5008,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSECTION_RIGHT	= 5009,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_DIAGONAL_ENABLE = 5010,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_DIAGONAL_MODE = 5011,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_TRIANGLES_ENABLE = 5012,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_TRIANGLES_LONG 	= 5013,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_TRIANGLES_MIRROR	= 5014,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_TRIANGLES_FLIP = 5015,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ENABLE = 5016,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_MIRROR_H	=	5017,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_MIRROR_V	= 5018,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GRID = 5020,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSECTION = 5021,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_DIAGONAL = 5022,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_TRIANGLES = 5023,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL = 5024,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_FLIP = 5025,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ALIGN_V = 5026,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ALIGN_H = 5027,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_COLOR   = 5028,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_CROSSHAIR_ENABLE = 5034,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_CROSSHAIR_SCALE 	= 5036,

	// Enums
	RSCAMERAOBJECT_PROJECTION_PERSPECTIVE = 0,
	RSCAMERAOBJECT_PROJECTION_ORTHOGRAPHIC = 1,
	RSCAMERAOBJECT_PROJECTION_LEFT = 2,
	RSCAMERAOBJECT_PROJECTION_RIGHT = 3,
	RSCAMERAOBJECT_PROJECTION_FRONT = 4,
	RSCAMERAOBJECT_PROJECTION_BACK = 5,
	RSCAMERAOBJECT_PROJECTION_TOP = 6,
	RSCAMERAOBJECT_PROJECTION_BOTTOM = 7,
	RSCAMERAOBJECT_PROJECTION_ISOMETRIC = 12,
	RSCAMERAOBJECT_PROJECTION_DIMETRIC = 13,
	RSCAMERAOBJECT_PROJECTION_SPHERICAL = 14,
	RSCAMERAOBJECT_PROJECTION_FISHEYE =15,
	RSCAMERAOBJECT_PROJECTION_CYLINDRICAL = 16,
	RSCAMERAOBJECT_PROJECTION_STEREO_SPHERICAL = 17,

	RSCAMERAOBJECT_FOV_HELPER_DOME = 0,
	RSCAMERAOBJECT_FOV_HELPER_EQUIRECTANGULAR,

	RSCAMERAOBJECT_MAPPING_LATITUDE_LONGITUDE = 0,
	RSCAMERAOBJECT_MAPPING_CUBIC_CROSS,
	RSCAMERAOBJECT_MAPPING_CUBIC_3X2,
	RSCAMERAOBJECT_MAPPING_CUBIC_STRING,

	RSCAMERAOBJECT_APERTURE_SHAPE_CIRCULAR = 0,
	RSCAMERAOBJECT_APERTURE_SHAPE_BLADED,
	RSCAMERAOBJECT_APERTURE_SHAPE_SHADER,

	RSCAMERAOBJECT_STEREO_SPHERICAL_MODE_SIDE_BY_SIDE = 0,
	RSCAMERAOBJECT_STEREO_SPHERICAL_MODE_TOP_TO_BOTTOM,
	RSCAMERAOBJECT_STEREO_SPHERICAL_MODE_LEFT,
	RSCAMERAOBJECT_STEREO_SPHERICAL_MODE_RIGHT,

	RSCAMERAOBJECT_POSTEFFECTS_COLOR_MANAGEMENT_DISPLAY_MODE_LINEAR = 0,
	RSCAMERAOBJECT_POSTEFFECTS_COLOR_MANAGEMENT_DISPLAY_MODE_SRGB,
	RSCAMERAOBJECT_POSTEFFECTS_COLOR_MANAGEMENT_DISPLAY_MODE_REC709,
	RSCAMERAOBJECT_POSTEFFECTS_COLOR_MANAGEMENT_DISPLAY_MODE_CUSTOM_GAMMA,
	RSCAMERAOBJECT_POSTEFFECTS_COLOR_MANAGEMENT_DISPLAY_MODE_OCIO,

	RSCAMERAOBJECT_APERTURE_SHAPE_SHADER_NORMALIZATION_SUM = 0,
	RSCAMERAOBJECT_APERTURE_SHAPE_SHADER_NORMALIZATION_UNIT,
	RSCAMERAOBJECT_APERTURE_SHAPE_SHADER_NORMALIZATION_OFF,

	RSCAMERAOBJECT_CAMERA_TYPE_STILL = 0,
	RSCAMERAOBJECT_CAMERA_TYPE_MOVIE,

	RSCAMERAOBJECT_BACKGROUND_FRAME_STRETCH = 0,
	RSCAMERAOBJECT_BACKGROUND_FRAME_CROP ,
	RSCAMERAOBJECT_BACKGROUND_FRAME_FIT,

	RSCAMERAOBJECT_DISPLAY_MODE_OFF = 0,
	RSCAMERAOBJECT_DISPLAY_MODE_ON_SELECTION,
	RSCAMERAOBJECT_DISPLAY_MODE_ON,

	RSCAMERAOBJECT_SWITCH_MODE_GLOBAL = 0,
	RSCAMERAOBJECT_SWITCH_MODE_OFF,
	RSCAMERAOBJECT_SWITCH_MODE_ON,

	RSCAMERAOBJECT_LAYOUTHELP_DRAW_DIAGONAL_LEFT = 0,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_DIAGONAL_RIGHT,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_DIAGONAL_BOTH,

	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ALIGN_CENTER = 0,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ALIGN_TOP,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ALIGN_BOTTOM,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ALIGN_LEFT,
	RSCAMERAOBJECT_LAYOUTHELP_DRAW_GOLDENSPIRAL_ALIGN_RIGHT,

	// Separators
	RSCAMERAOBJECT_SEPARATOR_CLIPPING = 14000,
	RSCAMERAOBJECT_SEPARATOR_FOCUS,
	RSCAMERAOBJECT_SEPARATOR_BOKEH,
	RSCAMERAOBJECT_SEPARATOR_MOTION_BLUR,
	RSCAMERAOBJECT_SEPARATOR_EXPOSURE,
	RSCAMERAOBJECT_SEPARATOR_DISTORTION,

	_REDSHIFT_CAMERA_OBJECT_END_
};

#endif // ORSCAMERA_H__

