constructor(model) {
    //>>includeStart('debug', pragmas.debug);
    Check.defined("model", model);
    //>>includeEnd('debug');

    /**
     * The model that this instance was created for.
     *
     * @type {Model}
     * @readonly
     * @private
     */
    this._model = model;

    /**
     * One <code<ModelPrimitiveImagery</code> for each primitive
     * that appears in the model.
     *
     * Initially, this is <code>undefined</code>. When the <code>update</code>
     * function is called and all imagery layers that are associated with the
     * model are <code>ready</code>, this is initialized with one instance
     * of a <code>ModelPrimitiveImagery</code> per runtime primitive (i.e. one for
     * each <code>model.sceneGraph._runtimeNodes[n]._runtimePrimitives[p]</code>)
     *
     * @type {ModelPrimitiveImagery[]|undefined}
     * @private
     */
    this._modelPrimitiveImageries = undefined;

    /**
     * One <code>ImageryConfiguration</code> object for each <code>ImageryLayer</code>
     * that is associated with the model.
     *
     * This is used for determining whether the configuration (relevant property
     * values) of an imagery layer has been changed since the previous
     * <code>update</code> call, which should cause the draw commands of the
     * model to be reset.
     *
     * @type {ImageryConfiguration[]}
     * @private
     */
    this._imageryConfigurations = [];
  }
Creates a new instance

@param {Model} model The model
@throws {DeveloperError} If the model is not defined