Main Page   Modules   Class Hierarchy   Compound List   File List   Compound Members  

SfLaserScan.h

00001 //
00002 // SfLaserScan.h
00003 //
00004 // laser scan definitions
00005 
00006 //
00007 // Copyright 2002 by benson limketkai
00008 //
00009 // The author hereby grants to SRI permission to use this software.
00010 // The author also grants to SRI permission to distribute this software
00011 // to schools for non-commercial educational use only.
00012 //
00013 // The author hereby grants to other individuals or organizations
00014 // permission to use this software for non-commercial
00015 // educational use only.  This software may not be distributed to others
00016 // except by SRI, under the conditions above.
00017 //
00018 // Other than these cases, no part of this software may be used or
00019 // distributed without written permission of the author.
00020 //
00021 // Neither the author nor SRI make any representations about the 
00022 // suitability of this software for any purpose.  It is provided 
00023 // "as is" without express or implied warranty.
00024 //
00025 // benson limketkai
00026 // Student Associate
00027 // SRI International
00028 // 333 Ravenswood Avenue
00029 // Menlo Park, CA 94025
00030 // E-mail:  bensonl@ai.sri.com
00031 //
00032 
00033 
00034 #ifndef SFLASERSCAN_H
00035 #define SFLASERSCAN_H
00036 
00037 #include "export.h"
00038 
00039 
00040 class SfLaserScan : public SfArtifact
00041 {
00042   public:
00043     SfLaserScan(ArPose p, std::list<ArPose*>* scan, ulong id);
00044     ~SfLaserScan(void);
00045     void draw(SfWin* w);
00046     ulong getId() { return scanId; }
00047 
00048     bool needsUpdating(ArPose newPose);
00049     void updateScan(ArPose newPose);
00050     ArPose getOriginalPoseTaken()
00051         { return originalScanPose; }
00052     
00053     static void DrawLaserScans(bool on);
00054     void print(); // for debugging purposes
00055     bool updated;
00056     
00057   private:
00058     void drawArrow(SfWin* w, double x, double y, double th, double dist=500);
00059     static bool drawLaserScans;
00060     ulong scanId;
00061     ArPose originalScanPose;
00062     ArPose scanPose; // pose at which scan was taken
00063     std::list<ArPose*>* laserScan;
00064 };
00065 
00066 extern SfLaserScan* testScan;
00067 
00068 void recordScan(void);
00069 void removeScan(void);
00070 void updateScan(int x, int y, int th);
00071 
00072 #endif // SFLASERSCAN_H

Generated on Tue Nov 12 17:49:34 2002 for Saphira by doxygen1.2.13.1 written by Dimitri van Heesch, © 1997-2001