//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft shared
// source or premium shared source license agreement under which you licensed
// this source code. If you did not accept the terms of the license agreement,
// you are not authorized to use this source code. For the terms of the license,
// please see the license agreement between you and Microsoft or, if applicable,
// see the SOURCE.RTF on your install media or the root of your tools installation.
// THE SOURCE CODE IS PROVIDED "AS IS", WITH NO WARRANTIES.
//
#pragma once
#include <windows.h>

HRESULT GetPermutationSpecs(UINT uiNumIters, UINT uiMaxIter, UINT *puiNumStepsTotal, UINT *puiNumStepsPerIter);

HRESULT GetPermutation(UINT uiStep, UINT uiStepsPerIter, UINT *puiIter1, UINT *puiIter2, UINT *puiIter3);

HRESULT GetPermutation(UINT uiStep, UINT uiStepsPerIter, UINT *puiIter1, UINT *puiIter2);

HRESULT ThreeAxisPermutations(UINT uiStep,
                              float fMin, float fMax, UINT uiMaxIter,
                              float *pfX, float *pfY, float *pfZ);

HRESULT TwoAxisPermutations(UINT uiStep,
                            float fMin, float fMax, UINT uiMaxIter,
                            float *pfAxis1, float *pfAxis2);

HRESULT OneAxisPermutations(UINT uiStep,
                            float fMin, float fMax, UINT uiMaxIter,
                            float *pfAxis);
