
            /**
            IMPORTANT !!!
       
            DO NOT EDIT THIS FILE. IT IS GENERATED FROM approriate xml file in xmlresources/gbinfomessages BY
            THE JavaClassesGenerator.xslt. MODIFY THESE FILES INSTEAD OF THIS ONE.
       
            IMPORTANT END !!!
            */
            package
            cz.cuni.amis.pogamut.ut2004.communication.messages.gbinfomessages;
	    		import java.util.*;    
    import javax.vecmath.*;    
    import cz.cuni.amis.pogamut.base.communication.messages.*;    
    import cz.cuni.amis.pogamut.base.agent.worldview.*;    
    import cz.cuni.amis.pogamut.base.agent.worldview.objects.*;    
    import cz.cuni.amis.pogamut.base.communication.translator.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.translator.itemdescriptor.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.messages.ItemType.Category;    
    import cz.cuni.amis.pogamut.base.exceptions.*;    
    import cz.cuni.amis.pogamut.base3d.worldview.objects.*;    
    import cz.cuni.amis.pogamut.ut2004.communication.messages.*;    
    import cz.cuni.amis.pogamut.ut2004.agent.worldview.objects.*;    
                
            
            /**
              
		Aynchronous message. Response to TRACE command.
	
                          Corresponding GameBots message is 
                          TRC.
                      
             */
            
            public class
            TraceResponse
                    extends GBEvent
                
	            	implements IWorldEvent
                        
            {
            
            
            
    	/** Example how the message looks like - used during parser tests. */
    	public static final String PROTOTYPE = 
    		"TRC {Id text} {From 0,0,0} {To 0,0,0} {Result False} {HitNormal 0,0,0} {HitLocation 0,0,0} {HitID unreal_id} {TraceActors False}";
    
            
            /////// Properties BEGIN
            
        /**
        
			An Id matching the one sent by client. Allows bot to match
			answer with right query.
		 */
        protected
         String Id = 
        	null;
        
        
        /**
        
			An Id matching the one sent by client. Allows bot to match
			answer with right query.
		 */
        public
        String getId() {
            return
         Id;
        }
        

        
        /**
        
			Location from which the ray is emitted.
		 */
        protected
         Location From = 
        	null;
        
        
        /**
        
			Location from which the ray is emitted.
		 */
        public
        Location getFrom() {
            return
         From;
        }
        

        
        /**
        
			Location to which the ray is sent.
		 */
        protected
         Location To = 
        	null;
        
        
        /**
        
			Location to which the ray is sent.
		 */
        public
        Location getTo() {
            return
         To;
        }
        

        
        /**
        
			True if it hit something, false if not.
		 */
        protected
         boolean Result = 
        	false;
        
        
        /**
        
			True if it hit something, false if not.
		 */
        public
        boolean isResult() {
            return
         Result;
        }
        

        
        /**
        
			Normal vector to the trace ray in the point of hit.
		 */
        protected
         Vector3d HitNormal = 
        	null;
        
        
        /**
        
			Normal vector to the trace ray in the point of hit.
		 */
        public
        Vector3d getHitNormal() {
            return
         HitNormal;
        }
        

        
        /**
        Point of the hit. */
        protected
         Vector3d HitLocation = 
        	null;
        
        
        /**
        Point of the hit. */
        public
        Vector3d getHitLocation() {
            return
         HitLocation;
        }
        

        
        /**
        
			Id of the thing we have hit. May be other player or some
			item or level geometry.
		 */
        protected
         UnrealId HitID = 
        	null;
        
        
        /**
        
			Id of the thing we have hit. May be other player or some
			item or level geometry.
		 */
        public
        UnrealId getHitID() {
            return
         HitID;
        }
        

        
        /**
        
			True if we are tracing also actors in the game (players,
			items). False if we are tracing just level geometry.
		 */
        protected
         boolean TraceActors = 
        	false;
        
        
        /**
        
			True if we are tracing also actors in the game (players,
			items). False if we are tracing just level geometry.
		 */
        public
        boolean isTraceActors() {
            return
         TraceActors;
        }
        

        
            /////// Properties END
            
            /////// Extra Java code BEGIN
                        	
            	/////// Additional code from xslt BEGIN            	 
            			
            		
            		
            	/////// Additional code from xslt END            
				                    
	            /////// Extra Java from XML BEGIN
            		
            	/////// Extra Java from XML END
            	    
            /////// Extra Java code END
            
            
            
            /**
              * Cloning constructor.
              */
             public TraceResponse(TraceResponse original) {
                
                     this.Id=original.Id;
                
                     this.From=original.From;
                
                     this.To=original.To;
                
                     this.Result=original.Result;
                
                     this.HitNormal=original.HitNormal;
                
                     this.HitLocation=original.HitLocation;
                
                     this.HitID=original.HitID;
                
                     this.TraceActors=original.TraceActors;
                
             }   
             
             
                 /**
                  * Used by Yylex to create empty message then to fill it's protected fields (Yylex is in the same package).
                  */
	             public TraceResponse() {
	             }
             
                
                 
            public String toString() {
                return
                
                		super.toString() + " | " +
                		
				               "Id = " + 
				               String.valueOf(Id) + " | " +
				            
				               "From = " + 
				               String.valueOf(From) + " | " +
				            
				               "To = " + 
				               String.valueOf(To) + " | " +
				            
				               "Result = " + 
				               String.valueOf(Result) + " | " +
				            
				               "HitNormal = " + 
				               String.valueOf(HitNormal) + " | " +
				            
				               "HitLocation = " + 
				               String.valueOf(HitLocation) + " | " +
				            
				               "HitID = " + 
				               String.valueOf(HitID) + " | " +
				            
				               "TraceActors = " + 
				               String.valueOf(TraceActors) + " | " +
				             "";
                	 
             }
             
             public String toHtmlString() {
                return super.toString() +
             
            "<b>Id</b> : " + 
            String.valueOf(Id) + 
            " <br/> " +
             
            "<b>From</b> : " + 
            String.valueOf(From) + 
            " <br/> " +
             
            "<b>To</b> : " + 
            String.valueOf(To) + 
            " <br/> " +
             
            "<b>Result</b> : " + 
            String.valueOf(Result) + 
            " <br/> " +
             
            "<b>HitNormal</b> : " + 
            String.valueOf(HitNormal) + 
            " <br/> " +
             
            "<b>HitLocation</b> : " + 
            String.valueOf(HitLocation) + 
            " <br/> " +
             
            "<b>HitID</b> : " + 
            String.valueOf(HitID) + 
            " <br/> " +
             
            "<b>TraceActors</b> : " + 
            String.valueOf(TraceActors) + 
            " <br/> " +
             "";
             }            
             
             
             
             }
                         
        