<class-diagram version="1.0.11" icons="true" automaticImage="PNG" always-add-relationships="false" generalizations="true" realizations="true" associations="true" dependencies="false" nesting-relationships="true"> <class id="1" corner="BOTTOM_RIGHT" language="java" name="Ball" project="cs_142_final_project" file="/cs_142_final_project/src/Ball.java" binary="false"> <position height="263" width="220" x="1539" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="2" corner="BOTTOM_RIGHT" language="java" name="PlethoraOfPong" project="cs_142_final_project" file="/cs_142_final_project/src/PlethoraOfPong.java" binary="false"> <position height="382" width="192" x="1582" y="793"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="3" corner="BOTTOM_RIGHT" language="java" name="GoalLine" project="cs_142_final_project" file="/cs_142_final_project/src/GoalLine.java" binary="false"> <position height="331" width="206" x="1799" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="4" corner="BOTTOM_RIGHT" language="java" name="Paddle" project="cs_142_final_project" file="/cs_142_final_project/src/Paddle.java" binary="false"> <position height="314" width="184" x="1315" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="5" corner="BOTTOM_RIGHT" language="java" name="Ball.BallSprite" project="cs_142_final_project" file="/cs_142_final_project/src/Ball.java" binary="false"> <position height="127" width="154" x="1486" y="1586"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="6" corner="BOTTOM_RIGHT" language="java" name="Paddle.PaddleSprite" project="cs_142_final_project" file="/cs_142_final_project/src/Paddle.java" binary="false"> <position height="127" width="160" x="1286" y="1586"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="7" corner="BOTTOM_RIGHT" language="java" name="PlethoraOfPong.GameStartEvent" project="cs_142_final_project" file="/cs_142_final_project/src/PlethoraOfPong.java" binary="false"> <position height="76" width="141" x="2045" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="8" corner="BOTTOM_RIGHT" language="java" name="engine.Engine.UpdateEvent" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Engine.java" binary="false"> <position height="93" width="147" x="1775" y="643"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="9" corner="BOTTOM_RIGHT" language="java" name="engine.Window" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="144" width="228" x="633" y="442"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="10" corner="BOTTOM_RIGHT" language="java" name="engine.Window.WindowPanel" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="110" width="162" x="258" y="643"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="11" corner="BOTTOM_RIGHT" language="java" name="engine.Window.PaintEvent" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="93" width="148" x="903" y="643"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="12" corner="BOTTOM_RIGHT" language="java" name="engine.SoundEngine" project="cs_142_final_project" file="/cs_142_final_project/src/engine/SoundEngine.java" binary="false"> <position height="161" width="183" x="410" y="442"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="13" corner="BOTTOM_RIGHT" language="java" name="engine.Window.Keyboard.KeyTypeEvent" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="76" width="178" x="437" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="14" corner="BOTTOM_RIGHT" language="java" name="engine.GameObject" project="cs_142_final_project" file="/cs_142_final_project/src/engine/GameObject.java" binary="false"> <position height="263" width="222" x="1320" y="793"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="15" corner="BOTTOM_RIGHT" language="java" name="engine.Window.Keyboard.KeyboardEvent" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="93" width="183" x="673" y="793"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="16" corner="BOTTOM_RIGHT" language="java" name="engine.Vector2D" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Vector2D.java" binary="false"> <position height="144" width="143" x="1132" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="17" corner="BOTTOM_RIGHT" language="java" name="engine.Window.Keyboard.KeyReleaseEvent" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="76" width="194" x="877" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="18" corner="BOTTOM_RIGHT" language="java" name="engine.CollisionEngine" project="cs_142_final_project" file="/cs_142_final_project/src/engine/CollisionEngine.java" binary="false"> <position height="161" width="351" x="1112" y="442"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <interface id="19" corner="BOTTOM_RIGHT" language="java" name="engine.Window.KeyEventInterface" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="76" width="133" x="460" y="643"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </interface> <class id="20" corner="BOTTOM_RIGHT" language="java" name="engine.ShapeSprite" project="cs_142_final_project" file="/cs_142_final_project/src/engine/ShapeSprite.java" binary="false"> <position height="110" width="154" x="243" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="21" corner="BOTTOM_RIGHT" language="java" name="engine.Window.Keyboard.KeyPressEvent" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="76" width="182" x="655" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <interface id="22" corner="BOTTOM_RIGHT" language="java" name="engine.Sprite" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Sprite.java" binary="false"> <position height="76" width="154" x="1092" y="1586"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </interface> <class id="23" corner="BOTTOM_RIGHT" language="java" name="engine.Window.Keyboard.KeyboardListener" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="127" width="172" x="337" y="793"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="24" corner="BOTTOM_RIGHT" language="java" name="engine.Window.Keyboard" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Window.java" binary="false"> <position height="110" width="209" x="633" y="643"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="25" corner="BOTTOM_RIGHT" language="java" name="engine.CollisionEngine.CollisionEvent" project="cs_142_final_project" file="/cs_142_final_project/src/engine/CollisionEngine.java" binary="false"> <position height="93" width="190" x="1524" y="643"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="26" corner="BOTTOM_RIGHT" language="java" name="engine.Engine" project="cs_142_final_project" file="/cs_142_final_project/src/engine/Engine.java" binary="false"> <position height="365" width="201" x="1484" y="37"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <class id="27" corner="BOTTOM_RIGHT" language="java" name="engine.events.Event" project="cs_142_final_project" file="/cs_142_final_project/src/engine/events/Event.java" binary="false"> <position height="76" width="89" x="1524" y="442"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <interface id="28" corner="BOTTOM_RIGHT" language="java" name="engine.events.Listener" project="cs_142_final_project" file="/cs_142_final_project/src/engine/events/Listener.java" binary="false"> <position height="76" width="162" x="41" y="1215"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </interface> <class id="29" corner="BOTTOM_RIGHT" language="java" name="engine.events.EventHandler" project="cs_142_final_project" file="/cs_142_final_project/src/engine/events/EventHandler.java" binary="false"> <position height="144" width="363" x="917" y="793"/> <display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </display> </class> <association id="30"> <end type="SOURCE" refId="2" navigable="false"> <attribute id="31" name="paddles"/> <multiplicity id="32" minimum="0" maximum="2147483647"/> </end> <end type="TARGET" refId="4" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <generalization id="33"> <end type="SOURCE" refId="21"/> <end type="TARGET" refId="15"/> </generalization> <nesting id="34"> <end type="SOURCE" refId="18"/> <end type="TARGET" refId="25"/> </nesting> <nesting id="35"> <end type="SOURCE" refId="9"/> <end type="TARGET" refId="19"/> </nesting> <realization id="36"> <end type="SOURCE" refId="20"/> <end type="TARGET" refId="22"/> </realization> <generalization id="37"> <end type="SOURCE" refId="25"/> <end type="TARGET" refId="27"/> </generalization> <generalization id="38"> <end type="SOURCE" refId="1"/> <end type="TARGET" refId="14"/> </generalization> <association id="39"> <end type="SOURCE" refId="10" navigable="false"> <attribute id="40" name="parent"/> <multiplicity id="41" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="9" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="42"> <bendpoint x="642" y="793"/> <end type="SOURCE" refId="24"/> <end type="TARGET" refId="21"/> </nesting> <association id="43"> <bendpoint x="1102" y="643"/> <end type="SOURCE" refId="18" navigable="false"> <attribute id="44" name="eh"/> <multiplicity id="45" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="29" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="46"> <end type="SOURCE" refId="2"/> <end type="TARGET" refId="7"/> </nesting> <generalization id="47"> <end type="SOURCE" refId="5"/> <end type="TARGET" refId="20"/> </generalization> <nesting id="48"> <bendpoint x="544" y="793"/> <end type="SOURCE" refId="24"/> <end type="TARGET" refId="13"/> </nesting> <generalization id="49"> <end type="SOURCE" refId="3"/> <end type="TARGET" refId="14"/> </generalization> <association id="50"> <bendpoint x="872" y="643"/> <end type="SOURCE" refId="9" navigable="false"> <attribute id="51" name="eh"/> <multiplicity id="52" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="29" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <generalization id="53"> <end type="SOURCE" refId="4"/> <end type="TARGET" refId="14"/> </generalization> <generalization id="54"> <end type="SOURCE" refId="6"/> <end type="TARGET" refId="20"/> </generalization> <association id="55"> <end type="SOURCE" refId="26" navigable="false"> <attribute id="56" name="soundEngine"/> <multiplicity id="57" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="12" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="58"> <end type="SOURCE" refId="24"/> <end type="TARGET" refId="23"/> </nesting> <generalization id="59"> <bendpoint x="1952" y="643"/> <bendpoint x="1952" y="442"/> <end type="SOURCE" refId="2"/> <end type="TARGET" refId="26"/> </generalization> <association id="60"> <end type="SOURCE" refId="9" navigable="false"> <attribute id="61" name="mainPanel"/> <multiplicity id="62" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="10" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <generalization id="63"> <bendpoint x="1123" y="643"/> <end type="SOURCE" refId="15"/> <end type="TARGET" refId="27"/> </generalization> <association id="64"> <end type="SOURCE" refId="2" navigable="false"> <attribute id="65" name="goalLines"/> <multiplicity id="66" minimum="0" maximum="2147483647"/> </end> <end type="TARGET" refId="3" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <association id="67"> <end type="SOURCE" refId="14" navigable="false"> <attribute id="68" name="vector"/> <multiplicity id="69" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="16" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <association id="70"> <end type="SOURCE" refId="26" navigable="false"> <attribute id="71" name="window"/> <multiplicity id="72" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="9" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <association id="73"> <bendpoint x="1081" y="442"/> <bendpoint x="1081" y="643"/> <end type="SOURCE" refId="26" navigable="false"> <attribute id="74" name="eh"/> <multiplicity id="75" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="29" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <generalization id="76"> <end type="SOURCE" refId="11"/> <end type="TARGET" refId="27"/> </generalization> <generalization id="77"> <end type="SOURCE" refId="8"/> <end type="TARGET" refId="27"/> </generalization> <association id="78"> <end type="SOURCE" refId="9" navigable="false"> <attribute id="79" name="keyboard"/> <multiplicity id="80" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="24" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="81"> <end type="SOURCE" refId="9"/> <end type="TARGET" refId="24"/> </nesting> <nesting id="82"> <end type="SOURCE" refId="24"/> <end type="TARGET" refId="15"/> </nesting> <nesting id="83"> <bendpoint x="1643" y="442"/> <end type="SOURCE" refId="26"/> <end type="TARGET" refId="8"/> </nesting> <nesting id="84"> <end type="SOURCE" refId="9"/> <end type="TARGET" refId="11"/> </nesting> <generalization id="85"> <end type="SOURCE" refId="13"/> <end type="TARGET" refId="15"/> </generalization> <association id="86"> <end type="SOURCE" refId="25" navigable="false"> <attribute id="87" name="victim"/> <multiplicity id="88" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="14" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <association id="89"> <bendpoint x="1493" y="442"/> <bendpoint x="1493" y="643"/> <end type="SOURCE" refId="26" navigable="false"> <attribute id="90" name="objects"/> <multiplicity id="91" minimum="0" maximum="2147483647"/> </end> <end type="TARGET" refId="14" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <generalization id="92"> <end type="SOURCE" refId="17"/> <end type="TARGET" refId="15"/> </generalization> <association id="93"> <end type="SOURCE" refId="24" navigable="false"> <attribute id="94" name="eh"/> <multiplicity id="95" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="29" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="96"> <end type="SOURCE" refId="4"/> <end type="TARGET" refId="6"/> </nesting> <generalization id="97"> <bendpoint x="1804" y="793"/> <bendpoint x="1744" y="643"/> <end type="SOURCE" refId="7"/> <end type="TARGET" refId="27"/> </generalization> <association id="98"> <bendpoint x="1101" y="1215"/> <end type="SOURCE" refId="14" navigable="false"> <attribute id="99" name="sprite"/> <multiplicity id="100" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="22" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="101"> <end type="SOURCE" refId="1"/> <end type="TARGET" refId="5"/> </nesting> <association id="102"> <end type="SOURCE" refId="2" navigable="false"> <attribute id="103" name="ball"/> <multiplicity id="104" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="1" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="105"> <end type="SOURCE" refId="9"/> <end type="TARGET" refId="10"/> </nesting> <realization id="106"> <end type="SOURCE" refId="23"/> <end type="TARGET" refId="28"/> </realization> <association id="107"> <end type="SOURCE" refId="26" navigable="false"> <attribute id="108" name="collisionEngine"/> <multiplicity id="109" minimum="0" maximum="1"/> </end> <end type="TARGET" refId="18" navigable="true"/> <display labels="true" multiplicity="true"/> </association> <nesting id="110"> <bendpoint x="886" y="793"/> <end type="SOURCE" refId="24"/> <end type="TARGET" refId="17"/> </nesting> <classifier-display autosize="true" stereotype="true" package="true" initial-value="false" signature="true" visibility="true"> <attributes public="true" package="true" protected="true" private="true"/> <operations public="true" package="true" protected="true" private="true"/> </classifier-display> <association-display labels="true" multiplicity="true"/> </class-diagram>