engine/dgl/splineUtil.h
2024-01-07 04:36:33 +00:00

60 lines
1.5 KiB
C++

//-----------------------------------------------------------------------------
// V12 Engine
//
// Copyright (c) 2001 GarageGames.Com
// Portions Copyright (c) 2001 by Sierra Online, Inc.
//-----------------------------------------------------------------------------
#ifndef _SPLINEUTIL_H_
#define _SPLINEUTIL_H_
#ifndef _PLATFORM_H_
#include "Platform/platform.h"
#endif
#ifndef _MPOINT_H_
#include "Math/mPoint.h"
#endif
#ifndef _MSPLINEPATCH_H_
#include "Math/mSplinePatch.h"
#endif
#ifndef _COLOR_H_
#include "Core/color.h"
#endif
namespace SplineUtil
{
struct SplineBeamInfo
{
Point3F * camPos;
U32 numSegments;
F32 width;
SplinePatch * spline;
F32 uvOffset;
F32 numTexRep;
ColorF color;
bool zeroAlphaStart; // first part of first segment has 0 alpha value
SplineBeamInfo()
{
dMemset( this, 0, sizeof( SplineBeamInfo ) );
numTexRep = 1.0;
}
};
//------------------------------------------------------------------------------
// Draws strip of specified width along spline. Polys on strip segments are front-facing (billboarded)
//------------------------------------------------------------------------------
void drawSplineBeam( const Point3F& camPos, U32 numSegments, F32 width,
SplinePatch &spline, F32 uvOffset = 0.0, F32 numTexRep = 1.0 );
void drawSplineBeam( SplineBeamInfo &sbi );
}
#endif