| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 | //-----------------------------------------------------------------------------// Copyright (c) 2012 GarageGames, LLC//// Permission is hereby granted, free of charge, to any person obtaining a copy// of this software and associated documentation files (the "Software"), to// deal in the Software without restriction, including without limitation the// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or// sell copies of the Software, and to permit persons to whom the Software is// furnished to do so, subject to the following conditions://// The above copyright notice and this permission notice shall be included in// all copies or substantial portions of the Software.//// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS// IN THE SOFTWARE.//-----------------------------------------------------------------------------#include "math/mSplinePatch.h"//******************************************************************************// Spline control points//******************************************************************************SplCtrlPts::SplCtrlPts(){}//------------------------------------------------------------------------------// Destructor//------------------------------------------------------------------------------SplCtrlPts::~SplCtrlPts(){}//------------------------------------------------------------------------------// Get point//------------------------------------------------------------------------------const Point3F * SplCtrlPts::getPoint( U32 pointNum ){   return &mPoints[pointNum];}//------------------------------------------------------------------------------// Set point//------------------------------------------------------------------------------void SplCtrlPts::setPoint( Point3F &point, U32 pointNum ){   mPoints[pointNum] = point;}//------------------------------------------------------------------------------// Add point//------------------------------------------------------------------------------void SplCtrlPts::addPoint( Point3F &point ){   mPoints.push_back( point );}//------------------------------------------------------------------------------// Submit control points//------------------------------------------------------------------------------void SplCtrlPts::submitPoints( Point3F *pts, U32 num ){   mPoints.clear();   for( S32 i=0; i<num; i++ )   {      mPoints.push_back( pts[i] );   }}//******************************************************************************// Spline patch  - base class//******************************************************************************SplinePatch::SplinePatch(){   mNumReqControlPoints = 0;}//------------------------------------------------------------------------------// This method is the only way to modify control points once they have been// submitted to the patch.  This was done to make sure the patch has a chance// to re-calc any pre-calculated data it may be using from the submitted control// points.//------------------------------------------------------------------------------void SplinePatch::setControlPoint( Point3F &point, S32 index ){   mControlPoints.setPoint( point, index );}//------------------------------------------------------------------------------// Calc point on spline using already submitted points//------------------------------------------------------------------------------void SplinePatch::calc( F32 /*t*/, Point3F &result ){   result.x = result.y = result.z = 0.0f;}//------------------------------------------------------------------------------// Calc point on spline using passed-in points//------------------------------------------------------------------------------void SplinePatch::calc( Point3F * /*points*/, F32 /*t*/, Point3F &result ){   result.x = result.y = result.z = 0.0f;}
 |