001 package com.croftsoft.core.animation.model.seri;
002
003 import java.io.Serializable;
004
005 import com.croftsoft.core.animation.model.Model;
006 import com.croftsoft.core.animation.model.ModelId;
007 import com.croftsoft.core.lang.NullArgumentException;
008
009 /*********************************************************************
010 * The base abstract class for a game world object Model.
011 *
012 * @version
013 * 2003-06-07
014 * @since
015 * 2003-03-30
016 * @author
017 * <a href="http://www.CroftSoft.com/">David Wallace Croft</a>
018 *********************************************************************/
019
020 public abstract class SeriModel
021 implements Model, Serializable
022 //////////////////////////////////////////////////////////////////////
023 //////////////////////////////////////////////////////////////////////
024 {
025
026 private static final long serialVersionUID = 0L;
027
028 //
029
030 protected final ModelId modelId;
031
032 //////////////////////////////////////////////////////////////////////
033 //////////////////////////////////////////////////////////////////////
034
035 public SeriModel ( ModelId modelId )
036 //////////////////////////////////////////////////////////////////////
037 {
038 NullArgumentException.check ( this.modelId = modelId );
039 }
040
041 //////////////////////////////////////////////////////////////////////
042 //////////////////////////////////////////////////////////////////////
043
044 public ModelId getModelId ( ) { return modelId; }
045
046 //////////////////////////////////////////////////////////////////////
047 // interface Comparable method
048 //////////////////////////////////////////////////////////////////////
049
050 public int compareTo ( Object other )
051 //////////////////////////////////////////////////////////////////////
052 {
053 double otherZ = ( ( Model ) other ).getZ ( );
054
055 double z = getZ ( );
056
057 if ( z < otherZ )
058 {
059 return -1;
060 }
061
062 if ( z > otherZ )
063 {
064 return 1;
065 }
066
067 return 0;
068 }
069
070 //////////////////////////////////////////////////////////////////////
071 //////////////////////////////////////////////////////////////////////
072 }