Changeset 984


Ignore:
Timestamp:
02/19/2011 12:54:32 PM (8 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy/EmpathicActions.java

    r977 r984  
    2121                ArrayList<ActiveEmotion> empathicEmotions = new ArrayList<ActiveEmotion>(); 
    2222                 
    23                 for(ActiveEmotion activeEmotion : emState.getEmotionPool()){ 
     23                for(ActiveEmotion activeEmotion : emState.getEmotionPoolValues()){ 
    2424                        if(activeEmotion.getBaseEmotionClass() instanceof EmpathicEmotion){ 
    2525                                empathicEmotions.add(activeEmotion); 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy/EmpathicEmotion.java

    r977 r984  
    22 
    33import FAtiMA.Core.emotionalState.BaseEmotion; 
     4import FAtiMA.Core.sensorEffector.Event; 
    45 
    56public class EmpathicEmotion extends BaseEmotion { 
     
    78        private static final long serialVersionUID = 1L; 
    89 
    9         public EmpathicEmotion(BaseEmotion em) { 
     10        public EmpathicEmotion(BaseEmotion em,Event originalEvent) { 
    1011                super(em); 
     12                this.SetCause(originalEvent); 
    1113        } 
    1214} 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy/EmpathicEmotionsPanel.java

    r983 r984  
    11package FAtiMA.empathy; 
     2 
     3import java.util.ArrayList; 
    24 
    35import FAtiMA.Core.AgentModel; 
     
    1012 
    1113        @Override 
    12         protected EmotionalState getEmotionalState(AgentModel am){ 
     14        protected synchronized EmotionalState getEmotionalState(AgentModel am){ 
    1315                EmotionalState es = am.getEmotionalState(); 
    14           
     16                 
     17                ArrayList<ActiveEmotion> nonEmpathicEmotions = new ArrayList<ActiveEmotion>();  
     18           
    1519                EmotionalState empathicEmotionalState = es.clone(); 
    16                  
    17                 for(ActiveEmotion aE : empathicEmotionalState.getEmotionPool()){ 
     20                 
     21                for(ActiveEmotion aE : es.getEmotionPoolValues()){ 
    1822                        if(!(aE.getBaseEmotionClass() == EmpathicEmotion.class)){ 
    19                                 empathicEmotionalState.RemoveEmotion(aE); 
     23                                nonEmpathicEmotions.add(aE); 
    2024                        } 
     25                } 
     26                 
     27                for(ActiveEmotion aE : nonEmpathicEmotions){ 
     28                        empathicEmotionalState.RemoveEmotion(aE);        
    2129                } 
    2230                 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy/EmpathyComponent.java

    r983 r984  
    159159                                                BaseEmotion elicitedEmotion = _elicitedEmotions.get(af.getEvent() + empathicTarget); 
    160160                                                if(elicitedEmotion != null){ 
    161                                                         empathicEmotion = new EmpathicEmotion(elicitedEmotion); 
     161                                                        empathicEmotion = new EmpathicEmotion(elicitedEmotion,af.getEvent()); 
    162162                                                        empathicEmotion.increasePotential(empathicEmotion.GetPotential() * ((affectiveLink/10)*2)); 
    163163                                                        potentialEmpathicEmotions.add(empathicEmotion);  
     
    167167                                                BaseEmotion recognizedEmotion = FacialExpressionSimulator.gI().recognizeEmotion(targetFacialExpression,af.getEvent()); 
    168168                                                if(recognizedEmotion != null){ 
    169                                                         empathicEmotion = new EmpathicEmotion(recognizedEmotion); 
     169                                                        empathicEmotion = new EmpathicEmotion(recognizedEmotion,af.getEvent()); 
    170170                                                        empathicEmotion.setPotential(empathicEmotion.GetPotential() * (affectiveLink/10)); 
    171171                                                        potentialEmpathicEmotions.add(empathicEmotion);  
     
    209209         
    210210        private BaseEmotion selfProjectionAppraisal(String empathicTarget, Event e, AgentModel am){ 
    211                 Event selfProjectedEvent = e.ApplyPerspective(empathicTarget); 
     211                Event selfProjectedEvent; 
     212                 
     213                if(e.GetTarget().equalsIgnoreCase(Constants.SELF) || e.GetSubject().equalsIgnoreCase(Constants.SELF)){    
     214                        //special situation where the self is already involved in the event 
     215                        //in order to prevent appraising twice the same event we switch SELF with empathicTarget 
     216                        selfProjectedEvent = new Event(e.GetTarget(),e.GetAction(),e.GetSubject());              
     217                }else{ 
     218                   selfProjectedEvent = e.ApplyPerspective(empathicTarget);                      
     219                } 
     220                 
    212221                EmotionalState eS = am.simulateEmotionalState(selfProjectedEvent, this); 
    213222                if(eS!=null){ 
Note: See TracChangeset for help on using the changeset viewer.