00001 //## begin module%36FE7C01006E.cm preserve=no 00002 // %X% %Q% %Z% %W% 00003 //## end module%36FE7C01006E.cm 00004 00005 //## begin module%36FE7C01006E.cp preserve=no 00006 //## end module%36FE7C01006E.cp 00007 00008 //## Module: MPK_Sphere%36FE7C01006E; Pseudo Package specification 00009 //## Source file: C:\user\gipson\projects\mpk\code\geometry\MPK_Sphere.h 00010 00011 #ifndef MPK_Sphere_h 00012 #define MPK_Sphere_h 1 00013 00014 //## begin module%36FE7C01006E.additionalIncludes preserve=no 00015 //## end module%36FE7C01006E.additionalIncludes 00016 00017 //## begin module%36FE7C01006E.includes preserve=yes 00018 #include <iostream> 00019 #include "geometry\MPK_Cylinder.h" 00020 using std::ostream ; 00021 //## end module%36FE7C01006E.includes 00022 00023 // Vector4 00024 #include "math\Vector4.h" 00025 // ObjectBase 00026 #include "geometry\ObjectBase.h" 00027 00028 class FrameManager; 00029 class MPK_Cylinder; 00030 00031 //## begin module%36FE7C01006E.additionalDeclarations preserve=yes 00032 //## end module%36FE7C01006E.additionalDeclarations 00033 00034 00035 //## begin MPK_Sphere%36FE7C01006E.preface preserve=yes 00036 //## end MPK_Sphere%36FE7C01006E.preface 00037 00038 //## Class: MPK_Sphere%36FE7C01006E 00039 // this is a sphere object class 00040 //## Category: geometry%36FE7BDE030C 00041 //## Persistence: Transient 00042 //## Cardinality/Multiplicity: n 00043 00044 //## Uses: <unnamed>%37263F5B0280;FrameManager { -> F} 00045 00046 class MPK_Sphere : public ObjectBase //## Inherits: <unnamed>%36FE7C0C02EE 00047 { 00048 //## begin MPK_Sphere%36FE7C01006E.initialDeclarations preserve=yes 00049 //## end MPK_Sphere%36FE7C01006E.initialDeclarations 00050 00051 public: 00052 //## Constructors (specified) 00053 //## Operation: MPK_Sphere%922649214 00054 MPK_Sphere (FrameManager* frameManager); 00055 00056 //## Operation: MPK_Sphere%922649215 00057 MPK_Sphere (const MPK_Sphere& right); 00058 00059 //## Destructor (generated) 00060 virtual ~MPK_Sphere(); 00061 00062 00063 //## Other Operations (specified) 00064 //## Operation: Clone%922649212 00065 virtual Entity* Clone () const; 00066 00067 //## Operation: IsInterfering%925235848 00068 virtual bool IsInterfering (const Entity* entity) const; 00069 00070 //## Operation: IsInterfering%925235850 00071 virtual bool IsInterfering (const MPK_Sphere* entity) const; 00072 00073 //## Operation: SetRadius%925235854 00074 void SetRadius (const double radius); 00075 00076 //## Operation: Position%926709627 00077 Vector4 Position () const; 00078 00079 //## Operation: SetPosition%925235855 00080 void SetPosition (const Vector4& position); 00081 00082 //## Operation: Serialize%934220966 00083 virtual void Serialize (ostream& os) const; 00084 00085 //## Operation: CanCheckInterference%926300302 00086 virtual bool CanCheckInterference (const Entity* entity) const; 00087 00088 //## Operation: Radius%926807002 00089 double Radius () const; 00090 00091 //## Operation: Deserialize%934220967 00092 virtual void Deserialize (IfstreamWithComments& is); 00093 00094 //## Operation: SetFrame%946343614 00095 virtual void SetFrame (const Matrix4x4& frame); 00096 00097 //## Operation: IsInterfering%970176404 00098 virtual bool IsInterfering (const MPK_Cylinder* entity) const; 00099 00100 virtual bool Verify() const; 00101 // Additional Public Declarations 00102 //## begin MPK_Sphere%36FE7C01006E.public preserve=yes 00103 //## end MPK_Sphere%36FE7C01006E.public 00104 00105 protected: 00106 // Data Members for Class Attributes 00107 00108 //## Attribute: radius%36FEED13003C 00109 //## begin MPK_Sphere::radius%36FEED13003C.attr preserve=no protected: double {UA} 00110 double radius; 00111 //## end MPK_Sphere::radius%36FEED13003C.attr 00112 00113 // Data Members for Associations 00114 00115 //## Association: geometry::<unnamed>%36FEECDE0226 00116 //## Role: MPK_Sphere::position%36FEECDF00D3 00117 //## begin MPK_Sphere::position%36FEECDF00D3.role preserve=no protected: Vector4 { -> 1VHAN} 00118 Vector4 position; 00119 //## end MPK_Sphere::position%36FEECDF00D3.role 00120 00121 // Additional Protected Declarations 00122 //## begin MPK_Sphere%36FE7C01006E.protected preserve=yes 00123 //## end MPK_Sphere%36FE7C01006E.protected 00124 00125 private: 00126 // Additional Private Declarations 00127 //## begin MPK_Sphere%36FE7C01006E.private preserve=yes 00128 //## end MPK_Sphere%36FE7C01006E.private 00129 00130 private: //## implementation 00131 // Additional Implementation Declarations 00132 //## begin MPK_Sphere%36FE7C01006E.implementation preserve=yes 00133 //## end MPK_Sphere%36FE7C01006E.implementation 00134 00135 }; 00136 00137 //## begin MPK_Sphere%36FE7C01006E.postscript preserve=yes 00138 //## end MPK_Sphere%36FE7C01006E.postscript 00139 00140 // Class MPK_Sphere 00141 00142 //## begin module%36FE7C01006E.epilog preserve=yes 00143 //## end module%36FE7C01006E.epilog 00144 00145 00146 #endif