Changeset 983


Ignore:
Timestamp:
02/18/2011 03:55:52 PM (8 years ago)
Author:
joao.dias
Message:
 
Location:
AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy
Files:
3 edited

Legend:

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

    r982 r983  
    1616                 
    1717                for(ActiveEmotion aE : empathicEmotionalState.getEmotionPool()){ 
    18                         if(!(aE.getBaseEmotionClass() instanceof EmpathicEmotion)){ 
     18                        if(!(aE.getBaseEmotionClass() == EmpathicEmotion.class)){ 
    1919                                empathicEmotionalState.RemoveEmotion(aE); 
    2020                        } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy/EmpathyComponent.java

    r982 r983  
    8888        @Override 
    8989        public void appraisal(AgentModel am, Event e, AppraisalFrame af) { 
    90                 ArrayList<String> empathicTargets = determineEmpathicTargets(e); 
     90                ArrayList<String> empathicTargets = determineEmpathicTargets(e,am); 
    9191                BaseEmotion elicitedEmotion; 
    9292                float affectiveLink;  
     
    147147                FacialExpressionType targetFacialExpression; 
    148148                ArrayList<BaseEmotion> potentialEmpathicEmotions = new ArrayList<BaseEmotion>(); 
    149                 ArrayList<String> empathicTargets = determineEmpathicTargets(af.getEvent()); 
     149                ArrayList<String> empathicTargets = determineEmpathicTargets(af.getEvent(),am); 
    150150                 
    151151                for(String empathicTarget : empathicTargets){ 
     
    180180         
    181181         
    182         //TODO: Check if the empathicTargets are agents or not 
    183         private ArrayList<String> determineEmpathicTargets(Event e){ 
     182         
     183        private ArrayList<String> determineEmpathicTargets(Event e, AgentModel am){ 
     184                 
     185                String[] possibleEmpathicTargets = {e.GetSubject(),e.GetTarget()}; 
     186                 
    184187                ArrayList<String> empathicTargets = new ArrayList<String>(); 
    185188                 
    186                 if(!e.GetSubject().equalsIgnoreCase(Constants.SELF)){ 
    187                         empathicTargets.add(e.GetSubject()); 
    188                 } 
    189                  
    190                 if(e.GetTarget() != null && !e.GetTarget().equalsIgnoreCase(Constants.SELF)){ 
    191                         empathicTargets.add(e.GetTarget()); 
    192                 } 
     189                for(String possibleEmpathicTarget : possibleEmpathicTargets){ 
     190                         
     191                        if(possibleEmpathicTarget != null && !possibleEmpathicTarget.equalsIgnoreCase(Constants.SELF)){                  
     192                         
     193                                if(FacialExpressionSimulator.gI().determineTargetFacialExpression(possibleEmpathicTarget, am) != null){ 
     194                                        empathicTargets.add(possibleEmpathicTarget); 
     195                                }else{ 
     196                                        //If it has no facial expression then the agent assumes it's an object 
     197                                }        
     198                        } 
     199                } 
     200         
    193201                return empathicTargets; 
    194202        } 
  • AgentMind/branches/FAtiMA-Modular/FAtiMA.Empathy/src/FAtiMA/empathy/FacialExpressionSimulator.java

    r977 r983  
    3838                     
    3939                //search for the previous facial expression in the KB 
    40                 FacialExpressionType previousFacialExpression = (FacialExpressionType) am.getMemory().getSemanticMemory().AskProperty(Name.ParseName(Constants.SELF + FACIAL_EXP_PROPERTY)); 
     40                String previousFacialExpression = (String) am.getMemory().getSemanticMemory().AskProperty(Name.ParseName(Constants.SELF + FACIAL_EXP_PROPERTY)); 
    4141                 
    4242                if(previousFacialExpression == null){ 
    4343                        //Set the initial FacialExpression 
    44                         am.getMemory().getSemanticMemory().Tell(Name.ParseName(Constants.SELF + FACIAL_EXP_PROPERTY), FacialExpressionType.NEUTRAL); 
    45                         previousFacialExpression = FacialExpressionType.NEUTRAL; 
     44                        am.getMemory().getSemanticMemory().Tell(Name.ParseName(Constants.SELF + FACIAL_EXP_PROPERTY), FacialExpressionType.NEUTRAL.name()); 
     45                        previousFacialExpression = FacialExpressionType.NEUTRAL.name(); 
    4646                } 
    4747                 
     
    7272                } 
    7373                 
    74                 if(newFacialExpression != previousFacialExpression){     
    75                         am.getMemory().getSemanticMemory().Tell(Name.ParseName(Constants.SELF + FACIAL_EXP_PROPERTY), newFacialExpression);                      
     74                if(newFacialExpression != FacialExpressionType.valueOf(previousFacialExpression)){       
     75                        am.getMemory().getSemanticMemory().Tell(Name.ParseName(Constants.SELF + FACIAL_EXP_PROPERTY), newFacialExpression.name());                       
    7676                        return newFacialExpression; 
    7777                }else{ 
     
    110110        public FacialExpressionType determineTargetFacialExpression(String target, AgentModel am){ 
    111111                //search for the previous facial expression in the KB 
    112                 FacialExpressionType targetFacialExpression = (FacialExpressionType)am.getMemory().getSemanticMemory().AskProperty(Name.ParseName(target + FACIAL_EXP_PROPERTY)); 
     112                String targetFacialExpression = (String)am.getMemory().getSemanticMemory().AskProperty(Name.ParseName(target + FACIAL_EXP_PROPERTY)); 
    113113                 
    114114                if(targetFacialExpression == null){ 
    115                         return FacialExpressionType.NEUTRAL; 
     115                        return null; 
    116116                }else{ 
    117                         return targetFacialExpression; 
     117                        return FacialExpressionType.valueOf(targetFacialExpression); 
    118118                } 
    119119                 
Note: See TracChangeset for help on using the changeset viewer.