/********************************************************** * * * Magnet * * * * Author : Ubi China - Marc Trabucato * * * **********************************************************/ #ifndef _MGTSTRUCT_H_ #define _MGTSTRUCT_H_ #ifdef __cplusplus extern "C" { #endif /* __cplusplus */ /* ----------------------------------------------------------------------------- INCLUDES FILES ----------------------------------------------------------------------------- */ /* ----------------------------------------------------------------------------- CONSTANT DECLARATION ----------------------------------------------------------------------------- */ #define MGT_MAX_NUMBEROF_MAGNETS 5 #define MGT_MAX_NUMBEROF_MODIFIEDOBJECTS 20 /* ----------------------------------------------------------------------------- TYPES DEFINITION ----------------------------------------------------------------------------- */ /*****************************************************************************/ struct MGT_tdstModifiedObject_; struct MGT_tdstMagnetModification_; struct tdstMSMagnet_; /*****************************************************************************/ /* initial values of a modified object */ typedef struct MGT_tdstModifiedObject_ { GEO_tdstGeometricObject *p_stMorphedObject; /* a pointer to the influenced geometric object. */ struct MGT_tdstMagnetModification_ *aDEF_hMagnet[MGT_MAX_NUMBEROF_MAGNETS]; /* the magnets which influence the object */ char *d_cFieldBitsAlreadyInfluencedPoints; /* pointer to a field bits of modified points */ MTH3D_tdstVector *d_stOriginalPosition; /* original position of points */ struct COL_tdstOctree_ *p_stOctree; HIE_tdxHandleToSuperObject h_SuperObject; } MGT_tdstModifiedObject; typedef MGT_tdstModifiedObject *MGT_tdxHandleToModifiedObject; /*****************************************************************************/ /* magnet modification to one object */ typedef struct MGT_tdstMagnetModification_ { ACP_tdxIndex xIndexOfModifiedObject; ACP_tdxIndex xNbPoints; HIE_tdxHandleToSuperObject h_SuperObject; /* the superobject of the initial object */ char *d_cFieldBitsModifiedPoints; /* pointer to a field bits of modified points */ char *d_cFieldBitsInfluencedPoints; /* pointer to a field bits of influenced points 0 : growing , 1 : recover */ unsigned long *d_ulCurrentDuration; ACP_tdxIndex xIndexOfActivatedMagnet; ACP_tdxBool bUsed; } MGT_tdstMagnetModification; typedef MGT_tdstMagnetModification* MGT_tdxHandleToMagnetModification; /*****************************************************************************/ /*****************************************************************************/ /*****************************************************************************/ #ifdef __cplusplus }; #endif /* __cplusplus */ #endif /* _MGTSTRUCT_H_ */