function RGBInput( config ) {

	// RGBInput inherits from abstract layer "NativeLayer".

	NativeLayer.call( this, config );

	/**
	 * RGBInput has three output dimensions: [ width, height, depth ].
	 *
	 * @type { int }
	 */

	this.width = undefined;
	this.height = undefined;
	this.depth = 3;

	/**
	 * As RGBInput is the first layer model, actualWidth is defined as a const.
	 * Use actualWidth to calculate actualHeight.
	 *
	 * @type { double }
	 */

	this.actualWidth = ModelInitWidth;
	this.actualHeight = undefined;

	/**
	 * Calculate unitLength for latter layers.
	 *
	 * @type { double }
	 */

	this.unitLength =  undefined;


	/**
	 * Channel maps's centers when layer is totally open.
	 *
	 * @type { Array }
	 */
	this.openFmCenters = FmCenterGenerator.getFmCenters( "line", 3, this.actualWidth, this.actualHeight );

	/**
	 * Channel maps' centers when layer is closed.
	 *
	 * @type { Array }
	 */

	this.closeFmCenters = [];

	for ( let i = 0; i < 3; i ++ ) {

		this.closeFmCenters.push( {

			x: 0,
			y: 0,
			z: 0

		} );

	}

	// Predefined position for channel map when separate from close position.

	this.separateTopPos = {

		x: 0,
		y: 20,
		z: 0

	};

	this.separateBottomPos = {

		x: 0,
		y: -20,
		z: 0

	};

	/**
	 * Channel map's handlers list.
	 *
	 * @type { Array }
	 */

	this.segregationHandlers = [];

	/**
	 * Label to define whether layer need an "output value" from backend model (tfjs, keras, or tf).
	 * False means that user need to add value for RGBInput when they are preprocessing multi-output for the model.
	 *
	 * @type { boolean }
	 */

	this.autoOutputDetect = false;

	this.layerDimension = 3;

	this.layerType = "RGBInput";

}
As RGBInput is the first layer model, actualWidth is defined as a const.
Use actualWidth to calculate actualHeight.

@type { double }