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 |