68 lines
1.4 KiB
Ucode
68 lines
1.4 KiB
Ucode
|
/**
|
||
|
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
|
||
|
*/
|
||
|
|
||
|
class ForceFieldShapeCapsule extends ForceFieldShape
|
||
|
native(ForceField)
|
||
|
;
|
||
|
|
||
|
var DrawCapsuleComponent Shape;
|
||
|
|
||
|
// UE3 capsule is x up by default. The fill... functions are not right because of the direction. Todo.
|
||
|
event float GetHeight()
|
||
|
{
|
||
|
return Shape.CapsuleHeight;
|
||
|
}
|
||
|
|
||
|
event float GetRadius()
|
||
|
{
|
||
|
return Shape.CapsuleRadius;
|
||
|
}
|
||
|
|
||
|
event FillBySphere(float Radius)
|
||
|
{
|
||
|
Shape.CapsuleRadius = Radius;
|
||
|
Shape.CapsuleHeight = 0;
|
||
|
}
|
||
|
|
||
|
event FillByBox(vector Extent)
|
||
|
{
|
||
|
Shape.CapsuleRadius = Sqrt(Extent.X*Extent.X + Extent.Y*Extent.Y);
|
||
|
Shape.CapsuleHeight = Extent.Z*2;
|
||
|
}
|
||
|
|
||
|
event FillByCapsule(float Height, float Radius)
|
||
|
{
|
||
|
Shape.CapsuleHeight = Height;
|
||
|
Shape.CapsuleRadius = Radius;
|
||
|
}
|
||
|
|
||
|
event FillByCylinder(float BottomRadius, float TopRadius, float Height, float HeightOffset)
|
||
|
{
|
||
|
Shape.CapsuleRadius = FMax(BottomRadius, TopRadius);
|
||
|
Shape.CapsuleHeight = Height;
|
||
|
}
|
||
|
|
||
|
event PrimitiveComponent GetDrawComponent()
|
||
|
{
|
||
|
return Shape;
|
||
|
}
|
||
|
|
||
|
cpptext
|
||
|
{
|
||
|
#if WITH_NOVODEX
|
||
|
virtual class NxForceFieldShapeDesc * CreateNxDesc();
|
||
|
#endif
|
||
|
}
|
||
|
|
||
|
defaultproperties
|
||
|
{
|
||
|
Begin Object Class=DrawCapsuleComponent Name=DrawCapsule0
|
||
|
CapsuleRadius=200.0
|
||
|
CapsuleHeight=200.0
|
||
|
Rotation=(Pitch=0, Yaw=0, Roll=16384)//make it z upwards like cylinder
|
||
|
End Object
|
||
|
|
||
|
Shape = DrawCapsule0
|
||
|
}
|