Main Page   Modules   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Cylisphere.hpp

Go to the documentation of this file.
00001 
00002 //
00003 //       Title           : Cylisphere.hpp
00004 //       Project         : OSCAR
00005 //       Created         : Dec 16, 1996
00006 //       Author          : Troy Harden
00007 //      Platforms       : All
00008 //      Copyright       : Copyright© The University of Texas at Austin, 2002. All rights reserved.
00009 //                 
00010 //          This software and documentation constitute an unpublished work
00011 //          and contain valuable trade secrets and proprietary information
00012 //          belonging to the University. None of the foregoing material may be
00013 //          copied or duplicated or disclosed without the express, written
00014 //          permission of University. THE UNIVERSITY EXPRESSLY DISCLAIMS ANY
00015 //          AND ALL WARRANTIES CONCERNING THIS SOFTWARE AND DOCUMENTATION,
00016 //          INCLUDING ANY WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
00017 //          PARTICULAR PURPOSE, AND WARRANTIES OF PERFORMANCE, AND ANY WARRANTY
00018 //          THAT MIGHT OTHERWISE ARISE FROM COURSE OF DEALING OR USAGE OF TRADE.
00019 //          NO WARRANTY IS EITHER EXPRESS OR IMPLIED WITH RESPECT TO THE USE OF
00020 //          THE SOFTWARE OR DOCUMENTATION. Under no circumstances shall the
00021 //          University be liable for incidental, special, indirect, direct or
00022 //          consequential damages or loss of profits, interruption of business,
00023 //          or related expenses which may arise from use of software or documentation,
00024 //          including but not limited to those resulting from defects in software
00025 //          and/or documentation, or loss or inaccuracy of data of any kind.
00026 //       Purpose         : Abstract obstacle .  Defines the obstacle
00027 //                         interface for the various obstacles.
00028 //
00029 //       $Log: Cylisphere.hpp,v $
00030 //       Revision 1.5  2005/06/21 15:31:08  aspencer
00031 //       Re-wrapped the hpp files with _SOLID ifdefs, per chetan.
00032 //
00033 //       Revision 1.4  2005/06/10 17:03:18  josh
00034 //       Added Clone method.
00035 //
00036 //       Revision 1.3  2005/06/07 18:20:46  aspencer
00037 //       Changed how SOLID functionality was implemented so that there are no #ifdef _SOLID tags in the header files which would cause errors when the header file was included in another library.
00038 //
00039 //       Revision 1.2  2005/06/06 23:26:13  aspencer
00040 //       Changed all "SetInfo" functions to be "SetProperties" functions.
00041 //
00042 //       Revision 1.1  2005/06/03 18:15:40  aspencer
00043 //       Removed the "Ob" designation from all primitive names (BoxOb is now Box, etc). Changed "CylOb" to "Cylisphere".
00044 //
00045 //       Revision 1.18  2005/06/01 22:27:29  chetan
00046 //       Made changes to copyright headers
00047 //
00048 //       Revision 1.17  2005/06/01 19:51:05  aspencer
00049 //       Made further changes to commenting.
00050 //
00051 //       Revision 1.16  2005/05/31 19:38:41  aspencer
00052 //       Changes to various function names in the primitive classes (trying to fit the "Get/Set" scheme of the rest of OSCAR). Also moved some code in primitive files from .hpp to .cpp, as it should be.
00053 //
00054 //       Revision 1.15  2005/05/27 15:56:48  aspencer
00055 //       Changed "Reference" enumeration to "ReferenceFrame"
00056 //
00057 //       Revision 1.14  2005/05/26 21:01:53  aspencer
00058 //       Changed "obstacle" to "primitive" in both the obstacle and the skeletalobstacle class. Inserted "modeling object" abstract class, which primitive (was obstacle) now inherits from. Updated the rest of OSCAR to reflect this.
00059 //
00060 //       Revision 1.13  2005/04/28 18:46:26  aspencer
00061 //       Updated commenting for doxygen.
00062 //
00063 //       Revision 1.12  2005/04/28 17:29:27  aspencer
00064 //       Completed changeover to using the Local/Global functionality. If SOLID is being used and an updateinfo type function is called on either local or global points, the SOLID object will be destroyed and recreated accordingly.
00065 //
00066 //       Revision 1.11  2005/04/26 22:18:54  aspencer
00067 //       Added the functionality to have SOLID do any cylisphere-cylisphere calculations
00068 //
00069 //       Revision 1.10  2005/04/21 16:27:54  aspencer
00070 //       Inserted a new "skeletalobstacle" abstract class which inherits from obstacle. Planes, spheres and cylispheres now all inherit from this new class.
00071 //
00072 //       Revision 1.9  2005/03/14 22:06:19  aspencer
00073 //       Added to namespace OSCAR and removed "RR" from front of class names.
00074 //
00075 //       Revision 1.8  2004/10/25 20:06:20  aspencer
00076 //       Corrected commenting error
00077 //
00078 //       Revision 1.7  2004/05/28 19:20:22  eswint
00079 //       - Added the \ingroup Obstacle Avoidance for Doxygen commenting
00080 //
00081 //       Revision 1.6  2004/05/24 21:26:43  eswint
00082 //       - Updated comments
00083 //
00084 //       Revision 1.5  2004/05/20 14:06:45  eswint
00085 //       - Put all files in the OSCAR namespace
00086 //
00087 //       Revision 1.4  2004/05/11 18:56:40  eswint
00088 //       - Using namespace ObstacleAvoidance
00089 //       - Removed "RR" from class names
00090 //
00091 //       Revision 1.3  2004/04/27 21:09:53  eswint
00092 //       - moved point information and methods to Obstacle
00093 //
00094 //       Revision 1.2  2004/04/13 21:29:53  eswint
00095 //       - Added/Corrected commenting
00096 //
00097 //       Revision 1.1  2004/04/13 18:04:53  eswint
00098 //       - Changed file extensions to comply with development guidelines
00099 //
00100 //       Revision 1.6  2004/03/15 20:26:54  chetan
00101 //       Changes to ObAvData.C to support loading of spherical obstacle data
00102 //
00103 //       Revision 1.5  2004/01/28 21:40:44  eswint
00104 //       - moved _init, radius to Obstacle 
00105 //
00106 //       Revision 1.4  2004/01/27 21:49:02  eswint
00107 //       - changed parameters to const and/or RRVector3 where appropriate
00108 //       - replaced RRVector3** with vector<vector<Vector3>>
00109 //
00110 //       Revision 1.3  2004/01/22 17:06:16  eswint
00111 //       - Changed UpdateInfo1 and UpdateInfo2 to UpdatePt
00112 //
00113 //       Revision 1.2  2004/01/22 15:27:39  eswint
00114 //       - Lots o' changes
00115 //
00116 //       Revision 1.1  2003/08/18 18:37:24  eswint
00117 //       Initial Commit
00118 //
00119 //
00121 #ifndef Cylisphere_h
00122 #define Cylisphere_h
00123 
00124 //Includes go here
00125 #include "SkeletalPrimitive.hpp"
00126 
00127 namespace OSCAR { 
00128 
00137 class Cylisphere : public SkeletalPrimitive {
00138 public:
00139 
00145   Cylisphere(const Vector3& pt0, const Vector3& pt1, double rd); //Constructor
00146 
00150   Cylisphere(const Cylisphere& arg);
00151 
00155   Cylisphere();
00156 
00161         virtual Cylisphere* Clone() const;
00162 
00170   bool SetProperties(const Vector3& pt0, const Vector3& pt1, double rd);
00171   
00172   Cylisphere& operator=(const Cylisphere& rhs);
00173 
00174 protected:
00175 #if defined _SOLID
00176   virtual bool createSolid();
00177 #endif
00178 
00179 };
00180 
00181 //Inline include
00182 #include "Cylisphere.ipp"
00183 }  //namespace OSCAR
00184 #endif //Cylisphere_h
RRG Homepage OSCAR Overview OSCAR Tutorials Simulations