home *** CD-ROM | disk | FTP | other *** search
/ Game Level Design / GLDesign.bin / Software / UnrealEngine2Runtime / UE2Runtime-22262001_Demo.exe / Engine / Classes / KConstraint.uc < prev    next >
Text File  |  2003-06-23  |  3KB  |  109 lines

  1. //=============================================================================
  2. // The Basic constraint class.
  3. //=============================================================================
  4.  
  5. class KConstraint extends KActor
  6.     abstract
  7.     placeable
  8.     native;
  9.  
  10. #exec Texture Import File=Textures\S_KConstraint.pcx Name=S_KConstraint Mips=Off MASKED=1
  11.  
  12. cpptext
  13. {
  14. #ifdef WITH_KARMA
  15.     virtual MdtConstraintID getKConstraint() const;
  16.     virtual McdModelID getKModel() const;
  17.  
  18.     virtual void physKarma(FLOAT DeltaTime);
  19.  
  20.     virtual void PostEditChange();
  21.     virtual void PostEditMove();
  22.  
  23.     virtual void KUpdateConstraintParams();
  24.     
  25.     virtual void CheckForErrors(); // used for checking that this constraint is valid buring map build
  26.     virtual void RenderEditorSelected(FLevelSceneNode* SceneNode,FRenderInterface* RI, FDynamicActor* FDA);
  27.     virtual UBOOL CheckOwnerUpdated();
  28.  
  29.     virtual void preKarmaStep(FLOAT DeltaTime) {};
  30.     virtual void postKarmaStep() {};
  31. #endif
  32. }
  33.  
  34. // Used internally for Karma stuff - DO NOT CHANGE!
  35. var transient const int KConstraintData;
  36.  
  37. // Actors joined effected by this constraint (could be NULL for 'World')
  38. var(KarmaConstraint) edfindable Actor KConstraintActor1;
  39. var(KarmaConstraint) edfindable Actor KConstraintActor2;
  40.  
  41. // If an KConstraintActor is a skeletal thing, you can specify which bone inside it
  42. // to attach the constraint to. If left blank (the default) it picks the nearest bone.
  43. var(KarmaConstraint) name KConstraintBone1;
  44. var(KarmaConstraint) name KConstraintBone2;
  45.  
  46. // Disable collision between joined
  47. var(KarmaConstraint) const bool bKDisableCollision;
  48.  
  49. // Constraint position/orientation, as defined in each body's local reference frame
  50. // These are in KARMA scale!
  51.  
  52. // Body1 ref frame
  53. var vector KPos1;
  54. var vector KPriAxis1;
  55. var vector KSecAxis1;
  56.  
  57. // Body2 ref frame
  58. var vector KPos2;
  59. var vector KPriAxis2;
  60. var vector KSecAxis2;
  61.  
  62. // Force constraint to re-calculate its position/axis in local ref frames
  63. // Usually true for constraints saved out of UnrealEd, false for everything else
  64. var const bool bKForceFrameUpdate;
  65.  
  66. // [see KForceExceed below]
  67. var(KarmaConstraint) float KForceThreshold;
  68.  
  69.  
  70. // This function is used to re-sync constraint parameters (eg. stiffness) with Karma.
  71. // Call when you change a parameter to get it to actually take effect.
  72. native function KUpdateConstraintParams();
  73.  
  74. native final function KGetConstraintForce(out vector Force);
  75. native final function KGetConstraintTorque(out vector Torque);
  76.  
  77. // Event triggered when magnitude of constraint (linear) force exceeds KForceThreshold
  78. event KForceExceed(float forceMag);
  79.  
  80. defaultproperties
  81. {
  82.     KPos1=(X=0,Y=0,Z=0)
  83.     KPriAxis1=(X=1,Y=0,Z=0)
  84.     KSecAxis1=(X=0,Y=1,Z=0)
  85.  
  86.     KPos2=(X=0,Y=0,Z=0)
  87.     KPriAxis2=(X=1,Y=0,Z=0)
  88.     KSecAxis2=(X=0,Y=1,Z=0)
  89.  
  90.     bKForceFrameUpdate=False
  91.     bKDisableCollision=True
  92.  
  93.     bHidden=True
  94.     Texture=S_KConstraint
  95.     DrawType=DT_Sprite
  96.  
  97.     //Physics=PHYS_None
  98.     bStatic=False
  99.  
  100.     bCollideActors=False
  101.     bProjTarget=False
  102.     bBlockActors=False
  103.     bBlockPlayers=False
  104.     bWorldGeometry=False
  105.     bBlockKarma=False
  106.  
  107.     CollisionHeight=+000001.000000
  108.     CollisionRadius=+000001.000000
  109. }