added everything
This commit is contained in:
94
lib/maxsdk70/include/ParticleFlow/PreciseTimeValue.h
Executable file
94
lib/maxsdk70/include/ParticleFlow/PreciseTimeValue.h
Executable file
@@ -0,0 +1,94 @@
|
||||
/*! \file PreciseTimeValue.h
|
||||
\brief Class definitions for PreciseTimeValue.
|
||||
Though time is stored internall in 3ds max as an integer
|
||||
number of ticks, the precision is not sufficient particularly
|
||||
for collision detection and particle systems tests.
|
||||
The class is used where an additional degree of time pre-
|
||||
cision is required.
|
||||
The "fraction" member stays in range [-0.5f, 0.5f] if
|
||||
there is no direct manipulation with the member.
|
||||
*/
|
||||
/**********************************************************************
|
||||
*<
|
||||
CREATED BY: Oleg Bayborodin
|
||||
|
||||
HISTORY: created 10-17-01
|
||||
|
||||
*> Copyright (c) 2001, All Rights Reserved.
|
||||
**********************************************************************/
|
||||
|
||||
#ifndef _PRECISETIMEVALUE_H
|
||||
#define _PRECISETIMEVALUE_H
|
||||
|
||||
#include "PFExport.h"
|
||||
|
||||
class PFExport PreciseTimeValue {
|
||||
public:
|
||||
int tick;
|
||||
float fraction;
|
||||
|
||||
// Constructors
|
||||
PreciseTimeValue() {}
|
||||
PreciseTimeValue(int t, float f) { tick = t; fraction = f; }
|
||||
PreciseTimeValue(int t) { tick = t; fraction = 0.0f; }
|
||||
PreciseTimeValue(float f);
|
||||
PreciseTimeValue(const PreciseTimeValue& v);
|
||||
|
||||
// Data members
|
||||
static const PreciseTimeValue Origin;
|
||||
|
||||
// Conversion function
|
||||
operator int() { return tick; }
|
||||
operator float() { return tick+fraction; }
|
||||
|
||||
// Unary operators
|
||||
PreciseTimeValue operator-() const;
|
||||
PreciseTimeValue operator+() const { return *this; }
|
||||
|
||||
// Property functions
|
||||
int TimeValue() const { return tick; }
|
||||
float PreciseTime() const { return tick+fraction; }
|
||||
|
||||
// Assignment operators
|
||||
PreciseTimeValue& operator-=(const PreciseTimeValue&);
|
||||
PreciseTimeValue& operator-=(const int v) { tick -= v; return *this; }
|
||||
PreciseTimeValue& operator-=(const float);
|
||||
PreciseTimeValue& operator+=(const PreciseTimeValue&);
|
||||
PreciseTimeValue& operator+=(const int v) { tick += v; return *this; }
|
||||
PreciseTimeValue& operator+=(const float);
|
||||
PreciseTimeValue& operator*=(const int);
|
||||
PreciseTimeValue& operator*=(const float);
|
||||
PreciseTimeValue& operator/=(const float);
|
||||
|
||||
PreciseTimeValue& Set(int t, float f) { tick=t; fraction=f; return *this; }
|
||||
|
||||
// Test for equality
|
||||
int operator==(const PreciseTimeValue& v) const
|
||||
{ return ((v.tick==tick)&&(v.fraction==fraction)); }
|
||||
int operator!=(const PreciseTimeValue& v) const
|
||||
{ return ((v.tick!=tick)||(v.fraction!=fraction)); }
|
||||
int Equals(const PreciseTimeValue& v, float epsilon = 1E-6f) const;
|
||||
int Equals(int t, float epsilon = 1E-6f) const;
|
||||
int Equals(float t, float epsilon = 1E-6f) const;
|
||||
int operator>(const PreciseTimeValue& v) const;
|
||||
int operator<(const PreciseTimeValue& v) const;
|
||||
int operator>=(const PreciseTimeValue& v) const;
|
||||
int operator<=(const PreciseTimeValue& v) const;
|
||||
|
||||
// Binary operators
|
||||
PreciseTimeValue operator-(const PreciseTimeValue&) const;
|
||||
PreciseTimeValue operator-(const int) const;
|
||||
PreciseTimeValue operator-(const float) const;
|
||||
PreciseTimeValue operator+(const PreciseTimeValue&) const;
|
||||
PreciseTimeValue operator+(const int) const;
|
||||
PreciseTimeValue operator+(const float) const;
|
||||
PreciseTimeValue operator*(const int) const;
|
||||
PreciseTimeValue operator*(const float) const;
|
||||
PreciseTimeValue operator/(const float) const;
|
||||
|
||||
// internal use
|
||||
void AdjustFraction();
|
||||
};
|
||||
|
||||
|
||||
#endif // _PRECISETIMEVALUE_H_
|
||||
Reference in New Issue
Block a user