// Copyright 2019 Intel Corporation
// SPDX-License-Identifier: Apache-2.0

#pragma once

#include "../iterator/Iterator.ih"

#include "GridAcceleratorShared.h"

struct GridAcceleratorIterator;
struct SharedStructuredVolume;

bool GridAccelerator_nextCell(const GridAccelerator *uniform accelerator,
                              const varying GridAcceleratorIterator *uniform
                                  iterator,
                              varying vec3i &cellIndex,
                              varying box1f &cellTRange);

uniform bool GridAccelerator_nextCell(
    const GridAccelerator *uniform accelerator,
    const uniform GridAcceleratorIterator *uniform iterator,
    uniform vec3i &cellIndex,
    uniform box1f &cellTRange);

void GridAccelerator_getCellValueRange(GridAccelerator *uniform accelerator,
                                       const varying vec3i &cellIndex,
                                       uniform uint32 attributeIndex,
                                       varying box1f &valueRange);

void GridAccelerator_getCellValueRange(GridAccelerator *uniform accelerator,
                                       const uniform vec3i &cellIndex,
                                       uniform uint32 attributeIndex,
                                       uniform box1f &valueRange);
