//
//  TnAnnotationDetails.h
//  TnMapKit
//
//  Created by Holzhauer, James on 2/3/14.
//  Copyright (c) 2014 TeleNav. All rights reserved.
//

#import <CoreLocation/CoreLocation.h> //for CLLocation

#import "TMKEngineTypes.h"

#include <RenderEngine/ITnMapEngine.h>

@interface TnAnnotationDetails : NSObject
{
@public
    // The OpenGL Map Engine annotation id
    ITnMapEngine::AnnotationId annotationId;
    
    // The OpenGL Map Engine graphic id
    ITnMapEngine::GraphicId graphicId;
    
    // The OpenGL Map Engine model id
    ITnMapEngine::ModelId modelId;
    
    // The client anno
    TMKAnnotationID* anno;
    
    // The annotation's location
    CLLocation* location;
    // Or screen position if screen based
    CGPoint screenPosition;
    
    // The height of the annotation
    float height;
    
    // The TnMapKit annotation type
    TMKAnnotationType type;
}

// Text to be displayed in a popup.  Only used if not nil
@property (nonatomic, copy)   NSString* popupText;
@property (nonatomic, strong) TMKAnnotationID* anno;
@property (nonatomic, strong) CLLocation* location;

typedef std::map<TMKAnnotationID*,TnAnnotationDetails*> AnnotationMap;
typedef std::map<ITnMapEngine::AnnotationId,TnAnnotationDetails*> AnnotationIdMap;

@end
