BrawlCrate v0.41
Wii File Editor
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | Static Public Attributes | Properties | List of all members
BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode Class Reference
Inheritance diagram for BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode:
BrawlLib.SSBB.ResourceNodes.ResourceNode BrawlLib.Wii.Animations.IKeyframeSource

Public Member Functions

 SHP0VertexSetNode (string name)
 
override bool OnInitialize ()
 
override int OnCalculateSize (bool force)
 
override void OnRebuild (VoidPtr address, int length, bool force)
 
override void Export (string outPath)
 
KeyframeEntry GetKeyframe (int index)
 
void SetKeyframe (int index, float value)
 
void RemoveKeyframe (int index)
 
- Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
void OnRenamed ()
 
List< ResourceNodeGetChildrenRecursive ()
 Used primarily to get bone lists. Kept for all resource nodes for utility. More...
 
virtual void SignalPropertyChange ()
 
virtual void Dispose ()
 
void SelectChildAtIndex (int index)
 
void UpdateProperties ()
 
void UpdateCurrentControl ()
 
virtual bool MoveUp ()
 
virtual bool MoveDown ()
 
virtual void OnMoved ()
 
virtual void DoMoveDown ()
 
virtual void DoMoveDown (bool select)
 
virtual void DoMoveUp ()
 
virtual void DoMoveUp (bool select)
 
virtual bool AddUp ()
 
virtual bool AddDown ()
 
virtual bool ToParent ()
 
void Populate (int levels=-1)
 
virtual void OnPopulate ()
 
void Initialize (ResourceNode parent, FileMap source)
 
void Initialize (ResourceNode parent, VoidPtr address, int length)
 
void Initialize (ResourceNode parent, DataSource origSource)
 
virtual void Initialize (ResourceNode parent, DataSource origSource, DataSource uncompSource)
 
virtual bool OnInitialize ()
 
virtual void Restore ()
 
virtual void Remove ()
 
virtual void RemoveChild (ResourceNode child)
 
virtual void AddChild (ResourceNode child)
 
virtual void AddChild (ResourceNode child, bool change)
 
virtual void InsertChild (ResourceNode child, int index)
 
virtual void InsertChild (ResourceNode child, bool change, int index)
 
void SetSizeInternal (int size)
 
virtual void Replace (string fileName)
 
virtual void Replace (ResourceNode node)
 
virtual void Replace (string fileName, FileMapProtect prot, FileOptions options)
 
virtual void ReplaceRaw (VoidPtr address, int length)
 
virtual void ReplaceRaw (FileMap map)
 
virtual void Export (string outPath)
 
void Export (FileStream outStream)
 
virtual void ExportUncompressed (string outPath)
 
void ExportUncompressed (FileStream outStream)
 
virtual void Rebuild ()
 
virtual void Rebuild (bool force)
 
virtual void Rebuild (VoidPtr address, int length, bool force)
 
virtual void OnRebuild (VoidPtr address, int length, bool force)
 
virtual int CalculateSize (bool force)
 
virtual int OnCalculateSize (bool force)
 
void Merge ()
 
void Merge (bool forceBuild)
 
ResourceNode FindChildByType (string path, bool searchChildren, params ResourceType[] types)
 
ResourceNode FindChildByType (string path, bool searchChildren, StringComparison compare, params ResourceType[] types)
 
ResourceNode FindChild (string path)
 
ResourceNode FindChild (string path, bool searchChildren)
 
ResourceNode FindChild (string path, StringComparison compare)
 
ResourceNode FindChild (string path, bool searchChildren, StringComparison compare)
 
ResourceNode[] FindChildrenByClassType (string path, Type type)
 
ResourceNode[] FindChildrenByType (string path, ResourceType type)
 
ResourceNode[] FindChildrenByTypeInGroup (string path, ResourceType type, byte group)
 
ResourceNode[] FindChildrenByName (string name)
 
unsafe string FindName (string name)
 
ResourceNode FindEmbeddedIndex (int index)
 
virtual unsafe byte[] MD5 ()
 Find the MD5 checksum of this node's data. If this node doesn't have any data (BRESGroupNode, for example), this method will return null. More...
 
string MD5Str ()
 Get the result of the MD5() function as a string of hexadecimal digits. If MD5() returns null, this method will return an empty string. More...
 
ResourceNode PrevSibling ()
 
ResourceNode NextSibling ()
 
override string ToString ()
 
virtual void SortChildren ()
 

Public Attributes

int _dataLen
 
VoidPtr _dataAddr
 
bool _isFixed
 
float _fixedValue
 
- Public Attributes inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
Form _mainForm
 
string _name
 
string _origPath
 
ResourceNode _parent
 
List< ResourceNode_children = new List<ResourceNode>()
 
int _calcSize
 
EventHandler UpdateControl
 
MoveEventHandler MovedDown
 
ResourceEventHandler Renamed
 
ResourceEventHandler PropertyChanged
 
ResourceEventHandler Replaced
 
ResourceEventHandler Restored
 
ResourceChildEventHandler ChildRemoved
 
bool _isPopulating
 
bool _replaced
 

Static Public Attributes

static bool _generateTangents = true
 

Properties

override ResourceType ResourceFileType [get]
 
int FrameCount [get]
 
KeyframeArray Keyframes [get]
 
KeyframeArray[] KeyArrays [get]
 
- Properties inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
string FilePath [get]
 
string FileName [get]
 
string DirectoryName [get]
 
ResourceNode RootNode [get]
 
DataSource OriginalSource [get]
 
DataSource UncompressedSource [get]
 
DataSource WorkingSource [get]
 
DataSource WorkingUncompressed [get]
 
virtual bool HasChildren [get]
 
virtual ResourceType ResourceFileType [get]
 
string NodeType [get]
 
virtual string TreePathAbsolute [get]
 
virtual string TreePath [get]
 
virtual int Level [get]
 
virtual int MaxNameLength [get]
 
virtual bool AllowDuplicateNames [get]
 
virtual bool AllowNullNames [get]
 
virtual string Name [get, set]
 
ResourceNode Parent [get, set]
 
List< ResourceNodeChildren [get]
 
int Index [get]
 
int HexIndex [get]
 
bool IsCompressed [get]
 
bool HasChanged [get, set]
 
bool IsBranch [get]
 
bool HasMerged [get]
 
virtual bool AllowSaving [get, set]
 
virtual bool IsDirty [get, set]
 
virtual uint UncompressedSize [get]
 
virtual Type[] AllowedChildTypes [get]
 
virtual string Compression [get, set]
 
virtual bool RetainChildrenOnReplace [get]
 
virtual bool supportsCompression [get]
 
static MD5CryptoServiceProvider MD5Provider [get]
 
- Properties inherited from BrawlLib.Wii.Animations.IKeyframeSource
int FrameCount [get]
 
KeyframeArray[] KeyArrays [get]
 

Additional Inherited Members

- Static Public Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
static ResourceNode[] FindAllSubNodes (ResourceNode root)
 
static ResourceNode FindNode (ResourceNode root, string path, bool searchChildren, StringComparison compare)
 
- Protected Member Functions inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
void ForceReplacedEvent ()
 
virtual void MergeInternal ()
 
- Events inherited from BrawlLib.SSBB.ResourceNodes.ResourceNode
SelectEventHandler SelectChild
 
EventHandler UpdateProps
 
MoveEventHandler MovedUp
 
ResourceEventHandler Disposing
 
ResourceChildEventHandler ChildAdded
 
ResourceChildInsertEventHandler ChildInserted
 

Constructor & Destructor Documentation

◆ SHP0VertexSetNode()

BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.SHP0VertexSetNode ( string  name)
inline
733 {
734 _name = name;
735 }
string _name
Definition: ResourceNode.cs:139

Member Function Documentation

◆ Export()

override void BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.Export ( string  outPath)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

763 {
764 int length = OnCalculateSize(true);
765 using (FileStream stream = new FileStream(outPath, FileMode.OpenOrCreate, FileAccess.ReadWrite,
766 FileShare.None, 8, FileOptions.RandomAccess))
767 {
768 stream.SetLength(length);
769 using (FileMap map = FileMap.FromStream(stream))
770 {
771 OnRebuild(map.Address, length, true);
772 }
773 }
774 }
Definition: FileMap.cs:10
static FileMap FromStream(FileStream stream)
Definition: FileMap.cs:117
VoidPtr Address
Definition: FileMap.cs:16
override void OnRebuild(VoidPtr address, int length, bool force)
Definition: SHP0Node.cs:748
override int OnCalculateSize(bool force)
Definition: SHP0Node.cs:742

◆ GetKeyframe()

KeyframeEntry BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.GetKeyframe ( int  index)
inline
781 {
782 return Keyframes.GetKeyframe(index);
783 }
KeyframeArray Keyframes
Definition: SHP0Node.cs:715
KeyframeEntry GetKeyframe(int index)
Definition: KeyframeCollection.cs:475

◆ OnCalculateSize()

override int BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.OnCalculateSize ( bool  force)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

743 {
744 _isFixed = Keyframes._keyCount <= 1;
745 return _dataLen = _isFixed ? 0 : Keyframes._keyCount * 12 + 4;
746 }
int _dataLen
Definition: SHP0Node.cs:699
bool _isFixed
Definition: SHP0Node.cs:729

◆ OnInitialize()

override bool BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.OnInitialize ( )
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

738 {
739 return false;
740 }

◆ OnRebuild()

override void BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.OnRebuild ( VoidPtr  address,
int  length,
bool  force 
)
inlinevirtual

Reimplemented from BrawlLib.SSBB.ResourceNodes.ResourceNode.

749 {
750 SHP0KeyframeEntries* header = (SHP0KeyframeEntries*) address;
751 header->_numEntries = (short) Keyframes._keyCount;
752 header->_unk1 = 0;
753
754 BVec3* entry = header->Entries;
755 KeyframeEntry frame, root = Keyframes._keyRoot;
756 for (frame = root._next; frame._index != -1; frame = frame._next)
757 {
758 *entry++ = new Vector3(frame._tangent, frame._index, frame._value);
759 }
760 }
Definition: KeyframeCollection.cs:193
int _index
Definition: KeyframeCollection.cs:194
float _value
Definition: KeyframeCollection.cs:197
float _tangent
Definition: KeyframeCollection.cs:198
KeyframeEntry _next
Definition: KeyframeCollection.cs:195
Definition: BigEndianTypes.cs:366
Definition: Vector3.cs:40

◆ RemoveKeyframe()

void BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.RemoveKeyframe ( int  index)
inline
806 {
807 KeyframeEntry k = Keyframes.Remove(index);
808 if (k != null && _generateTangents)
809 {
813 }
814 }
virtual void SignalPropertyChange()
Definition: ResourceNode.cs:313
static bool _generateTangents
Definition: SHP0Node.cs:778
KeyframeEntry Remove(int index)
Definition: KeyframeCollection.cs:597
KeyframeEntry _prev
Definition: KeyframeCollection.cs:195
float GenerateTangent()
Definition: KeyframeCollection.cs:322

◆ SetKeyframe()

void BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.SetKeyframe ( int  index,
float  value 
)
inline
786 {
787 bool exists = Keyframes.GetKeyframe(index) != null;
788 KeyframeEntry k = Keyframes.SetFrameValue(index, value);
789
790 if (!exists && !_generateTangents)
791 {
792 k.GenerateTangent();
793 }
794
796 {
797 k.GenerateTangent();
800 }
801
803 }
KeyframeEntry SetFrameValue(int index, float value, bool parsing=false)
Definition: KeyframeCollection.cs:556

Member Data Documentation

◆ _dataAddr

VoidPtr BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode._dataAddr

◆ _dataLen

int BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode._dataLen

◆ _fixedValue

float BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode._fixedValue

◆ _generateTangents

bool BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode._generateTangents = true
static

◆ _isFixed

bool BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode._isFixed

Property Documentation

◆ FrameCount

int BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.FrameCount
get

◆ KeyArrays

KeyframeArray [] BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.KeyArrays
get

◆ Keyframes

KeyframeArray BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.Keyframes
get
715 {
716 get
717 {
718 if (_keyframes == null)
719 {
720 _keyframes =
721 AnimationConverter.DecodeSHP0Keyframes(Header,
722 Parent != null ? Parent.Parent as SHP0Node : null);
723 }
724
725 return _keyframes;
726 }
727 }
ResourceNode Parent
Definition: ResourceNode.cs:245

◆ ResourceFileType

override ResourceType BrawlLib.SSBB.ResourceNodes.SHP0VertexSetNode.ResourceFileType
get

The documentation for this class was generated from the following file: