function GridRow(entity, index, grid) {

     /**
      *  @ngdoc object
      *  @name grid
      *  @propertyOf  ui.grid.class:GridRow
      *  @description A reference back to the grid
      */
     this.grid = grid;

     /**
      *  @ngdoc object
      *  @name entity
      *  @propertyOf  ui.grid.class:GridRow
      *  @description A reference to an item in gridOptions.data[]
      */
    this.entity = entity;

    /**
      *  @ngdoc object
      *  @name index
      *  @propertyOf  ui.grid.class:GridRow
      *  @description The current position of the row in the array
      */
     this.index = index;

     /**
      *  @ngdoc object
      *  @name uid
      *  @propertyOf  ui.grid.class:GridRow
      *  @description  UniqueId of row
      */
     this.uid = gridUtil.nextUid();

     /**
      *  @ngdoc object
      *  @name visible
      *  @propertyOf  ui.grid.class:GridRow
      *  @description If true, the row will be rendered
      */
    // Default to true
    this.visible = true;

     /**
      *  @ngdoc object
      *  @name isSelected
      *  @propertyOf  ui.grid.class:GridRow
      *  @description Marks if the row has been selected
      */
     // Default to false
     this.isSelected = false;


    this.$$height = grid.options.rowHeight;

  }
@class GridRow
@ngdoc function
@name ui.grid.class:GridRow
@description GridRow is the viewModel for one logical row on the grid.  A grid Row is not necessarily a one-to-one
relation to gridOptions.data.
@param {object} entity the array item from GridOptions.data
@param {number} index the current position of the row in the array
@param {Grid} grid reference to the parent grid