131 lines
3.6 KiB
C
131 lines
3.6 KiB
C
//
|
||
// APFCherryDefine.h
|
||
// APBToygerFacade
|
||
//
|
||
// Created by shouyi.www on 27/02/2017.
|
||
// Copyright © 2017 DTF. All rights reserved.
|
||
//
|
||
|
||
#ifndef APBToygerFacadeDefine_h
|
||
#define APBToygerFacadeDefine_h
|
||
|
||
|
||
static float normalized_distance(float current_value, float best_value, float range) {
|
||
return fabsf((current_value - best_value) / range);
|
||
}
|
||
|
||
//typedef struct toyger_status_evaluator_t {
|
||
// float pitch;
|
||
// float yaw;
|
||
// float width;
|
||
//
|
||
// float best_pitch;
|
||
// float best_yaw;
|
||
// float best_width;
|
||
// float pitch_range;
|
||
// float yaw_range;
|
||
// float width_range;
|
||
// float pitch_weight;
|
||
// float yaw_weight;
|
||
// float width_weight;
|
||
//
|
||
// toyger_status_evaluator_t(float pitch_ = -0.3, float pitch_range_ = 0.7, float best_pitch_ = 0, float pitch_weight_ = 1,
|
||
// float yaw_ = -0.6, float yaw_range_ = 0.6, float best_yaw_ = 0, float yaw_weight_ = 1,
|
||
// float width_ = 0.2, float width_range_ = 1.2, float best_width_ = 0.7, float width_weight_ = 1){
|
||
// pitch = pitch_;
|
||
// yaw = yaw_;
|
||
// width = width_;
|
||
// pitch_range = pitch_range_;
|
||
// yaw_range = yaw_range_;
|
||
// width_range = width_range_;
|
||
// best_pitch = best_pitch_;
|
||
// best_yaw = best_yaw_;
|
||
// best_width = best_width_;
|
||
// pitch_weight = pitch_weight_;
|
||
// yaw_weight = yaw_weight_;
|
||
// width_weight = width_weight_;
|
||
// }
|
||
//
|
||
// void reset(){
|
||
// pitch = -0.3;
|
||
// yaw = -0.6;
|
||
// width = 0.2;
|
||
// }
|
||
//
|
||
// void update(float pitch_, float yaw_, float width_) {
|
||
// pitch = pitch_;
|
||
// yaw = yaw_;
|
||
// width = width_;
|
||
// }
|
||
//
|
||
// float evaluateProgress(float pitch_, float yaw_, float width_){
|
||
// return
|
||
// (normalized_distance(pitch_, best_pitch, pitch_range) * pitch_weight +
|
||
// normalized_distance(yaw_, best_yaw, yaw_range) * yaw_weight +
|
||
// normalized_distance(width_, best_width, width_range) * width_weight) /
|
||
// (pitch_weight + yaw_weight + width_weight);
|
||
// }
|
||
//
|
||
// float evaluate(){
|
||
// return 1 -
|
||
// (normalized_distance(pitch, best_pitch, pitch_range) * pitch_weight +
|
||
// normalized_distance(yaw, best_yaw, yaw_range) * yaw_weight +
|
||
// normalized_distance(width, best_width, width_range) * width_weight) /
|
||
// (pitch_weight + yaw_weight + width_weight);
|
||
// }
|
||
//
|
||
//}ToygerStatusEvaluator;
|
||
|
||
|
||
typedef struct apbtoyger_tip_evaluator_t {
|
||
bool pose_end;
|
||
bool has_face;
|
||
bool did_blink;
|
||
bool pos_okay;
|
||
bool quality_okay;
|
||
bool under_exposure;
|
||
bool face_width_too_small;
|
||
bool face_width_too_big;
|
||
bool integrity_fail;
|
||
bool yaw_fail;
|
||
bool pitch_fail;
|
||
bool tremble_fail;
|
||
bool did_checkSeven;
|
||
int tip_timer_wait_cnt;
|
||
bool tip_show_switch;
|
||
int tip_message;
|
||
|
||
apbtoyger_tip_evaluator_t(){
|
||
reset();
|
||
}
|
||
|
||
void reset(){
|
||
has_face = false;
|
||
did_blink = false;
|
||
pos_okay = false;
|
||
under_exposure = false;
|
||
face_width_too_small = false;
|
||
integrity_fail = false;
|
||
pitch_fail = false;
|
||
face_width_too_big = false;
|
||
yaw_fail = false;
|
||
tremble_fail = false;
|
||
tip_timer_wait_cnt = 0;
|
||
tip_show_switch = true;
|
||
did_checkSeven = false;
|
||
quality_okay = false;
|
||
pose_end = false;
|
||
tip_message =0;
|
||
}
|
||
}APBToygerTipEvaluator;
|
||
|
||
|
||
//UI样式
|
||
typedef enum : NSUInteger {
|
||
APBToygerUIStyleFPPCherry = 991, //991 FPP樱桃(废弃)
|
||
APBToygerUIStyleCherry, //992 zFace樱桃
|
||
APBToygerUIStyleGarfield, //993 加菲
|
||
} APBToygerUIStyle;
|
||
|
||
#endif
|