VR-Forces 5.0.2 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Attributes
DtScriptVrfObject Class Reference
Inheritance diagram for DtScriptVrfObject:
Inheritance graph
[legend]

Public Member Functions

 DtScriptVrfObject (const DtSimulationServices *, const DtUUID &name)
 
 DtScriptVrfObject (DtSimObjectReference)
 
 DtScriptVrfObject (const DtScriptVrfObject &orig)
 
 DtScriptVrfObject ()
 
DtScriptVrfObjectoperator= (const DtScriptVrfObject &orig)
 
 ~DtScriptVrfObject ()
 
bool operator== (const DtScriptVrfObject &orig)
 
virtual std::list< std::string > getFormationNames ()
 
virtual std::list< intgetFormationPromotionOrder (const std::string &formationName)
 
virtual std::list< std::string > formationSubFormations (const std::string &formationName)
 
virtual double getHeightAboveTerrain (bool &available) const
 
virtual bool hasLosToObject (const DtScriptVrfObject &target, bool &dataAvailable) const
 
virtual bool isPointInside (const DtLocation3D &point) const
 
virtual bool independentlyTasked () const
 
virtual bool hasLosToLocation (DtLocation3D &targetLoc, bool &dataAvailable) const
 
virtual std::string getEntityType () const
 
virtual bool isAggregate () const
 
virtual bool isPseudoAggregate () const
 
virtual std::string getEchelonLevel () const
 
virtual std::string getForceType () const
 
virtual int getForceEnumeration () const
 
virtual std::string getDamageState () const
 
virtual unsigned getLifeformPosture () const
 
virtual unsigned getAppearance () const
 
virtual bool isDestroyed () const
 
virtual bool isFirePowerKilled () const
 
virtual bool isMobilityKilled () const
 
virtual bool isSensorKilled () const
 
virtual bool isInvisible () const
 
virtual bool isEmbarked () const
 
virtual bool isOnTopOf (DtScriptVrfObject &) const
 
virtual bool isOnTopOfWithDistance (DtScriptVrfObject &, double) const
 
virtual DtScriptVrfObject getEmbarkedOn () const
 
virtual std::list
< DtScriptVrfObject
getEmbarkedObjects (void) const
 
virtual DtVectorOffset3D getOffsetFromParent () const
 
virtual DtVectorOffset3D getOffsetOfLocation (const DtLocation3D &location) const
 
virtual std::list
< DtScriptVrfObject
getSubordinates (void) const
 
virtual std::list
< DtScriptVrfObject
getVrfSubordinates (bool isVrf) const
 
virtual DtScriptVrfObject getSuperior () const
 
virtual double recalculatePhysicalFootprintFromSubordinates (const std::list< DtScriptVrfObject > &) const
 
virtual std::list
< DtScriptVrfObject
getAllSubordinates (void) const
 
virtual std::list
< DtScriptVrfObject
getAllVrfSubordinates (bool isVrf) const
 
virtual std::list
< DtScriptVrfObject
getCapableSubordinates (void) const
 
virtual std::list
< DtScriptVrfObject
getCapableVrfSubordinates (bool isVrf) const
 
virtual bool isVrfSimulated () const
 
virtual std::list< DtLocation3DgetLocations3D (void) const
 
virtual std::string getName () const
 
virtual std::string getLabel () const
 
virtual std::string getExtendedLabel (int) const
 
virtual int getAirTurbulence () const
 
virtual std::string getGlobalId () const
 
virtual std::string getObjectId () const
 
virtual double getHeading () const
 
virtual double getPitch () const
 
virtual double getRoll () const
 
virtual double getDraft () const
 
void terrainSurfaceDebug ()
 
void deleteObject ()
 
bool isDeleted () const
 
virtual bool isValid () const
 
virtual bool isLocal () const
 
virtual DtVectorOffset3D getBoundingVolume (DtVectorOffset3D &offset) const
 
virtual DtVectorOffset3D getBoundingVolumeAllSubordinates (bool bIncludeDestroyedSubordinates, DtVectorOffset3D &offset) const
 
virtual std::string getNbcDamage (int &dmgPerSec, int &moppLvl) const
 
virtual std::string getNbcAgent () const
 
virtual bool isBreached () const
 
virtual std::string getExtendedData (const std::string &key) const
 
virtual DtLocation3D getClosestPointToLocation2D (const DtLocation3D &location, double &distance) const
 
virtual DtLocation3D getIntersectionPointWithLine2D (const DtLocation3D &point1, const DtLocation3D &point2, bool &hasIntersection) const
 
virtual bool isActive () const
 
virtual std::string getDiGuyHandItem () const
 
virtual bool isAnimationAvailable (const std::string &animationName) const
 
virtual bool isAppearanceAvailable (const std::string &appearanceName) const
 
virtual bool isHandItemAvailable (const std::string &handItemName) const
 
virtual bool isHeadAvailable (const std::string &headName) const
 
virtual bool isGestureAvailable (const std::string &gestureName) const
 
virtual double animationDuration (const std::string &animationName) const
 
virtual double animationSpeed (const std::string &animationName) const
 
virtual double getAnimationTransitionInfo (const std::string &fromAnimation, const std::string &toAnimation, DtVectorOffset3D &deltaPos, double &deltaHeading) const
 
virtual void setSimulationServices (const DtSimulationServices *simManager)
 
virtual DtString objectType () const
 
DtString serialize ()
 
virtual bool deserialize (const DtString &data)
 
DtSimObjectReference vrfObject () const
 
void testValid () const
 
bool testAggregateSimObjectValid () const
 
const DtSimulationServicessimulationServices () const
 
virtual DtLocation3D getLocation3D () const
 
virtual DtLocation3D getLocation3dAllSubordinates (bool bIncludeDestroyedSubordinates) const
 
virtual double getSpeed () const
 
virtual std::string getUUID () const
 
virtual DtVector3D getDirection3D () const
 
virtual DtVector3D getVelocity3D () const
 
virtual DtVectorOffset3D getPartParentPosition (int) const
 
virtual DtLocation3D getPartWorldPosition (int) const
 
virtual double getPartPitch (int) const
 
virtual double getPartPitchIncludingParent (int, bool includeParent=false) const
 
virtual double getPartHeading (int) const
 
virtual double getPartHeadingIncludingParent (int, bool includeParent=false) const
 
virtual double getPartTranslationForward (int) const
 
virtual double getPartTranslationRight (int) const
 
virtual double getPartTranslationUp (int) const
 
virtual bool hasStateProperty (const std::string &propertyName)
 
virtual bool hasParameterProperty (const std::string &propertyName)
 
- Public Member Functions inherited from DtAsciiSerializable
 DtAsciiSerializable ()
 
 DtAsciiSerializable (const DtAsciiSerializable &orig)
 
virtual ~DtAsciiSerializable ()
 
virtual std::string objectTypeC () const
 
virtual void init (void *userData)
 

Static Public Member Functions

static DtAsciiSerializablecreator ()
 
static DtScriptVrfObject nullObject ()
 

Protected Attributes

DtRwUUID myUUID
 
const DtSimulationServicesmySimulationServices
 
DtSimObjectReference mySimObjectReference
 
DtVrfSimulatedSimObjectFacade myVrfSimulatedSimObjectFacade
 
DtAggregateSimObjectFacademyAggregateSimObjectFacade
 
DtPlatformSimObjectFacade myPlatformSimObjectFacade
 

Constructor & Destructor Documentation

DtScriptVrfObject::DtScriptVrfObject ( const DtSimulationServices ,
const DtUUID name 
)
DtScriptVrfObject::DtScriptVrfObject ( DtSimObjectReference  )
DtScriptVrfObject::DtScriptVrfObject ( const DtScriptVrfObject orig)
DtScriptVrfObject::DtScriptVrfObject ( )

This constructor will produce an invalid object. However, it is needed by luabind to instantiate a function out-parameter (which gets assigned a value before the function returns).

DtScriptVrfObject::~DtScriptVrfObject ( )

Member Function Documentation

DtScriptVrfObject& DtScriptVrfObject::operator= ( const DtScriptVrfObject orig)
bool DtScriptVrfObject::operator== ( const DtScriptVrfObject orig)
virtual DtLocation3D DtScriptVrfObject::getLocation3D ( ) const
virtual

Script API functions. ////////////////////////////////////!

Returns the location of the entity. If this is a unit, it returns the center mass of the living subordinates.

virtual DtLocation3D DtScriptVrfObject::getLocation3dAllSubordinates ( bool  bIncludeDestroyedSubordinates) const
virtual

Script API functions. ////////////////////////////////////!

Returns the location of the entity. If this is a unit, it returns the center mass of the living subordinates.

virtual double DtScriptVrfObject::getSpeed ( ) const
virtual

Returns the objects current speed in meters/second.

virtual std::string DtScriptVrfObject::getUUID ( ) const
virtual

Returns the UUID of this object.

virtual DtVector3D DtScriptVrfObject::getDirection3D ( ) const
virtual

Vector info about entity. Note that these vectors can be converted to a "geocentric" DtVectorGeoc3D with DtVector3D::makeVectorGeoc3DAtLoc.Returns a unit vector in the direction the entity is facing. In local, e.g. north-east-down, terms, not geocentric.

virtual DtVector3D DtScriptVrfObject::getVelocity3D ( ) const
virtual

Velocity of entity, meters/sec. In local, e.g. north-east-down, terms, not geocentric.

virtual std::list<std::string> DtScriptVrfObject::getFormationNames ( )
virtual

Gets a list of all formation names for this entity (if an aggregate)

virtual std::list<int> DtScriptVrfObject::getFormationPromotionOrder ( const std::string &  formationName)
virtual

Gets a list of promotion ids for the given formation.

virtual std::list<std::string> DtScriptVrfObject::formationSubFormations ( const std::string &  formationName)
virtual

Gets a list of the subordinate formation names for the given formation.

virtual double DtScriptVrfObject::getHeightAboveTerrain ( bool available) const
virtual

Gets the height above terrain, which is just ownship altitude - terrain altitude.

virtual bool DtScriptVrfObject::hasLosToObject ( const DtScriptVrfObject target,
bool dataAvailable 
) const
virtual

Check LOS to a target entity through terrain and objects, except for ownship object and target object. LOS is taken from the center of the observer (not a specific sensor location).

virtual bool DtScriptVrfObject::isPointInside ( const DtLocation3D point) const
virtual

Determine if the given point is inside the polygon described by the vertices (footprint) of this object. This is intended for area control objects, but can be called on any object. Not guaranteed to be correct if the polygon is not convex. The algorithm effectively projects the points into a plane determined by the first two edges of the polygon. If the points are not all coplanar, there is some chance of error.

virtual bool DtScriptVrfObject::independentlyTasked ( ) const
virtual

Returns true if item is independently tasked.

virtual bool DtScriptVrfObject::hasLosToLocation ( DtLocation3D targetLoc,
bool dataAvailable 
) const
virtual

Check LOS to a location through terrain and objects, except for ownship object. LOS is taken from the center of the observer (not a specific sensor location).

virtual std::string DtScriptVrfObject::getEntityType ( ) const
virtual

Return the entity type.

virtual bool DtScriptVrfObject::isAggregate ( ) const
virtual

Returns whether the object is an aggregate, using the object state repository definition of isAggregate().

virtual bool DtScriptVrfObject::isPseudoAggregate ( ) const
virtual

Returns whether the object is an aggregate, using the object state repository definition of isAggregate() and the object is in a DtDisaggregated state.

virtual std::string DtScriptVrfObject::getEchelonLevel ( ) const
virtual

Returns the echelon level as a string. Uses the DIS aggregate categories, amended by MAK (see objTypeEnums.h)

virtual std::string DtScriptVrfObject::getForceType ( ) const
virtual

Returns entity force.

virtual int DtScriptVrfObject::getForceEnumeration ( ) const
virtual

Returns entity force enumeration (integer)

virtual std::string DtScriptVrfObject::getDamageState ( ) const
virtual

Returns the current damage state as: none slight moderate destroyed.

virtual unsigned DtScriptVrfObject::getLifeformPosture ( ) const
virtual

Returns the DIS enumerated value for the current lifeform posture.

virtual unsigned DtScriptVrfObject::getAppearance ( ) const
virtual

Returns the current appearance bits of the entity.

virtual bool DtScriptVrfObject::isDestroyed ( ) const
virtual

Returns whether or not this entity is destroyed.

virtual bool DtScriptVrfObject::isFirePowerKilled ( ) const
virtual

Returns whether or not this entity's fire power has been killed.

virtual bool DtScriptVrfObject::isMobilityKilled ( ) const
virtual

Returns whether or not this entity's mobility has been killed.

virtual bool DtScriptVrfObject::isSensorKilled ( ) const
virtual

Returns whether or not this entity's sensors have been killed.

virtual bool DtScriptVrfObject::isInvisible ( ) const
virtual

Returns whether or not this entity is invisible.

virtual bool DtScriptVrfObject::isEmbarked ( ) const
virtual

Returns whether or not this item is embarked on any other item.

Reimplemented in DtScriptOwnshipObject.

virtual bool DtScriptVrfObject::isOnTopOf ( DtScriptVrfObject ) const
virtual

Will return true if this entity is near the top of the specified entity given the specified distance (in meters). Default distance is the entities lattice offset in Z + .5 meters.

virtual bool DtScriptVrfObject::isOnTopOfWithDistance ( DtScriptVrfObject ,
double   
) const
virtual
virtual DtScriptVrfObject DtScriptVrfObject::getEmbarkedOn ( ) const
virtual

Parent this object is embarked on.

Reimplemented in DtScriptOwnshipObject.

virtual std::list<DtScriptVrfObject> DtScriptVrfObject::getEmbarkedObjects ( void  ) const
virtual
virtual DtVectorOffset3D DtScriptVrfObject::getOffsetFromParent ( ) const
virtual
virtual DtVectorOffset3D DtScriptVrfObject::getOffsetOfLocation ( const DtLocation3D location) const
virtual
virtual std::list<DtScriptVrfObject> DtScriptVrfObject::getSubordinates ( void  ) const
virtual

Returns a list of the immediate subordinates of this aggregate.

virtual std::list<DtScriptVrfObject> DtScriptVrfObject::getVrfSubordinates ( bool  isVrf) const
virtual

Returns a list of the vrf simulated immediate subordinates of this aggregate.

virtual DtScriptVrfObject DtScriptVrfObject::getSuperior ( ) const
virtual

Returns the superior of this object.

virtual double DtScriptVrfObject::recalculatePhysicalFootprintFromSubordinates ( const std::list< DtScriptVrfObject > &  ) const
virtual

Given the list of subordinates, return a DtRwReal that will contain the physical footprint (radius) of aggregate.

virtual DtVectorOffset3D DtScriptVrfObject::getPartParentPosition ( int  ) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual DtLocation3D DtScriptVrfObject::getPartWorldPosition ( int  ) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual double DtScriptVrfObject::getPartPitch ( int  ) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual double DtScriptVrfObject::getPartPitchIncludingParent ( int  ,
bool  includeParent = false 
) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual double DtScriptVrfObject::getPartHeading ( int  ) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual double DtScriptVrfObject::getPartHeadingIncludingParent ( int  ,
bool  includeParent = false 
) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual double DtScriptVrfObject::getPartTranslationForward ( int  ) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual double DtScriptVrfObject::getPartTranslationRight ( int  ) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual double DtScriptVrfObject::getPartTranslationUp ( int  ) const
virtual

These routines will return part information as applied to this entity. Flags will indicate if the parent information is to be used as well.

virtual std::list<DtScriptVrfObject> DtScriptVrfObject::getAllSubordinates ( void  ) const
virtual

Returns a list of all leaf (lowest level) nodes (subordinates) of this aggregate. Will recurse over all subordinate aggregates getting their subordinates until only items that have no children are part of this list.

virtual std::list<DtScriptVrfObject> DtScriptVrfObject::getAllVrfSubordinates ( bool  isVrf) const
virtual

Reimplemented in DtScriptOwnshipObject.

virtual std::list<DtScriptVrfObject> DtScriptVrfObject::getCapableSubordinates ( void  ) const
virtual
virtual std::list<DtScriptVrfObject> DtScriptVrfObject::getCapableVrfSubordinates ( bool  isVrf) const
virtual
virtual bool DtScriptVrfObject::isVrfSimulated ( ) const
virtual

Returns true if this object is simulated by VR-Forces.

virtual std::list<DtLocation3D> DtScriptVrfObject::getLocations3D ( void  ) const
virtual
virtual std::string DtScriptVrfObject::getName ( ) const
virtual
virtual std::string DtScriptVrfObject::getLabel ( ) const
virtual
virtual std::string DtScriptVrfObject::getExtendedLabel ( int  ) const
virtual
virtual int DtScriptVrfObject::getAirTurbulence ( ) const
virtual
virtual std::string DtScriptVrfObject::getGlobalId ( ) const
virtual
virtual std::string DtScriptVrfObject::getObjectId ( ) const
virtual
virtual double DtScriptVrfObject::getHeading ( ) const
virtual
virtual double DtScriptVrfObject::getPitch ( ) const
virtual
virtual double DtScriptVrfObject::getRoll ( ) const
virtual
virtual double DtScriptVrfObject::getDraft ( ) const
virtual
void DtScriptVrfObject::terrainSurfaceDebug ( )

For debugging the terrain surface(s) at the entity's location.

void DtScriptVrfObject::deleteObject ( )

Deletes object from simulation.

bool DtScriptVrfObject::isDeleted ( ) const

Returns true if the object has been deleted from the simulation.

virtual bool DtScriptVrfObject::isValid ( ) const
virtual

Reimplemented in DtScriptOwnshipObject.

virtual bool DtScriptVrfObject::isLocal ( ) const
virtual

Returns true if the object is local to the back-end the script is running on.

virtual DtVectorOffset3D DtScriptVrfObject::getBoundingVolume ( DtVectorOffset3D offset) const
virtual

Returns the bounding volume and the bounding volume offset. If this is a unit, returns bounding volume of living subordinates Calls getBoundingVolumeAllSubordinates() with bIncludeDestroyedSubordinates = false.

virtual DtVectorOffset3D DtScriptVrfObject::getBoundingVolumeAllSubordinates ( bool  bIncludeDestroyedSubordinates,
DtVectorOffset3D offset 
) const
virtual

Returns the bounding volume and the bounding volume offset.

virtual std::string DtScriptVrfObject::getNbcDamage ( int dmgPerSec,
int moppLvl 
) const
virtual

Returns the damage type, damage per second, and the MOPP level required to protect against the NBC contaminated area.

virtual std::string DtScriptVrfObject::getNbcAgent ( ) const
virtual

Returns the agent type of the NBC area.

virtual bool DtScriptVrfObject::isBreached ( ) const
virtual

Returns true if this is an engineering object which has been breached.

virtual std::string DtScriptVrfObject::getExtendedData ( const std::string &  key) const
virtual

Returns the extended data with the given key, or an empty string if not found.

virtual DtLocation3D DtScriptVrfObject::getClosestPointToLocation2D ( const DtLocation3D location,
double distance 
) const
virtual

Finds the closest point on the object's geometry to the given location. Also returns the distance to that point.

virtual DtLocation3D DtScriptVrfObject::getIntersectionPointWithLine2D ( const DtLocation3D point1,
const DtLocation3D point2,
bool hasIntersection 
) const
virtual

Calculates the point where the line defined by the two points intersects with the object. Sets hasIntersection to false if there is no intersection point.

virtual bool DtScriptVrfObject::isActive ( ) const
virtual

Returns true if this is an environmental and it is active. All others will be considered active.

virtual bool DtScriptVrfObject::hasStateProperty ( const std::string &  propertyName)
virtual

Checks to see if the property exists. It is OK to call the get... Lua API functions when the property doesn't exist; a warning is printed and a nil object is returned. Using this test is appropriate though when it is known ahead of time that the property might not exist for some entity.

Reimplemented in DtScriptOwnshipObject.

virtual bool DtScriptVrfObject::hasParameterProperty ( const std::string &  propertyName)
virtual

Checks to see if the property exists. It is OK to call the get... Lua API functions when the property doesn't exist; a warning is printed and a nil object is returned. Using this test is appropriate though when it is known ahead of time that the property might not exist for some entity.

Reimplemented in DtScriptOwnshipObject.

virtual std::string DtScriptVrfObject::getDiGuyHandItem ( ) const
virtual

If object is lifeform with Diguy representation will return handitem if has one.

virtual bool DtScriptVrfObject::isAnimationAvailable ( const std::string &  animationName) const
virtual
virtual bool DtScriptVrfObject::isAppearanceAvailable ( const std::string &  appearanceName) const
virtual
virtual bool DtScriptVrfObject::isHandItemAvailable ( const std::string &  handItemName) const
virtual
virtual bool DtScriptVrfObject::isHeadAvailable ( const std::string &  headName) const
virtual
virtual bool DtScriptVrfObject::isGestureAvailable ( const std::string &  gestureName) const
virtual
virtual double DtScriptVrfObject::animationDuration ( const std::string &  animationName) const
virtual
virtual double DtScriptVrfObject::animationSpeed ( const std::string &  animationName) const
virtual
virtual double DtScriptVrfObject::getAnimationTransitionInfo ( const std::string &  fromAnimation,
const std::string &  toAnimation,
DtVectorOffset3D deltaPos,
double deltaHeading 
) const
virtual

as well as the delta position and heading.

virtual void DtScriptVrfObject::setSimulationServices ( const DtSimulationServices simManager)
virtual

Script API functions above. ////////////////////////////////////!

Used by the object serializer so that an instance of this object can call checkSelf()

virtual DtString DtScriptVrfObject::objectType ( ) const
virtual

Should return the string name of this object. The object name should not be part of the serialization unless you want it to be, but you should take it into account when implementing both functions.

Implements DtAsciiSerializable.

DtString DtScriptVrfObject::serialize ( )
virtual

Inherited from DtAsciiSerializable. Returns a string serialized version of this class.

Implements DtAsciiSerializable.

virtual bool DtScriptVrfObject::deserialize ( const DtString data)
virtual

Inherited from DtAsciiSerializable. Returns true if it could fill its members with the data contained in the string. False otherwise.

Implements DtAsciiSerializable.

static DtAsciiSerializable* DtScriptVrfObject::creator ( )
static

Inherited from DtAsciiSerializable. Returns a new object of this type with default values.

DtSimObjectReference DtScriptVrfObject::vrfObject ( ) const
inline

For use by C++ side methods. Call testValid() to try and fill in object pointer (if does not exist) or throw an exception if it really doesn't.

void DtScriptVrfObject::testValid ( ) const

Makes sure the object is valid. If not, throws exception.

bool DtScriptVrfObject::testAggregateSimObjectValid ( ) const

Create an aggregate sim object (if one does not exist) and check if is is usable. Return true/false.

static DtScriptVrfObject DtScriptVrfObject::nullObject ( )
inlinestatic

Returns a null object.

References DtUUID::nullUUID().

Referenced by DtVariableParameterBuilder::value().

const DtSimulationServices* DtScriptVrfObject::simulationServices ( ) const

Simulation services associated with this object.

Member Data Documentation

DtRwUUID DtScriptVrfObject::myUUID
protected
const DtSimulationServices* DtScriptVrfObject::mySimulationServices
protected
DtSimObjectReference DtScriptVrfObject::mySimObjectReference
mutableprotected
DtVrfSimulatedSimObjectFacade DtScriptVrfObject::myVrfSimulatedSimObjectFacade
mutableprotected
DtAggregateSimObjectFacade* DtScriptVrfObject::myAggregateSimObjectFacade
mutableprotected

Convenience classes that can be used if the object is of the given type.

DtPlatformSimObjectFacade DtScriptVrfObject::myPlatformSimObjectFacade
mutableprotected

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

Document ID: Generated on Sun Dec 4 20:22:03 EST 2022 from SVN revision 249613
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)