3ds Max C++ API Reference
Loading...
Searching...
No Matches
SSParticle Class Reference

#include <springsys.h>

+ Inheritance diagram for SSParticle:

Public Member Functions

 SSParticle ()
 
 ~SSParticle ()
 
SSParticleoperator= (const SSParticle &from)
 
SSParticle Copy (const SSParticle from)
 
float GetMass ()
 
void SetMass (float m)
 
float GetDrag ()
 
void SetDrag (float d)
 
Point3 GetPos ()
 
void SetPos (Point3 p)
 
Point3 GetVel ()
 
void SetVel (Point3 v)
 
Point3 GetForce ()
 
void SetForce (Point3 f)
 
MaxSDK::Array< SSSpring > * GetSprings ()
 
SSSpringGetSpring (int i)
 
void SetSpring (int i, SSSpring spring)
 
void SetSprings (const MaxSDK::Array< SSSpring > &springsArray)
 
SpringSysExport BOOL AddSpring (SSConstraintPoint *bone, Point3 length, float tension=2.0f, float dampening=1.0f)
 
void DeleteSpring (int index)
 
bool operator== (const SSParticle &b) const
 

Friends

class SpringSys
 

Additional Inherited Members

- Static Public Member Functions inherited from MaxHeapOperators
static UtilExport voidoperator new (size_t size)
 Standard new operator used to allocate objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e)
 Standard new operator used to allocate objects if there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new (size_t size, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate objects that takes the type of memory, filename and line number where the new was called If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate objects that takes the filename and line number where the new was called If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new (size_t size, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate objects that takes extra flags to specify special operations If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new[] (size_t size)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new[] (size_t size, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects.
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, const char *filename, int line)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
 
static UtilExport voidoperator new[] (size_t size, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, an exception will be thrown.
 
static UtilExport voidoperator new[] (size_t size, const std::nothrow_t &e, unsigned long flags)
 New operator used to allocate arrays of objects If there is insufficient memory, NULL will be returned.
 
static UtilExport void operator delete (void *ptr)
 Standard delete operator used to deallocate an object If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an object If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an object that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an object that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete (void *ptr, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an object that takes extra flags to specify special operations If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete[] (void *ptr)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e)
 Standard delete operator used to deallocate an array of objects If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete[] (void *ptr, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, int block_type, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the type of memory, filename and line number where the delete was called If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, const char *filename, int line)
 Delete operator used to deallocate an array of objects that takes the filename and line number where the delete was called If the pointer is invalid, nothing will happen.
 
static UtilExport void operator delete[] (void *ptr, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
 
static UtilExport void operator delete[] (void *ptr, const std::nothrow_t &e, unsigned long flags)
 Delete operator used to deallocate an array of objects that takes extra flags to specify special operations If the pointer is invalid, an exception will be thrown.
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator.
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator.
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary.
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary.
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc.
 

Detailed Description

See also
Class SpringSys, Class SSSpring, Class SSConstraintPoint

This class represents the spring system particle.

Constructor & Destructor Documentation

◆ SSParticle()

SSParticle ( )
inline
Remarks
Constructor.
Default Implementation:
{

mass = 300.0f;

drag = 1.0f;

pos = vel = force = Point3(0.0f,0.0f,0.0f);

springs.ZeroCount();

}
311 {
312 mass = 300.0f;
313 drag = 1.0f;
314 pos = vel = force = Point3(0.0f,0.0f,0.0f);
315 springs.removeAll();
316 }
Array< T > & removeAll()
Removes all the elements from the array.
Definition: Array.inline.h:336
Definition: point3.h:54

◆ ~SSParticle()

~SSParticle ( )
inline
Remarks
Destructor.
Default Implementation:
{ }
320{}

Member Function Documentation

◆ operator=()

SSParticle & operator= ( const SSParticle from)
inline
Remarks
Assignment operator.
324 {
325 mass = from.mass;
326 drag = from.drag;
327 pos = from.pos;
328 vel = from.vel;
329 force = from.force;
330 springs.removeAll();
331 for (size_t i=0; i < from.springs.length(); i++)
332 {
333 SSSpring spring = from.springs[i];
334 springs.append(spring);
335 }
336 return *this;
337 }
size_t length() const
Returns the number of used elements (as opposed to simply allocated/reserved) in the array.
Definition: Array.inline.h:160
size_t append(const T &value)
Appends a copy of value to the array.
Definition: Array.inline.h:313
Definition: springsys.h:144

◆ Copy()

SSParticle Copy ( const SSParticle  from)
inline
Remarks
This method allows you to copy the data from the specified SSParticle.
Parameters:
const SSParticle from

The spring system particle to copy from.
345 {
346 SSSpring spring;
347 mass = from.mass;
348 drag = from.drag;
349 pos = from.pos;
350 vel = from.vel;
351 force = from.force;
352 springs.removeAll();
353 for (size_t i = 0; i < from.springs.length(); i++)
354 {
355 spring.Copy(from.springs[i]);
356 springs.append(spring);
357 }
358 return *this;
359 }
SSSpring Copy(const SSSpring from)
Definition: springsys.h:215

◆ GetMass()

float GetMass ( )
inline
Remarks
This method returns the spring particle mass.
362{return mass;}

◆ SetMass()

void SetMass ( float  m)
inline
Remarks
This method allows you to set the spring particle mass.
Parameters:
float m

The mass to set.
367{mass = m;}

◆ GetDrag()

float GetDrag ( )
inline
Remarks
This method returns the spring particle drag.
369{return drag;}

◆ SetDrag()

void SetDrag ( float  d)
inline
Remarks
This method allows you to set the spring particle drag.
Parameters:
float d

The drag value to set.
374{drag = d;}

◆ GetPos()

Point3 GetPos ( )
inline
Remarks
This method returns the spring particle position.
376{return pos;}

◆ SetPos()

void SetPos ( Point3  p)
inline
Remarks
This method allows you to set the spring particle position.
Parameters:
Point3 p

The position to set.
382{pos = p;}

◆ GetVel()

Point3 GetVel ( )
inline
Remarks
This method returns the spring particle velocity.
384{return vel;}

◆ SetVel()

void SetVel ( Point3  v)
inline
Remarks
This method allows you to set the spring particle velocity.
Parameters:
Point3 v

The velocity to set.
390{vel = v;}

◆ GetForce()

Point3 GetForce ( )
inline
Remarks
This method returns the spring particle force.
392{return force;}

◆ SetForce()

void SetForce ( Point3  f)
inline
Remarks
This method allows you to set the spring particle force.
Parameters:
Point3 f

The force to set.
397{force = f;}

◆ GetSprings()

MaxSDK::Array< SSSpring > * GetSprings ( )
inline
Remarks
This method returns a pointer to the collection of springs.
399{ return &springs;}

◆ GetSpring()

SSSpring * GetSpring ( int  i)
inline
Remarks
This method returns a pointer to the I-th spring in the array.
Parameters:
int i

The index of the spring to return.
405 {if (i>=0 && i < (int)springs.length()) return &(springs[i]);
406 else return NULL; }
#define NULL
Definition: autoptr.h:18

◆ SetSpring()

void SetSpring ( int  i,
SSSpring  spring 
)
inline
Remarks
This method allows you to set the specified spring at the specified I-th index in the array.
Parameters:
int i

The index of the spring to set.

SSSpring spring

The spring to set.
414 {if (i>=0 && i < (int)springs.length())
415 springs[i] = spring; }

◆ SetSprings()

void SetSprings ( const MaxSDK::Array< SSSpring > &  springsArray)
inline
Remarks
This method allows you to set the entire spring array.
Parameters:
MaxSDK::Array<SSSpring>springsArray

The array of springs to set.
421 {
422 springs.removeAll();
423 for (size_t i = 0; i < springsArray.length();i++)
424 {
425 springs.append(springsArray[i]);
426 }
427 }

◆ AddSpring()

SpringSysExport BOOL AddSpring ( SSConstraintPoint bone,
Point3  length,
float  tension = 2.0f,
float  dampening = 1.0f 
)
Remarks
This method allows you to add a spring to the array. Note that if the spring already exists it will be made stronger.
Parameters:
SSConstraintPoint *bone

A pointer to the spring system constraint point to set.

Point3 length

The length of the spring.

tension=2.0f

The tension of the spring.

float dampening = 1.0f

The dampening value of the spring.
Returns
TRUE if the spring was added, FALSE if the spring was made stronger.

◆ DeleteSpring()

void DeleteSpring ( int  index)
inline
Remarks
This method allows you to delete a spring.
Parameters:
int index

The index in the array of the spring to delete.
449 {
450 if ( index == 0 )
451 return;
452 for (size_t i = 0;i < springs.length(); i++)
453 {
454 if ( (springs[i].GetPointConstraint()->GetIndex()) == index)
455 springs.removeAt(i--);
456 else if (springs[i].GetPointConstraint()->GetIndex() > index)
457 springs[i].GetPointConstraint()->SetIndex(springs[i].GetPointConstraint()->GetIndex()-1);
458 }
459 }
Array< T > & removeAt(size_t index)
Removes a single element from the array.
Definition: Array.imp.h:346

◆ operator==()

bool operator== ( const SSParticle b) const
inline
Remarks
Compares this class instance to another one
463 {
464 return mass == b.mass && drag == b.drag && pos == b.pos && vel == b.vel && force == b.force && springs == b.springs;
465 }
float float b
Definition: texutil.h:51

Friends And Related Function Documentation

◆ SpringSys

friend class SpringSys
friend