All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.esotericsoftware.spine.SkeletonLoader Maven / Gradle / Ivy

There is a newer version: 4.2.6
Show newest version
/******************************************************************************
 * Spine Runtimes License Agreement
 * Last updated September 24, 2021. Replaces all prior versions.
 *
 * Copyright (c) 2013-2021, Esoteric Software LLC
 *
 * Integration of the Spine Runtimes into software or otherwise creating
 * derivative works of the Spine Runtimes is permitted under the terms and
 * conditions of Section 2 of the Spine Editor License Agreement:
 * http://esotericsoftware.com/spine-editor-license
 *
 * Otherwise, it is permitted to integrate the Spine Runtimes into software
 * or otherwise create derivative works of the Spine Runtimes (collectively,
 * "Products"), provided that each user of the Products must obtain their own
 * Spine Editor license and redistribution of the Products in any form must
 * include this license and copyright notice.
 *
 * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY
 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
 * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY
 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES,
 * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND
 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 *****************************************************************************/

package com.esotericsoftware.spine;

import java.io.InputStream;

import com.badlogic.gdx.files.FileHandle;
import com.badlogic.gdx.graphics.g2d.TextureAtlas;
import com.badlogic.gdx.utils.Array;

import com.esotericsoftware.spine.SkeletonJson.LinkedMesh;
import com.esotericsoftware.spine.attachments.AtlasAttachmentLoader;
import com.esotericsoftware.spine.attachments.AttachmentLoader;

/** Base class for loading skeleton data from a file.
 * 

* See JSON and binary data in the * Spine Runtimes Guide. */ abstract public class SkeletonLoader { final AttachmentLoader attachmentLoader; float scale = 1; final Array linkedMeshes = new Array(); /** Creates a skeleton loader that loads attachments using an {@link AtlasAttachmentLoader} with the specified atlas. */ public SkeletonLoader (TextureAtlas atlas) { attachmentLoader = new AtlasAttachmentLoader(atlas); } /** Creates a skeleton loader that loads attachments using the specified attachment loader. *

* See Loading skeleton data in the * Spine Runtimes Guide. */ public SkeletonLoader (AttachmentLoader attachmentLoader) { if (attachmentLoader == null) throw new IllegalArgumentException("attachmentLoader cannot be null."); this.attachmentLoader = attachmentLoader; } /** Scales bone positions, image sizes, and translations as they are loaded. This allows different size images to be used at * runtime than were used in Spine. *

* See Scaling in the Spine Runtimes Guide. */ public float getScale () { return scale; } public void setScale (float scale) { if (scale == 0) throw new IllegalArgumentException("scale cannot be 0."); this.scale = scale; } abstract public SkeletonData readSkeletonData (FileHandle file); abstract public SkeletonData readSkeletonData (InputStream input); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy