1
0
KF2-Dev-Scripts/Engine/Classes/InterpTrack.uc
2020-12-13 18:01:13 +03:00

115 lines
3.2 KiB
Ucode

/**
* Copyright 1998-2013 Epic Games, Inc. All Rights Reserved.
*
* Abstract base class for a track of interpolated data. Contains the actual data.
* The Outer of an InterpTrack is the InterpGroup.
*/
class InterpTrack extends Object
native
noexport
collapsecategories
hidecategories(Object)
inherits(FInterpEdInputInterface)
abstract;
/** FCurveEdInterface virtual function table. */
var private native noexport pointer CurveEdVTable;
/** Helper struct for creating sub tracks supported by this track */
struct native SupportedSubTrackInfo
{
/** The sub track class which is supported by this track */
var class<InterpTrack> SupportedClass;
/** The name of the subtrack */
var String SubTrackName;
/** Index into the any subtrack group this subtrack belongs to (can be -1 for no group) */
var int GroupIndex;
};
/** A small structure holding data for grouping subtracks. (For UI drawing purposes) */
struct native SubTrackGroup
{
/** Name of the subtrack group */
var string GroupName;
/** Indices to tracks in the parent track subtrack array. */
var array<int> TrackIndices;
/** If this group is collapsed */
var bool bIsCollapsed;
/** If this group is selected */
var transient bool bIsSelected;
};
/** A list of subtracks that belong to this track */
var array<InterpTrack> SubTracks;
/** A list of subtrack groups (for editor UI organization only) */
var editoronly array<SubTrackGroup> SubTrackGroups;
/** A list of supported tracks that can be a subtrack of this track. */
var transient editoronly array< SupportedSubTrackInfo > SupportedSubTracks;
var class<InterpTrackInst> TrackInstClass;
/** Required condition for this track to be enabled */
enum ETrackActiveCondition
{
/** Track is always active */
ETAC_Always,
/** Track is active when extreme content (gore) is enabled */
ETAC_GoreEnabled,
/** Track is active when extreme content (gore) is disabled */
ETAC_GoreDisabled
};
/** Sets the condition that must be met for this track to be enabled */
var() ETrackActiveCondition ActiveCondition;
/** Title of track type. */
var string TrackTitle;
/** Whether there may only be one of this track in an InterpGroup. */
var bool bOnePerGroup;
/** If this track can only exist inside the Director group. */
var bool bDirGroupOnly;
/** Whether or not this track should actually update the target actor. */
var bool bDisableTrack;
/** If true, the Actor this track is working on will have BeginAnimControl/FinishAnimControl called on it. */
var bool bIsAnimControlTrack;
/** If this track can only exist as a sub track. */
var bool bSubTrackOnly;
/** Whether or not this track is visible in the editor. */
var transient bool bVisible;
/** Whether or not this track is selected in the editor. */
var transient bool bIsSelected;
/** Whether or not this track is recording in the editor. */
var transient bool bIsRecording;
/** If this track is collapsed. (Only applies to tracks with subtracks). */
var editoronly bool bIsCollapsed;
defaultproperties
{
TrackInstClass=class'Engine.InterpTrackInst'
ActiveCondition=ETAC_Always
TrackTitle="Track"
bVisible=true
bIsSelected=false
bIsRecording=false
bIsCollapsed=false
}