3ds Max C++ API Reference
IHIIKGoal Class Referenceabstract

#include <ikhierarchy.h>

+ Inheritance diagram for IHIIKGoal:

Public Member Functions

BaseInterfaceGetInterface (Interface_ID id)
 
Interface_ID GetID ()
 
virtual bool UseVHTarget () const =0
 
virtual float SwivelAngle () const =0
 
virtual const Point3VHTarget () const =0
 
virtual SAParentSpace SwivelAngleParent () const =0
 
virtual const Point3ChainNormal () const =0
 
virtual const ZeroPlaneMapDefaultZeroMap () const =0
 
virtual Matrix3Goal ()=0
 
- Public Member Functions inherited from IIKGoal
LifetimeType LifetimeControl ()
 
CoreExport void ReleaseInterface ()
 
virtual ~IIKGoal ()
 
- Public Member Functions inherited from BaseInterface
virtual UtilExport ~BaseInterface ()
 Destructor. More...
 
virtual bool RegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual void UnRegisterNotifyCallback (InterfaceNotifyCallback *incb)
 
virtual BaseInterfaceAcquireInterface ()
 
virtual void DeleteInterface ()
 
virtual BaseInterfaceCloneInterface (void *remapDir=NULL)
 
- Public Member Functions inherited from InterfaceServer
virtual UtilExport ~InterfaceServer ()
 Destructor. More...
 
template<class InterfaceType >
InterfaceType * GetTypedInterface ()
 

Additional Inherited Members

- Public Types inherited from BaseInterface
enum  LifetimeType { noRelease , immediateRelease , wantsRelease , serverControlled }
 
- 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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static UtilExport voidoperator new[] (size_t size, int block_type, const char *filename, int line)
 New operator used to allocate arrays of objects. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
static UtilExport voidoperator new (size_t size, void *placement_ptr)
 Placement new operator. More...
 
static UtilExport void operator delete (void *ptr, void *placement_ptr)
 Placement delete operator. More...
 
static UtilExport voidaligned_malloc (size_t size, size_t alignment)
 Allocates memory on a specified alignment boundary. More...
 
static UtilExport voidaligned_realloc (void *ptr, size_t size, size_t alignment)
 Reallocates memory on a specified alignment boundary. More...
 
static UtilExport void aligned_free (void *ptr)
 Frees a block of memory that was allocated with aligned_malloc/aligned_realloc. More...
 

Detailed Description

See also
: Class IIKGoal

class IHIIKGoal: public IIKGoal

Description:
This class is only available in release 5 or later. This is an interface to a specific type of IK goal, the HI IK goal. The interface id is given the constant kHIIKGoalID.

The plugin solver that declares its goal type, with IKSolver::ExpectGoal(), as kHIIKGoalID should expect this type of goal from LinkChain::GetIKGoal(). To get the interface pointer, one can

IHIIKGoal ikgoal = (IHIIKGoal)linkChain->GetIKGoal()->GetInterface(kHIIKGoalID);

Member Function Documentation

◆ GetInterface()

BaseInterface* GetInterface ( Interface_ID  id)
inlinevirtual
Remarks
Returns a pointer of type BaseInterface for the interface IIKGoal
Parameters
id- Input id = kGoalID(<b>0x53937e2, 0x2be92941)
Returns
Interface_ID kGoalID(0x53937e2, 0x2be92941)

Reimplemented from IIKGoal.

714 { if (id == kHIIKGoalID) return this; else return IIKGoal::GetInterface(id); }
BaseInterface * GetInterface(Interface_ID id)
Definition: ikhierarchy.h:681
const Interface_ID kHIIKGoalID(0x2497c0e, 0x376f602a)

◆ GetID()

Interface_ID GetID ( )
inlinevirtual
Remarks
Returns, Interface_ID kGoalID(0x53937e2, 0x2be92941)

Reimplemented from IIKGoal.

715 { return kHIIKGoalID; }

◆ UseVHTarget()

virtual bool UseVHTarget ( ) const
pure virtual
Remarks
UseVHTarget() tells whether the swivel angle is determined (or computed) by a point in space to that the solver plane is supposed to pass, or is simply provided by a number literally. If it is true, the point is obtained from VHTarget(). Otherwise, the angle is obtained from SwivelAngle().

◆ SwivelAngle()

virtual float SwivelAngle ( ) const
pure virtual
Remarks
See explanation in UseVHTarget.

◆ VHTarget()

virtual const Point3& VHTarget ( ) const
pure virtual
Remarks
See explanation in UseVHTarget.

◆ SwivelAngleParent()

virtual SAParentSpace SwivelAngleParent ( ) const
pure virtual
Remarks
Whether the swivel angle is interpreted in the space in which the start joint lies, or in the space of the goal.

◆ ChainNormal()

virtual const Point3& ChainNormal ( ) const
pure virtual
Remarks
The normal of the solver plane at the preferred pose, represented in the parent space of the root joint. It serves as the zero reference for the swivel angle.

◆ DefaultZeroMap()

virtual const ZeroPlaneMap* DefaultZeroMap ( ) const
pure virtual
Remarks
Returns the (IK) system provided default for the Zero Plane Map.

◆ Goal()

virtual Matrix3& Goal ( )
pure virtual
Remarks
The goal for the end effector.