rtcFace3D.h
Go to the documentation of this file.
00001 /*
00002  * Copyright (C) 2008
00003  * Robert Bosch LLC
00004  * Research and Technology Center North America
00005  * Palo Alto, California
00006  *
00007  * All rights reserved.
00008  *
00009  *------------------------------------------------------------------------------
00010  * project ....: PUMA: Probablistic Unsupervised Model Acquisition
00011  * file .......: Face3D.h
00012  * authors ....: Zhexi Wang
00013  * organization: Robert Bosch LLC
00014  * creation ...: 03/28/2008
00015  * modified ...: $Date:2008-03-03 10:26:02 -0800 (Mon, 03 Mar 2008) $
00016  * changed by .: $Author:benjaminpitzer $
00017  * revision ...: $Revision:141 $
00018  */
00019 #ifndef FACE3D_H_
00020 #define FACE3D_H_
00021 
00022 //== INCLUDES ==================================================================
00023 #include <rtc/rtcBase.h>
00024 #include <rtc/rtcVec3.h>
00025 
00026 //== NAMESPACES ================================================================
00027 namespace rtc {
00028 
00029 //== FORWARD DECLARATIONS ======================================================
00030 class Mesh3D;
00031 
00032 //== CLASS DEFINITION ==========================================================
00033 class Face3D
00034 {
00035 public:
00036   // standard c'tor and d'tor
00037   Face3D(Mesh3D* mesh, int v0, int v1, int v2);
00038   virtual ~Face3D();
00039   // copy c'tor
00040   Face3D(const Face3D& other);
00041 
00042   // calculate face normal
00043   void update();
00044 
00045   // ASCII stream IO
00046   virtual bool write(OutputHandler &oh) const;
00047   virtual bool read(InputHandler &ih);
00048   void write(FILE *fp) const;
00049   void read(FILE *fp);
00050 
00051   // flags
00052   void setFlag(int flags, bool value);
00053   bool getFlag(int flags) const;
00054   bool boundary() const;
00055   void setBoundary(bool boundary);
00056   bool hidden() const;
00057   void setHidden(bool hidden);
00058 
00059   // internal data
00060   Mesh3D* mesh;
00061   // face vertices
00062   Vec3i v;
00063   // face normal
00064   Vec3f n;
00065   // multi purpose flags
00066   int flags;
00067 };
00068 
00069 //==============================================================================
00070 } // NAMESPACE rtc
00071 //==============================================================================
00072 #endif // FACE3D_H_ defined
00073 //==============================================================================


rtc
Author(s): Benjamin Pitzer
autogenerated on Thu Jan 2 2014 11:04:53