source-engine/game/shared/rope_helpers.h

43 lines
1.0 KiB
C
Raw Normal View History

2020-04-22 16:56:21 +00:00
//========= Copyright Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $NoKeywords: $
//=============================================================================//
#ifndef ROPE_HELPERS_H
#define ROPE_HELPERS_H
#ifdef _WIN32
#pragma once
#endif
#include "mathlib/vector.h"
//
// This function can help you choose starting conditions for your rope. It is fairly
// expensive (slightly less than 0.5ms for a 10-node rope), but it's within reason for the
// frequency we create ropes at.
//
// Input:
// - rope endpoints
// - the number of nodes the client will be simulating (CRopeKeyframe::m_nSegments)
// - how low you want the rope to hang (below the lowest of the two endpoints)
//
// Output:
// - pOutputLength = length of the rope
// - pOutputSlack = slack you should set to produce the desired hang
//
void CalcRopeStartingConditions(
const Vector &vStartPos,
const Vector &vEndPos,
int const nNodes,
float const desiredHang,
float *pOutputLength,
float *pOutputSlack
);
#endif // ROPE_HELPERS_H