interface/object/POIObject.h
changeset 0 c316ab048e9d
equal deleted inserted replaced
-1:000000000000 0:c316ab048e9d
       
     1 /*
       
     2  * Name        : POIObject.h
       
     3  * Description : ECOM interface definition
       
     4  * Project     : This file is part of OpenMAR, an Open Mobile Augmented Reality browser
       
     5  * Website     : http://OpenMAR.org
       
     6  *
       
     7  * Copyright (c) 2010 David Caabeiro
       
     8  *
       
     9  * All rights reserved. This program and the accompanying materials are made available 
       
    10  * under the terms of the Eclipse Public License v1.0 which accompanies this 
       
    11  * distribution, and is available at http://www.eclipse.org/legal/epl-v10.html
       
    12  *
       
    13  */
       
    14 
       
    15 #ifndef POIOBJECT_H_
       
    16 #define POIOBJECT_H_
       
    17 
       
    18 #include "InterfaceUid.hrh"
       
    19 
       
    20 #include <ecom/ecom.h>
       
    21 
       
    22 #include <LbsPosition.h>
       
    23 
       
    24 #include "Vector3d.h"
       
    25 
       
    26 namespace OpenMAR {
       
    27 
       
    28 class CPOIProvider;
       
    29 
       
    30 /**
       
    31  * @brief POI object interface definition
       
    32  * 
       
    33  * 
       
    34  */
       
    35 class CPOIObject : public CBase
       
    36 {
       
    37 public:
       
    38     static CPOIObject* NewL(const TDesC8& aMatch, const CPOIProvider& aProvider);
       
    39     static CPOIObject* NewL(const TUid aImplementationUid, const CPOIProvider& aProvider);
       
    40     ~CPOIObject();
       
    41 
       
    42 protected:
       
    43     CPOIObject(const CPOIProvider& aProvider);
       
    44 
       
    45 public:
       
    46     const TCoordinate& GetCoordinate() const;
       
    47     void SetCoordinate(const TCoordinate& aCoordinate);
       
    48 
       
    49     const Vector3d& GetPosition() const;
       
    50     void SetPosition(const Vector3d& aPosition);
       
    51 
       
    52     TUint32 GetIdentifier() const;
       
    53     void SetIdentifier(TUint32 aIdentifier);
       
    54 
       
    55     const TDesC& GetName() const;
       
    56     void SetNameL(const TDesC& aName);
       
    57 /*
       
    58     const TDesC& GetDescription() const;
       
    59     void SetDescription(const TDesC& aName);
       
    60 
       
    61     TReal32 GetCoverageRadius() const;
       
    62     void SetCoverageRadius(TReal32 aCoverageRadius);
       
    63 */
       
    64     virtual void Render() const = 0;
       
    65 
       
    66 public:
       
    67     static TBool IdentityRelation(const CPOIObject& aLeft, const CPOIObject& aRight);
       
    68 
       
    69 protected:
       
    70     const CPOIProvider& iProvider;
       
    71 
       
    72     TCoordinate iCoordinate;
       
    73     Vector3d iPosition;
       
    74     TUint32 iIdentifier;
       
    75     HBufC* iName;
       
    76 
       
    77 private:
       
    78     TUid iDtor_ID_Key;
       
    79 };
       
    80 
       
    81 #include "POIObject.inl"
       
    82 
       
    83 }
       
    84 
       
    85 #endif  // POIOBJECT_H_