Overview | Package | Class | Source | Class tree | Glossary | UnrealScript Documentation |
previous class next class | frames no frames |
00001 00002 00003 00004 00005 00006 00007 00008 00009 00010 00011 00012 00013 00014 00015 00016 00017 00018 00019 00020 00021 00022 00023 00024 00025 00026 00027 00028 00029 00030 00031 00032 00033 00034 00035 00036 00037 00038 00039 00040 00041 00042 00043 00044 00045 00046 00047 00048 00049 00050 00051 00052 00053 00054 00055 00056 00057 00058 00059 00060 00061 00062 00063 00064 00065 00066 00067 00068 00069 00070 00071 00072 00073 00074 00075 00076 00077 00078 00079 00080 00081 00082 00083 00084 00085 00086 00087 00088 00089 00090 00091 00092 00093 00094 00095 00096 00097 00098 00099 00100 00101 00102 00103 00104 00105 00106 00107 00108 00109 00110 00111 00112 00113 00114 00115 00116 00117 00118 00119 00120 00121 00122 00123 00124 00125 00126 00127 00128 00129 00130 00131 00132 00133 00134 00135 00136 |
/** * Copyright 1998-2011 Epic Games, Inc. All Rights Reserved. */ class DistributionVectorUniformCurve extends DistributionVector native collapsecategories hidecategories(Object) editinlinenew; /** Keyframe data for how output constant varies over time. */ var() interpcurvetwovectors ConstantCurve; /** If true, X == Y == Z ie. only one degree of freedom. If false, each axis is picked independently. */ var bool bLockAxes1; var bool bLockAxes2; var() EDistributionVectorLockFlags LockedAxes[2]; var() EDistributionVectorMirrorFlags MirrorFlags[3]; var() bool bUseExtremes; cpptext { virtual void PostLoad(); virtual FVector GetValue( FLOAT F = 0.f, UObject* Data = NULL, INT LastExtreme = 0, class FRandomStream* InRandomStream = NULL ); #if !CONSOLE /** * Return the operation used at runtime to calculate the final value */ virtual ERawDistributionOperation GetOperation(); /** * Return the lock flags used at runtime to calculate the final value */ virtual ERawDistributionLockFlags GetLockFlags(INT InIndex) { if ((InIndex >= 0) && (InIndex <= 1)) { switch (LockedAxes[InIndex]) { case EDVLF_XY: return RDL_XY; case EDVLF_XZ: return RDL_XZ; case EDVLF_YZ: return RDL_YZ; case EDVLF_XYZ: return RDL_XYZ; } } return RDL_None; } /** * Return true if the distribution is a uniform curve */ virtual UBOOL IsUniformCurve() { return TRUE; } /** * Fill out an array of vectors and return the number of elements in the entry * * @param Time The time to evaluate the distribution * @param Values An array of values to be filled out, guaranteed to be big enough for 2 vectors * @return The number of elements (values) set in the array */ virtual DWORD InitializeRawEntry(FLOAT Time, FVector* Values); #endif virtual FTwoVectors GetMinMaxValue(FLOAT F = 0.f, UObject* Data = NULL); /** These two functions will retrieve the Min/Max values respecting the Locked and Mirror flags. */ virtual FVector GetMinValue(); virtual FVector GetMaxValue(); // UObject interface virtual void Serialize(FArchive& Ar); // FCurveEdInterface interface virtual INT GetNumKeys(); virtual INT GetNumSubCurves() const; /** * Provides the color for the sub-curve button that is present on the curve tab. * * @param SubCurveIndex The index of the sub-curve. Cannot be negative nor greater or equal to the number of sub-curves. * @param bIsSubCurveHidden Is the curve hidden? * @return The color associated to the given sub-curve index. */ virtual FColor GetSubCurveButtonColor(INT SubCurveIndex, UBOOL bIsSubCurveHidden) const; virtual FLOAT GetKeyIn(INT KeyIndex); virtual FLOAT GetKeyOut(INT SubIndex, INT KeyIndex); /** * Provides the color for the given key at the given sub-curve. * * @param SubIndex The index of the sub-curve * @param KeyIndex The index of the key in the sub-curve * @param[in] CurveColor The color of the curve * @return The color that is associated the given key at the given sub-curve */ virtual FColor GetKeyColor(INT SubIndex, INT KeyIndex, const FColor& CurveColor); virtual void GetInRange(FLOAT& MinIn, FLOAT& MaxIn); virtual void GetOutRange(FLOAT& MinOut, FLOAT& MaxOut); virtual BYTE GetKeyInterpMode(INT KeyIndex); virtual void GetTangents(INT SubIndex, INT KeyIndex, FLOAT& ArriveTangent, FLOAT& LeaveTangent); virtual FLOAT EvalSub(INT SubIndex, FLOAT InVal); virtual INT CreateNewKey(FLOAT KeyIn); virtual void DeleteKey(INT KeyIndex); virtual INT SetKeyIn(INT KeyIndex, FLOAT NewInVal); virtual void SetKeyOut(INT SubIndex, INT KeyIndex, FLOAT NewOutVal); virtual void SetKeyInterpMode(INT KeyIndex, EInterpCurveMode NewMode); virtual void SetTangents(INT SubIndex, INT KeyIndex, FLOAT ArriveTangent, FLOAT LeaveTangent); /** Returns TRUE if this curve uses legacy tangent/interp algorithms and may be 'upgraded' */ virtual UBOOL UsingLegacyInterpMethod() const; /** 'Upgrades' this curve to use the latest tangent/interp algorithms (usually, will 'bake' key tangents.) */ virtual void UpgradeInterpMethod(); virtual void LockAndMirror(FTwoVectors& Val); // DistributionVector interface virtual void GetRange(FVector& OutMin, FVector& OutMax); } defaultproperties { bLockAxes1 = false bLockAxes2 = false LockedAxes[0] = EDVLF_None LockedAxes[1] = EDVLF_None MirrorFlags[0] = EDVMF_Different MirrorFlags[1] = EDVMF_Different MirrorFlags[2] = EDVMF_Different bUseExtremes = false } |
Overview | Package | Class | Source | Class tree | Glossary | UnrealScript Documentation |
previous class next class | frames no frames |