// Path: src/main/java/com/github/atomicblom/weirdinggadget/client/opengex/ogex/OgexAnimation.java
// public class OgexAnimation implements Iterable<OgexTrack> {
//     
//     private int clip;    
//     private float begin;
//     private float end;
// 
//     private final ArrayList<OgexTrack> tracks = Lists.newArrayList();
//     
//     public OgexAnimation() {
//     }
//     
//     public void setClip( int i ) {
//         this.clip = i;
//     }
//     
//     public int getClip() {
//         return clip;
//     }
//     
//     public void setBegin( float f ) {
//         this.begin = f;
//     }
//  
//     public float getBegin() {
//         return begin;
//     }   
//        
//     public void setEnd( float f ) {
//         this.end = f;
//     }
//     
//     public float getEnd() {
//         return end;
//     }
// 
//     public Iterator<OgexTrack> iterator() {
//         return tracks.iterator();
//     }
// 
//     public void add(OgexTrack node) {
//         tracks.add(node);
//     }
// 
//     @Override
//     public String toString() {
//         return getClass().getSimpleName() + "[clip=" + clip 
//                 + ", begin=" + getBegin() 
//                 + ", end=" + getEnd()
//                 + ", tracks=" + super.toString()
//                 + "]";
//     }
// }


import com.github.atomicblom.weirdinggadget.client.opengex.ogex.OgexAnimation;
import java.util.Optional;
import net.minecraftforge.common.model.IModelPart;
import net.minecraftforge.common.model.IModelState;
import net.minecraftforge.common.model.TRSRTransformation;
package com.github.atomicblom.weirdinggadget.client.opengex;


public class OpenGEXState implements IModelState
{
// Path: src/main/java/com/github/atomicblom/weirdinggadget/client/opengex/ogex/OgexAnimation.java
// public class OgexAnimation implements Iterable<OgexTrack> {
//     
//     private int clip;    
//     private float begin;
//     private float end;
// 
//     private final ArrayList<OgexTrack> tracks = Lists.newArrayList();
//     
//     public OgexAnimation() {
//     }
//     
//     public void setClip( int i ) {
//         this.clip = i;
//     }
//     
//     public int getClip() {
//         return clip;
//     }
//     
//     public void setBegin( float f ) {
//         this.begin = f;
//     }
//  
//     public float getBegin() {
//         return begin;
//     }   
//        
//     public void setEnd( float f ) {
//         this.end = f;
//     }
//     
//     public float getEnd() {
//         return end;
//     }
// 
//     public Iterator<OgexTrack> iterator() {
//         return tracks.iterator();
//     }
// 
//     public void add(OgexTrack node) {
//         tracks.add(node);
//     }
// 
//     @Override
//     public String toString() {
//         return getClass().getSimpleName() + "[clip=" + clip 
//                 + ", begin=" + getBegin() 
//                 + ", end=" + getEnd()
//                 + ", tracks=" + super.toString()
//                 + "]";
//     }
// }


// Path: src/main/java/com/github/atomicblom/weirdinggadget/client/opengex/OpenGEXState.java
import com.github.atomicblom.weirdinggadget.client.opengex.ogex.OgexAnimation;
import java.util.Optional;
import net.minecraftforge.common.model.IModelPart;
import net.minecraftforge.common.model.IModelState;
import net.minecraftforge.common.model.TRSRTransformation;

package com.github.atomicblom.weirdinggadget.client.opengex;


public class OpenGEXState implements IModelState
{
    private final OgexAnimation animation;