SIM_ForceFan Class Reference

#include <SIM_ForceFan.h>

Inheritance diagram for SIM_ForceFan:

SIM_Force SIM_OptionsUser SIM_Data

List of all members.

Public Member Functions

 GETSET_DATA_FUNCS_V3 (SIM_NAME_POSITION, Position)
 GETSET_DATA_FUNCS_V3 (SIM_NAME_DIRECTION, Direction)
 GETSET_DATA_FUNCS_F (SIM_NAME_CONEANGLE, ConeAngle)
 GETSET_DATA_FUNCS_F (SIM_NAME_FALLOFFANGLE, FalloffAngle)
 GETSET_DATA_FUNCS_F (SIM_NAME_FLUX, Flux)
 GETSET_DATA_FUNCS_F (SIM_NAME_FALLOFF, Falloff)
 GETSET_DATA_FUNCS_F (SIM_NAME_MAXDISTANCE, MaxDistance)
 GETSET_DATA_FUNCS_I (SIM_NAME_SAMPLEMODE, SampleMode)
 Whether to sample by point, circle, or sphere.

Protected Member Functions

 SIM_ForceFan (const SIM_DataFactory *factory)
virtual ~SIM_ForceFan ()
virtual void getForceSubclass (const SIM_Object &object, const UT_Vector3 &position, const UT_Vector3 &velocity, const UT_Vector3 &angvel, const fpreal mass, UT_Vector3 &force, UT_Vector3 &torque) const
virtual void getForceOnCircleSubclass (const SIM_Object &object, const UT_Vector3 &position, const UT_Vector3 &normal, const fpreal radius, const UT_Vector3 &velocity, const UT_Vector3 &angvel, const fpreal mass, UT_Vector3 &force, UT_Vector3 &torque) const
virtual SIM_ForceSample getOptimalForceSamplingSubclass () const
virtual SIM_GuidecreateGuideObjectSubclass () const
virtual void buildGuideGeometrySubclass (const SIM_RootData &root, const SIM_Options &options, const GU_DetailHandle &gdh, UT_DMatrix4 *xform, const SIM_Time &t) const
 We override this method to create the fan geometry.


Detailed Description

This is an implementation of the SIM_Force interface. This implementation returns a force value that is scaled by the mass of the object receiving the force. No torque is applied. This SIM_Data subclass also implements the SIM_Geometry interface to provide a visualization of the fan and the force it will generate.

Definition at line 27 of file SIM_ForceFan.h.


Constructor & Destructor Documentation

SIM_ForceFan::SIM_ForceFan ( const SIM_DataFactory factory  )  [explicit, protected]

virtual SIM_ForceFan::~SIM_ForceFan (  )  [protected, virtual]


Member Function Documentation

virtual void SIM_ForceFan::buildGuideGeometrySubclass ( const SIM_RootData root,
const SIM_Options options,
const GU_DetailHandle gdh,
UT_DMatrix4 xform,
const SIM_Time t 
) const [protected, virtual]

We override this method to create the fan geometry.

Reimplemented from SIM_Data.

virtual SIM_Guide* SIM_ForceFan::createGuideObjectSubclass (  )  const [protected, virtual]

Override this to return a SIM_GuideStatic. The fan geometry is always the same, only the transform changes.

Reimplemented from SIM_Data.

virtual void SIM_ForceFan::getForceOnCircleSubclass ( const SIM_Object object,
const UT_Vector3 position,
const UT_Vector3 normal,
const fpreal  radius,
const UT_Vector3 velocity,
const UT_Vector3 angvel,
const fpreal  mass,
UT_Vector3 force,
UT_Vector3 torque 
) const [protected, virtual]

Override the surface force calculation. This function calls getForceSubclass() to get the force that would be applied to a unit area, then scales this value by the area of the circle that would be presented to the fan.

Reimplemented from SIM_Force.

virtual void SIM_ForceFan::getForceSubclass ( const SIM_Object object,
const UT_Vector3 position,
const UT_Vector3 velocity,
const UT_Vector3 angvel,
const fpreal  mass,
UT_Vector3 force,
UT_Vector3 torque 
) const [protected, virtual]

Override the point force calculations. Since a fan inherently acts on a surface, we assume for points that the point is a surface with unit area.

Reimplemented from SIM_Force.

virtual SIM_ForceSample SIM_ForceFan::getOptimalForceSamplingSubclass (  )  const [protected, virtual]

Allows solvers to query what the optimal sampling type for this force would be. Solvers do not have to respect this. This should be user overrideable so users can trade efficiency for accuracy.

Reimplemented from SIM_Force.

SIM_ForceFan::GETSET_DATA_FUNCS_F ( SIM_NAME_MAXDISTANCE  ,
MaxDistance   
)

SIM_ForceFan::GETSET_DATA_FUNCS_F ( SIM_NAME_FALLOFF  ,
Falloff   
)

SIM_ForceFan::GETSET_DATA_FUNCS_F ( SIM_NAME_FLUX  ,
Flux   
)

SIM_ForceFan::GETSET_DATA_FUNCS_F ( SIM_NAME_FALLOFFANGLE  ,
FalloffAngle   
)

SIM_ForceFan::GETSET_DATA_FUNCS_F ( SIM_NAME_CONEANGLE  ,
ConeAngle   
)

SIM_ForceFan::GETSET_DATA_FUNCS_I ( SIM_NAME_SAMPLEMODE  ,
SampleMode   
)

Whether to sample by point, circle, or sphere.

SIM_ForceFan::GETSET_DATA_FUNCS_V3 ( SIM_NAME_DIRECTION  ,
Direction   
)

SIM_ForceFan::GETSET_DATA_FUNCS_V3 ( SIM_NAME_POSITION  ,
Position   
)


The documentation for this class was generated from the following file:

Generated on Fri May 25 00:10:40 2012 for HDK by  doxygen 1.5.9