001         package com.croftsoft.core.animation.model;
002    
003         import java.awt.*;
004         import java.util.*;
005    
006         import com.croftsoft.core.math.geom.PointXY;
007    
008         /*********************************************************************
009         * Provides methods for manipulating the Models in the game.
010         *
011         * @version
012         *   2003-06-05
013         * @since
014         *   2003-04-14
015         * @author
016         *   <a href="https://www.croftsoft.com/">David Wallace Croft</a>
017         *********************************************************************/
018    
019         public interface  World
020           extends WorldAccessor
021         //////////////////////////////////////////////////////////////////////
022         //////////////////////////////////////////////////////////////////////
023         {
024    
025         public void  clear ( );
026    
027         public void  remove ( Model  model );
028    
029         //////////////////////////////////////////////////////////////////////
030         //////////////////////////////////////////////////////////////////////
031    
032         public void  prepare ( );
033    
034         public void  update ( double  timeDelta );
035    
036         //////////////////////////////////////////////////////////////////////
037         //////////////////////////////////////////////////////////////////////
038    
039         /*********************************************************************
040         * Gets an active Model that contains the point.
041         *
042         * @param  classes
043         *
044         *   The returned Model will be an instance of one of the classes.
045         *
046         * @param  model
047         *
048         *   The Model to ignore, usually the one calling this method.
049         *********************************************************************/
050         public Model  getModel (
051           PointXY    pointXY,
052           Class [ ]  classes,
053           Model      model );
054    
055         public Model [ ]  getModels ( );
056    
057         /*********************************************************************
058         * Determines whether an active Impassable overlaps the model shape.
059         *********************************************************************/
060         public boolean  isBlocked ( Model  model );
061    
062         /*********************************************************************
063         * Determines whether an active Impassable overlaps the shape.
064         *
065         * @param  model
066         *
067         *   The model to ignore.
068         *********************************************************************/
069         public boolean  isBlocked (
070           Shape  shape,
071           Model  model );
072    
073         //////////////////////////////////////////////////////////////////////
074         //////////////////////////////////////////////////////////////////////
075         }