[Orxonox-commit 7157] r11774 - in code/branches/Presentation_HS17_merge: . data/levels data/overlays src/modules/overlays/hud src/modules/questsystem src/orxonox/controllers src/orxonox/graphics src/orxonox/worldentities
landauf at orxonox.net
landauf at orxonox.net
Sun Feb 18 18:42:50 CET 2018
Author: landauf
Date: 2018-02-18 18:42:50 +0100 (Sun, 18 Feb 2018)
New Revision: 11774
Added:
code/branches/Presentation_HS17_merge/data/levels/ArrowLevel.oxw
code/branches/Presentation_HS17_merge/data/overlays/HUDTemplate_test.oxo
code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.cc
code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.h
code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.cc
code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.h
code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.cc
code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.h
code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.cc
code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.h
code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.cc
code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.h
code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.cc
code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.h
Modified:
code/branches/Presentation_HS17_merge/
code/branches/Presentation_HS17_merge/data/levels/emptyLevel.oxw
code/branches/Presentation_HS17_merge/data/levels/tutorial.oxw
code/branches/Presentation_HS17_merge/src/modules/overlays/hud/CMakeLists.txt
code/branches/Presentation_HS17_merge/src/modules/questsystem/Quest.cc
code/branches/Presentation_HS17_merge/src/orxonox/controllers/CMakeLists.txt
code/branches/Presentation_HS17_merge/src/orxonox/graphics/Model.cc
code/branches/Presentation_HS17_merge/src/orxonox/worldentities/CMakeLists.txt
Log:
merged Waypoints_HS17
Index: code/branches/Presentation_HS17_merge
===================================================================
--- code/branches/Presentation_HS17_merge 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge 2018-02-18 17:42:50 UTC (rev 11774)
Property changes on: code/branches/Presentation_HS17_merge
___________________________________________________________________
Modified: svn:mergeinfo
## -18,6 +18,7 ##
/code/branches/SpaceRace_HS16:11214-11357
/code/branches/StoryModeMap_HS16:11221-11358
/code/branches/SuperOrxoBros_FS17:11365-11448
+/code/branches/Waypoints_HS17:11496-11773
/code/branches/ai:6592-7033
/code/branches/ai2:8721-8880
/code/branches/bigships:8137-8588
Copied: code/branches/Presentation_HS17_merge/data/levels/ArrowLevel.oxw (from rev 11773, code/branches/Waypoints_HS17/data/levels/ArrowLevel.oxw)
===================================================================
--- code/branches/Presentation_HS17_merge/data/levels/ArrowLevel.oxw (rev 0)
+++ code/branches/Presentation_HS17_merge/data/levels/ArrowLevel.oxw 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,78 @@
+<LevelInfo
+ name = "ArrowLevel"
+ description = "A level to show the funtionality of the Waypoint Arrow."
+ tags = "test"
+ screenshot = "emptylevel.png"
+/>
+
+<?lua
+ include("stats.oxo")
+ include("HUDTemplates3.oxo")
+ include("templates/lodInformation.oxt")
+ include("templates/HeavyCruiser.oxt")
+?>
+
+<?lua
+ include("templates/spaceshipEscort.oxt")
+ include("templates/endurancetest_template.oxt")
+ include("templates/endurancetest_template.oxt")
+ include("templates/spaceshipPirate.oxt")
+ include("templates/spaceshipAssff.oxt")
+
+
+?>
+
+<Level>
+ <templates>
+ <Template link=lodtemplate_default />
+ </templates>
+ <?lua include("includes/notifications.oxi") ?>
+
+ <NotificationQueueCEGUI
+ name="narrative"
+ targets="simpleNotification"
+ size=3
+ displayTime=3.9
+ position="0.2, 0, 0.1, 0"
+ fontSize="23"
+ fontColor="0.3, 1, 0.2, 0.8"
+ alignment="HorzCentred"
+ displaySize="0.6, 0, 0, 0"
+ />
+
+ <Scene
+ ambientlight = "0.5, 0.5, 0.5"
+ skybox = "Orxonox/Starbox"
+ >
+
+
+ <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
+
+
+
+ <SpawnPoint position="50,0,0" direction="1,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
+
+
+
+
+ <Arrow>
+ <attached>
+ <Model scale="10" mesh="arrow.mesh"/>
+ </attached>
+ </Arrow>
+
+<ArrowController accuracy = 2000>
+ <gpspoints>
+ <Model mesh="cube.mesh" scale=8 position="100,100,100"/>
+ <Model mesh="cube.mesh" scale=8 position="400,200,187"/>
+ <Model mesh="cube.mesh" scale=8 position="-200,-500,615"/>
+ <Model mesh="cube.mesh" scale=8 position="0,0,0"/>
+ </gpspoints>
+ </ArrowController>
+
+
+
+
+ </Scene>
+</Level>
+
Modified: code/branches/Presentation_HS17_merge/data/levels/emptyLevel.oxw
===================================================================
--- code/branches/Presentation_HS17_merge/data/levels/emptyLevel.oxw 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge/data/levels/emptyLevel.oxw 2018-02-18 17:42:50 UTC (rev 11774)
@@ -13,6 +13,11 @@
<?lua
include("templates/spaceshipEscort.oxt")
+ include("templates/endurancetest_template.oxt")
+ include("templates/spaceshipPirate.oxt")
+ include("templates/spaceshipAssff.oxt")
+
+
?>
<Level>
@@ -21,14 +26,31 @@
</templates>
<?lua include("includes/notifications.oxi") ?>
- <Scene
- ambientlight = "0.8, 0.8, 0.8"
- skybox = "Orxonox/Starbox"
+ <NotificationQueueCEGUI
+ name="narrative"
+ targets="simpleNotification"
+ size=3
+ displayTime=3.9
+ position="0.2, 0, 0.1, 0"
+ fontSize="23"
+ fontColor="0.3, 1, 0.2, 0.8"
+ alignment="HorzCentred"
+ displaySize="0.6, 0, 0, 0"
+ />
+
+ <Scene
+ ambientlight = "0.5, 0.5, 0.5"
+ skybox = "Orxonox/Starbox"
>
- <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0"/>
- <SpawnPoint team=0 position="-200,0,0" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipescort />
+
+ <Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
+
+
+ <SpawnPoint position="50,0,0" direction="1,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
+
+
</Scene>
</Level>
Modified: code/branches/Presentation_HS17_merge/data/levels/tutorial.oxw
===================================================================
--- code/branches/Presentation_HS17_merge/data/levels/tutorial.oxw 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge/data/levels/tutorial.oxw 2018-02-18 17:42:50 UTC (rev 11774)
@@ -1,9 +1,8 @@
<LevelInfo
name = "Coding Tutorial"
description = "Level for the coding tutorial."
- tags = "tutorial, shipselection"
+ tags = "tutorial"
screenshot = "codingtutorial.png"
- startingships = "spaceshipassff, spaceshipghost, spaceshipspacecruiser"
/>
<?lua
@@ -10,8 +9,6 @@
include("HUDTemplates3.oxo")
include("stats.oxo")
include("templates/spaceshipAssff.oxt")
- include("templates/spaceshipGhost.oxt")
- include("templates/spaceshipSpacecruiser.oxt")
include("templates/lodInformation.oxt")
?>
@@ -23,89 +20,34 @@
<Scene
ambientlight = "0.5, 0.5, 0.5"
- skybox = "Orxonox/skyBoxBasic"
+ skybox = "Orxonox/Starbox"
>
-<Drone name="meineDrohne" primarythrust="80" auxilarythrust="10" rotationthrust="10" mass= "50" linearDamping = "0.9" angularDamping = "0.7">
- <attached>
- <Model scale="1" mesh="drone.mesh"/>
- </attached>
- <collisionShapes>
- <BoxCollisionShape position="0,0,0" halfExtents="10, 10, 10" />
- </collisionShapes>
-</Drone>
- <Drone name="meineDrohne" primarythrust="80" auxilarythrust="10" rotationthrust="10" mass= "50" linearDamping = "0.9" angularDamping = "0.7">
- <attached>
- <Model scale="1" mesh="rocket.mesh"/>
- </attached>
- <collisionShapes>
- <BoxCollisionShape position="0,0,0" halfExtents="10, 10, 10" />
- </collisionShapes>
- </Drone>
<Light type=directional position="0,0,0" direction="0.253, 0.593, -0.765" diffuse="1.0, 0.9, 0.9, 1.0" specular="1.0, 0.9, 0.9, 1.0" />
- <Model mesh="hs-w01.mesh" scale=10 position="0,0,-100" />
- <Model mesh="hs-w01s.mesh" scale=10 position="0,0,-100" />
<?lua
for i = 1, 10, 1 do
?>
- <SpawnPoint position="<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>" lookat="0,0,0" spawnclass=SpaceShip pawndesign=shipselection />
+ <SpawnPoint position="<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>,<?lua print(math.random() * 1000 - 500) ?>" lookat="0,0,0" spawnclass=SpaceShip pawndesign=spaceshipassff />
<?lua end ?>
- <GlobalShader compositor="Bloom" visible=false>
- <events>
- <visibility>
- <DistanceTrigger position="0,0,0" distance=30 target="Spectator" switch=true />
- </visibility>
- </events>
- </GlobalShader>
- <Model position="0,0,0" scale=8 mesh="ast1.mesh" />
- <StaticEntity position="0,0,0" collisionType=static>
+
+ <AutonomousDroneController>
+ </AutonomousDroneController>
+
+ <AutonomousDrone mass=50 linearDamping=0.9 angularDamping=0.7>
+ <attached>
+ <Model scale="10" mesh="drone.mesh"/>
+ </attached>
+
<collisionShapes>
- <SphereCollisionShape radius="20" />
+ <BoxCollisionShape position="0,0,0" halfExtents="10, 10, 10" />
</collisionShapes>
- </StaticEntity>
+ </AutonomousDrone>
-<!--
- <?lua
- for i = 1, 70, 1 do
- ?>
- <MovableEntity position="<?lua print(math.random() * 6000 - 3000)?>, <?lua print(math.random() * 6000 - 3000) ?>, <?lua print(math.random() * 1000 + 3000) ?>" rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>">
- <attached>
- <Model scale="<?lua print(math.random() * 30 + 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false />
- </attached>
- </MovableEntity>
- <MovableEntity position="<?lua print(math.random() * 6000 - 3000)?>, <?lua print(math.random() * 6000 - 3000) ?>, <?lua print(math.random() * -1000 - 3000) ?>" rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>">
- <attached>
- <Model scale="<?lua print(math.random() * 30 + 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false />
- </attached>
- </MovableEntity>
- <MovableEntity position="<?lua print(math.random() * 6000 - 3000)?>, <?lua print(math.random() * 1000 + 3000) ?>, <?lua print(math.random() * 6000 - 3000) ?>" rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>">
- <attached>
- <Model scale="<?lua print(math.random() * 30 + 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false />
- </attached>
- </MovableEntity>
- <MovableEntity position="<?lua print(math.random() * 6000 - 3000)?>, <?lua print(math.random() * -1000 - 3000) ?>, <?lua print(math.random() * 6000 - 3000) ?>" rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>">
- <attached>
- <Model scale="<?lua print(math.random() * 30 + 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false />
- </attached>
- </MovableEntity>
- <MovableEntity position="<?lua print(math.random() * 1000 + 3000)?>, <?lua print(math.random() * 6000 - 3000) ?>, <?lua print(math.random() * 6000 - 3000) ?>" rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>">
- <attached>
- <Model scale="<?lua print(math.random() * 30 + 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false />
- </attached>
- </MovableEntity>
- <MovableEntity position="<?lua print(math.random() * -1000 - 3000)?>, <?lua print(math.random() * 6000 - 3000) ?>, <?lua print(math.random() * 6000 - 3000) ?>" rotationaxis="<?lua print(math.random()) ?>, <?lua print(math.random()) ?>, <?lua print(math.random()) ?>" rotationrate="<?lua print(math.random() * 30 + 5) ?>">
- <attached>
- <Model scale="<?lua print(math.random() * 30 + 10) ?>" mesh="ast<?lua print( math.mod(i,6) + 1) ?>.mesh" shadow=false />
- </attached>
- </MovableEntity>
- <?lua end ?>
--->
-
</Scene>
</Level>
Copied: code/branches/Presentation_HS17_merge/data/overlays/HUDTemplate_test.oxo (from rev 11773, code/branches/Waypoints_HS17/data/overlays/HUDTemplate_test.oxo)
===================================================================
--- code/branches/Presentation_HS17_merge/data/overlays/HUDTemplate_test.oxo (rev 0)
+++ code/branches/Presentation_HS17_merge/data/overlays/HUDTemplate_test.oxo 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,226 @@
+<!--
+<Template name="defaultHUD">
+ <OverlayGroup name = "defaultHUD" scale = "1, 1">
+ <ChatOverlay
+ name = "chat"
+ position = "0.03, 0.5"
+ font = "VeraMono"
+ caption = ""
+ textsize = 0.025
+ />
+
+ <GametypeStatus
+ name = "state"
+ position = "0.5, 0.85"
+ font = "VeraMono"
+ textsize = 0.05
+ colour = "1.0, 1.0, 0.0, 0.8"
+ align = "center"
+ />
+ </OverlayGroup>
+</Template>
+-->
+
+<Template name="spectatorhud">
+ <OverlayGroup name = "spectatorhud" scale = "1, 1">
+ </OverlayGroup>
+</Template>
+
+<Template name="rockethud">
+ <OverlayGroup name = "rockethud" scale = "1, 1">
+ <HUDRocketFuelBar
+ name = "RocketFuelBar1"
+ background = "Orxonox/BarBackground"
+ size = "0.40, 0.04"
+ position = "0.0 , 1.0 "
+ pickpoint = "0, 1"
+ correctaspect = true
+ iconmaterial = "Orxonox/BarIconFuel"
+ >
+ <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+ <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+ <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+ </HUDRocketFuelBar>
+ </OverlayGroup>
+</Template>
+
+<Template name="spaceshiphud">
+ <OverlayGroup name = "spaceshiphud" scale = "1, 1">
+ <Map />
+
+ <HUDHealthBar
+ name = "HealthBar1"
+ background = "Orxonox/HealthBarBackground"
+ size = "0.40, 0.08"
+ position = "0.0 , 0.85 "
+ pickpoint = "0, 1"
+ bartexture = "healthbar_bar.png"
+ textfont = "VeraMono"
+ textusebarcolour = true
+ textscale = 0.4
+ textoffset = "0.325, -0.825"
+ textpickpoint = "0, 0"
+ textalign = "right"
+ correctaspect = true
+ iconmaterial = "Orxonox/BarIconHealth"
+ >
+ <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+ <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+ <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+ </HUDHealthBar>
+
+ <HUDShieldBar
+ name = "ShieldBar1"
+ background = "Orxonox/BarBackground"
+ size = "0.40, 0.04"
+ position = "0.0 , 0.9 "
+ pickpoint = "0, 1"
+ correctaspect = true
+ iconmaterial = "Orxonox/BarIconShield"
+ >
+ <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+ <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+ <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+ </HUDShieldBar>
+
+ <HUDSpeedBar
+ name = "SpeedBar1"
+ background = "Orxonox/BarBackground"
+ size = "0.40, 0.04"
+ position = "0.0 , 0.95 "
+ pickpoint = "0, 1"
+ correctaspect = true
+ iconmaterial = "Orxonox/BarIconSpeed"
+ >
+ <BarColour position = 0.0 colour = "0.7,0.5,0.2" />
+ <BarColour position = 0.5 colour = "0.2,0.7,0.2" />
+ <BarColour position = 1.0 colour = "0.7,0.2,0.2" />
+ </HUDSpeedBar>
+
+ <HUDBoostBar
+ name = "BoostBar1"
+ background = "Orxonox/BarBackground"
+ size = "0.40, 0.04"
+ position = "0.0 , 1.0 "
+ pickpoint = "0, 1"
+ correctaspect = true
+ iconmaterial = "Orxonox/BarIconBoost"
+ >
+ <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+ <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+ <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+ </HUDBoostBar>
+
+ <HUDEnemyHealthBar
+ name = "EnemyHealthBar"
+ background = "Orxonox/HealthBarBackground"
+ size = "0.4, 0.08"
+ position = "1 ,0"
+ pickpoint = "1, 0"
+ bartexture = "healthbar_bar.png"
+ textfont = "VeraMono"
+ textusebarcolour = true
+ textscale = 0.4
+ textoffset = "-0.675, 0.175"
+ textpickpoint = "0, 0"
+ textalign = "right"
+ correctaspect = true
+ iconmaterial = "Orxonox/BarIconHealth"
+ >
+ <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+ <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+ <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+ </HUDEnemyHealthBar>
+
+ <HUDEnemyShieldBar
+ name = "EnemyShieldBar1"
+ background = "Orxonox/BarBackground"
+ size = "0.40, 0.04"
+ position = "1.0 , 0.1 "
+ pickpoint = "1, 0"
+ correctaspect = true
+ iconmaterial = "Orxonox/BarIconShield"
+ >
+ <BarColour position = 0.0 colour = "0.7,0.2,0.2" />
+ <BarColour position = 0.5 colour = "0.7,0.7,0.2" />
+ <BarColour position = 1.0 colour = "0.2,0.7,0.2" />
+ </HUDEnemyShieldBar>
+
+ <HUDNavigation
+ name = "Navigation"
+ correctaspect = true
+ font = "Monofur"
+ textsize = 0.02
+ navMarkerSize = 0.03
+ aimMarkerSize = 0.02
+ />
+
+ <HUDRadar
+ name = "Radar"
+ background = "Orxonox/Radar3D"
+ material2D = "Orxonox/Radar"
+ material3DMiddle = "Orxonox/Radar3D"
+ material3DFront = "Orxonox/Radar3DFront"
+ material3DBack = "Orxonox/Radar3DBack"
+ correctaspect = true
+ size = "0.17, 0.17"
+ position = "1.0, 1.0"
+ pickpoint = "1.0, 1.0"
+ rotation = 0
+ sensitivity = 1.0
+ halfDotSizeDistance = 3000
+ detectionLimit = 10000.0
+ maximumDotSize = 0.1
+ maximumDotSize3D = 0.06
+ mapAngle3D = 0.6435011
+ />
+
+ <HUDWeaponSystem
+ name = "WeaponSystem"
+ correctaspect = true
+ position = "0.01, 0.01"
+ pickpoint = "0, 0"
+ visible = "true"
+ weaponModeHUDSize = "0.09, 0.03"
+ />
+
+ <HUDPickupSystem
+ name = "PickupSystem"
+ correctaspect = true
+ position = "0.32, 0.81"
+ pickpoint = "0.0, 0.0"
+ visible = "false"
+ />
+
+ <HUDWaypoints
+ name = "Waypoints"
+ correctaspect = true
+ position = "0.32, 0.81"
+ pickpoint = "0.0, 0.0"
+ visible = "true"
+ />
+
+
+ <HUDTimer
+ name = "Timer"
+ position = "0.5, 0.25"
+ font = "VeraMono"
+ textsize = 0.1
+ colour = "1.0, 1.0, 0.0, 0.8"
+ align = "center"
+ />
+
+ <GUIOverlay
+ name = "QuestGUI"
+ guiname = "QuestGUI"
+ visible = "false"
+ />
+
+ <GUIOverlay
+ name = "PickupInventory"
+ guiname = "PickupInventory"
+ visible = "false"
+ />
+
+ </OverlayGroup>
+</Template>
Modified: code/branches/Presentation_HS17_merge/src/modules/overlays/hud/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/overlays/hud/CMakeLists.txt 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge/src/modules/overlays/hud/CMakeLists.txt 2018-02-18 17:42:50 UTC (rev 11774)
@@ -10,6 +10,7 @@
HUDTimer.cc
HUDEnemyHealthBar.cc
HUDEnemyShieldBar.cc
+ HUDWaypoints.cc
HUDWeaponMode.cc
HUDWeapon.cc
HUDWeaponSystem.cc
Copied: code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.cc (from rev 11773, code/branches/Waypoints_HS17/src/modules/overlays/hud/HUDWaypoints.cc)
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.cc (rev 0)
+++ code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,42 @@
+
+
+
+
+#include <vector>
+#include <string>
+
+#include "HUDWaypoints.h"
+#include "core/CoreIncludes.h"
+#include "core/XMLPort.h"
+#include "util/Convert.h"
+#include "core/class/Super.h"
+#include "pickup/Pickup.h"
+#include "HUDPickupItem.h"
+#include "pickup/PickupManager.h"
+
+namespace orxonox
+{
+ RegisterClass(HUDWaypoints);
+
+ HUDWaypoints::HUDWaypoints(Context* context) : OrxonoxOverlay(context)
+ {
+ RegisterObject(HUDWaypoints);
+
+ overlayElement_ = static_cast<Ogre::PanelOverlayElement* >(Ogre::OverlayManager::getSingleton().createOverlayElement("Panel", "HUDWaypoints" + getUniqueNumberString()));
+ overlayElement_->setMaterialName("PickupBar");
+ overlayElement_->setPosition(0.0f,0.0f);
+ overlayElement_->setDimensions(0.35f,0.075f);
+ this->background_->addChild(overlayElement_);
+ }
+
+
+ HUDWaypoints::~HUDWaypoints()
+ {
+ /* if (this->isInitialized())
+ {
+ this->picks.clear();
+ }*/
+ }
+
+
+}
\ No newline at end of file
Copied: code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.h (from rev 11773, code/branches/Waypoints_HS17/src/modules/overlays/hud/HUDWaypoints.h)
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.h (rev 0)
+++ code/branches/Presentation_HS17_merge/src/modules/overlays/hud/HUDWaypoints.h 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,69 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Patrick Wintermeyer
+ * Co-authors:
+ * ...
+ *
+ */
+
+
+#ifndef _HUDWaypoints_H__
+#define _HUDWaypoints_H__
+
+#include "overlays/OverlaysPrereqs.h"
+
+#include <map>
+#include <vector>
+#include <string>
+
+
+#include <OgreOverlayManager.h>
+#include <OgrePanelOverlayElement.h>
+
+#include "overlays/OrxonoxOverlay.h"
+#include "worldentities/pawns/Pawn.h"
+#include "overlays/OverlayGroup.h"
+#include "pickup/Pickup.h"
+#include "pickup/PickupRepresentation.h"
+#include "HUDPickupItem.h"
+
+namespace orxonox
+{
+ class _OverlaysExport HUDWaypoints : public OrxonoxOverlay
+ {
+ public:
+ HUDWaypoints(Context* context);
+ virtual ~HUDWaypoints();
+
+ bool repaint=false; //if we shouldnt repaint, set this to false
+
+ private:
+
+ Ogre::PanelOverlayElement* overlayElement_;
+ WeakPtr<Pawn> owner_;
+
+ std::vector<PickupRepresentation> pickupRepresentations_;
+ };
+}
+
+#endif
\ No newline at end of file
Modified: code/branches/Presentation_HS17_merge/src/modules/questsystem/Quest.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/modules/questsystem/Quest.cc 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge/src/modules/questsystem/Quest.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -79,10 +79,21 @@
XMLPortObject(Quest, QuestHint, "hints", addHint, getHint, xmlelement, mode);
XMLPortObject(Quest, QuestEffect, "fail-effects", addFailEffect, getFailEffect, xmlelement, mode);
XMLPortObject(Quest, QuestEffect, "complete-effects", addCompleteEffect, getCompleteEffect, xmlelement, mode);
+ //XMLPortObject(Quest, Worldentity, "arrowtarget", addArrowTarget, getArrowTarget, xmlelement, mode);
QuestManager::getInstance().registerQuest(this); // Registers the Quest with the QuestManager.
}
+
+ /*bool Quest::addArrowTarget(Quest* quest){
+
+ assert(quest);
+
+
+ }*/
+
+
+
/**
@brief
Sets the parent-quest of the Quest.
Copied: code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.cc (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/controllers/ArrowController.cc)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.cc (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,156 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#include "ArrowController.h"
+#include "HumanController.h"
+#include "worldentities/WorldEntity.h"
+
+#include "worldentities/Arrow.h"
+#include "util/Math.h"
+
+namespace orxonox
+{
+
+ RegisterClass(ArrowController);
+
+
+
+ /**
+ @brief
+ Constructor.
+ */
+ ArrowController::ArrowController(Context* context) : Controller(context)
+ {
+
+ RegisterObject(ArrowController);
+
+ this->currentGPSPoint_ = 0;
+ this->accuracy_ = 1000.0f;
+
+ arrow = nullptr;
+
+ for(Arrow* a: ObjectList<Arrow>())
+ arrow = a;
+
+ assert(arrow != nullptr);
+ this->setControllableEntity(arrow);
+
+ orxout() << "constructor aufgerufen" << endl;
+ }
+
+ //Set the distance you need to reach before the next waypoint will be selected
+ void ArrowController::setAccuracy(float accuracy){
+ this->accuracy_ = accuracy;
+ }
+
+ float ArrowController::getAccuracy(){
+ return this->accuracy_;
+ };
+
+ void ArrowController::addGPSPoint(WorldEntity* gpspoint)
+ {
+ this->gpspoints_.push_back(gpspoint);
+ }
+
+ WorldEntity* ArrowController::getGPSPoint(unsigned int index) const
+ {
+ if (index < this->gpspoints_.size())
+ return this->gpspoints_[index];
+ else
+ return nullptr;
+ }
+ /**
+ @brief
+ Destructor.
+ */
+
+ ArrowController::~ArrowController()
+ {
+ for (WorldEntity* gpspoint : this->gpspoints_)
+ {
+ if(gpspoint)
+ gpspoint->destroy();
+ }
+
+ }
+
+
+ void ArrowController::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ SUPER(ArrowController, XMLPort, xmlelement, mode);
+
+ XMLPortObject(ArrowController, WorldEntity, "gpspoints", addGPSPoint, getGPSPoint, xmlelement, mode);
+ XMLPortParam(ArrowController, "accuracy", setAccuracy, getAccuracy, xmlelement, mode);
+ }
+
+ void ArrowController::tick(float dt)
+ {
+ if (!this->isActive())
+ return;
+
+ if (this->gpspoints_.size() == 0 || !this->getControllableEntity())
+ return;
+ //Set all waypoint to invisible at the beginning
+ if (this->currentGPSPoint_ == 0){
+ for(unsigned int i = 0; i < this->gpspoints_.size(); i++ )
+ this->gpspoints_[i]->setVisible(false);
+ }
+ //Make the arrow inivisible as soon as you reached the last Waypoint, otherwise make the next waypoint visible
+ if(currentGPSPoint_ >= gpspoints_.size()){
+ this->getControllableEntity()->setVisible(false);
+ return;
+ }
+ else this->gpspoints_[this->currentGPSPoint_]->setVisible(true);
+
+ //Set the next waypoint as target as soon as you reached the previous one
+ if (this->gpspoints_[this->currentGPSPoint_]->getWorldPosition().squaredDistance(this->getControllableEntity()->getPosition()) <= this->accuracy_){
+ this->gpspoints_[this->currentGPSPoint_]->setVisible(false);
+ this->currentGPSPoint_ = (this->currentGPSPoint_ + 1);
+ return;
+ }
+
+ Vector3 target = gpspoints_[currentGPSPoint_]->getWorldPosition();
+ WorldEntity::TransformSpace trans = WorldEntity::TransformSpace::World;
+
+ //Get the position and orientation of the Spaceship
+ Vector3 spaceShipPosition = HumanController::getLocalControllerSingleton()->getControllableEntity()->getWorldPosition();
+ Quaternion spaceShipOrientation = HumanController::getLocalControllerSingleton()->getControllableEntity()->getOrientation();
+
+ //Calculate the new arrow position
+ Vector3 ss_y = spaceShipOrientation.yAxis();
+ spaceShipPosition.x += 20 * ss_y.x;
+ spaceShipPosition.y += 20 * ss_y.y;
+ spaceShipPosition.z += 20 * ss_y.z;
+
+ //Update Arrow position and orientation
+ this->getControllableEntity()->setPosition(spaceShipPosition);
+ this->getControllableEntity()->lookAt(target, trans, Vector3(0,0,1));
+
+
+ }
+}
Copied: code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.h (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/controllers/ArrowController.h)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.h (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/controllers/ArrowController.h 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,73 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#ifndef _ArrowController_H__
+#define _ArrowController_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "Controller.h"
+#include "tools/interfaces/Tickable.h"
+#include "worldentities/Arrow.h"
+
+namespace orxonox
+{
+ /**
+ @brief
+ Controller for the Arrow of the PPS tutorial.
+ @author
+ Oli Scheuss
+ */
+ class _OrxonoxExport ArrowController : public Controller, public Tickable
+ {
+ public:
+ ArrowController(Context* context);
+ virtual ~ArrowController();
+
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode) override;
+
+ void addGPSPoint(WorldEntity* gpspoint);
+ WorldEntity* getGPSPoint(unsigned int index) const;
+ void setAccuracy(float accuracy);
+ float getAccuracy();
+
+ virtual void tick(float dt); //!< The controlling happens here. This method defines what the controller has to do each tick.
+
+ protected:
+
+ std::vector<WeakPtr<WorldEntity>> gpspoints_;
+ size_t currentGPSPoint_;
+ float accuracy_;
+ WorldEntity* defaultGPSpoint_;
+
+ private:
+ Arrow *arrow;
+ };
+}
+
+#endif /* _ArrowController_H__ */
Copied: code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.cc (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/controllers/AutonomousDroneController.cc)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.cc (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,111 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#include "AutonomousDroneController.h"
+
+#include "worldentities/AutonomousDrone.h"
+#include "util/Math.h"
+
+namespace orxonox
+{
+ //TODO: Put your code in here:
+ // Create the factory for the drone controller.
+ RegisterClass(AutonomousDroneController);
+
+
+ /**
+ @brief
+ Constructor.
+ @param context
+ The context of this object.
+ */
+ AutonomousDroneController::AutonomousDroneController(Context* context) : Controller(context)
+ {
+ //TODO: Place your code here:
+ RegisterObject(AutonomousDroneController);
+
+
+ // Make sure to register the object and create the factory.
+
+ // This checks that our context really is a drone
+ // and saves the pointer to the drone for the controlling commands
+ /* NOTE from Sandro: This is currently broken */
+ //AutonomousDrone* drone = dynamic_cast<AutonomousDrone*>(context);
+ //assert(drone != nullptr);
+ //this->setControllableEntity(drone);
+ }
+
+ /**
+ @brief
+ Destructor.
+ */
+ AutonomousDroneController::~AutonomousDroneController()
+ {
+
+ }
+
+ /**
+ @brief
+ The controlling happens here. This method defines what the controller has to do each tick.
+ @param dt
+ The duration of the tick.
+ */
+ void AutonomousDroneController::tick(float dt)
+ {
+ /* NOTE: Ugly hack by Sandro to make the tutorial work for the moment.
+ * This will be reverted once the framework update is complete
+ */
+ //AutonomousDrone *myDrone = static_cast<AutonomousDrone*>(this->getControllableEntity());
+ ObjectList<AutonomousDrone> objectList;
+ ObjectList<AutonomousDrone>::iterator it = objectList.begin();
+ AutonomousDrone* myDrone = *it;
+
+ if (myDrone != nullptr)
+ {
+
+
+ //myDrone -> moveFrontBack(50*dt);
+ myDrone -> rotateRoll(2*dt);
+
+ myDrone -> rotateYaw(2*dt);
+
+
+ //TODO: Place your code here:
+ // Steering commands
+ // You can use the commands provided by the AutonomousDrone to steer it:
+ // - moveFrontBack, moveRightLeft, moveUpDown
+ // - rotatePitch, rotateYaw, rotateRoll
+ // You will see, that the AutonomousDrone has two variants for each of these commands, one with a vector as input and one with just a float. Use the one with just the float as input.
+ // Apply them to myDrone (e.g. myDrone->rotateYaw(..) )
+ // dt is the time passed since the last call of the tick function in seconds.
+
+
+
+ }
+ }
+}
Copied: code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.h (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/controllers/AutonomousDroneController.h)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.h (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/controllers/AutonomousDroneController.h 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,59 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#ifndef _AutonomousDroneController_H__
+#define _AutonomousDroneController_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "Controller.h"
+#include "tools/interfaces/Tickable.h"
+
+namespace orxonox
+{
+ /**
+ @brief
+ Controller for the AutonomousDrone of the PPS tutorial.
+ @author
+ Oli Scheuss
+ */
+ class _OrxonoxExport AutonomousDroneController : public Controller, public Tickable
+ {
+ public:
+ AutonomousDroneController(Context* context);
+ virtual ~AutonomousDroneController();
+
+ virtual void tick(float dt); //!< The controlling happens here. This method defines what the controller has to do each tick.
+
+ protected:
+
+ private:
+ };
+}
+
+#endif /* _AutonomousDroneController_H__ */
Modified: code/branches/Presentation_HS17_merge/src/orxonox/controllers/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/CMakeLists.txt 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge/src/orxonox/controllers/CMakeLists.txt 2018-02-18 17:42:50 UTC (rev 11774)
@@ -18,4 +18,6 @@
FlyingController.cc
FightingController.cc
MasterController.cc
+ AutonomousDroneController.cc
+ ArrowController.cc
)
Copied: code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.cc (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/controllers/WaypointArrow.cc)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.cc (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,67 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Fabian 'x3n' Landau
+ * Co-authors:
+ * ...
+ *
+ */
+
+#include "WaypointArrow.h"
+
+#include "core/CoreIncludes.h"
+#include "worldentities/ControllableEntity.h"
+
+namespace orxonox
+{
+ RegisterClass(WaypointArrow);
+
+ WaypointArrow::WaypointArrow(Context* context) : ArtificialController(context)
+ {
+ RegisterObject(WaypointController);
+ this->setAccuracy(100);
+ }
+
+ WaypointController::~WaypointController()
+ {
+ for (WorldEntity* waypoint : this->waypoints_)
+ {
+ if(waypoint)
+ waypoint->destroy();
+ }
+ }
+
+ void WaypointController::tick(float dt)
+ {
+ if (!this->isActive())
+ return;
+
+ if (this->waypoints_.size() == 0 || !this->getControllableEntity())
+ return;
+
+ if (this->waypoints_[this->currentWaypoint_]->getWorldPosition().squaredDistance(this->getControllableEntity()->getPosition()) <= this->squaredaccuracy_)
+ this->currentWaypoint_ = (this->currentWaypoint_ + 1) % this->waypoints_.size();
+
+ this->moveToPosition(this->waypoints_[this->currentWaypoint_]->getWorldPosition());
+ }
+
+}
Copied: code/branches/Presentation_HS17_merge/src/orxonox/controllers/WaypointArrow.h (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/controllers/WaypointArrow.h)
===================================================================
Modified: code/branches/Presentation_HS17_merge/src/orxonox/graphics/Model.cc
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/graphics/Model.cc 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge/src/orxonox/graphics/Model.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -70,7 +70,6 @@
SUPER(Model, XMLPort, xmlelement, mode);
XMLPortParam(Model, "lodLevel", setLodLevel, getLodLevel, xmlelement, mode);
-
XMLPortParam(Model, "mesh", setMeshSource, getMeshSource, xmlelement, mode);
XMLPortParam(Model, "renderQueueGroup", setRenderQueueGroup, getRenderQueueGroup, xmlelement, mode);
XMLPortParam(Model, "material", setMaterial, getMaterial, xmlelement, mode);
Copied: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.cc (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/worldentities/Arrow.cc)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.cc (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,174 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#include "Arrow.h"
+
+#include "core/CoreIncludes.h"
+#include "BulletDynamics/Dynamics/btRigidBody.h"
+
+namespace orxonox
+{
+
+ RegisterClass(Arrow);
+ /**
+ @brief
+ Constructor. Registers the object and initializes some default values.
+ @param creator
+ The creator of this object.
+ */
+ Arrow::Arrow(Context* context) : ControllableEntity(context)
+ {
+ RegisterObject(Arrow);
+
+ this->localLinearAcceleration_.setValue(0, 0, 0);
+ this->localAngularAcceleration_.setValue(0, 0, 0);
+ this->primaryThrust_ = 100;
+ this->auxiliaryThrust_ = 100;
+ this->rotationThrust_ = 10;
+
+ this->setCollisionType(CollisionType::Dynamic);
+
+
+ }
+
+ /**
+ @brief
+ Destructor. Destroys controller, if present.
+ */
+ Arrow::~Arrow()
+ {
+
+ }
+
+ /**
+ @brief
+ Method for creating a Arrow through XML.
+ */
+ void Arrow::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ // This calls the XMLPort function of the parent class
+ SUPER(Arrow, XMLPort, xmlelement, mode);
+
+ XMLPortParam(Arrow, "primaryThrust", setPrimaryThrust, getPrimaryThrust, xmlelement, mode);
+ XMLPortParam(Arrow, "auxiliaryThrust", setAuxiliaryThrust, getAuxiliaryThrust, xmlelement, mode);
+ XMLPortParam(Arrow, "rotationThrust", setRotationThrust, getRotationThrust, xmlelement, mode);
+
+ }
+
+ /**
+ @brief
+ Defines which actions the Arrow has to take in each tick.
+ @param dt
+ The length of the tick.
+ */
+ void Arrow::tick(float dt)
+ {
+ SUPER(Arrow, tick, dt);
+
+ this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() * getMass() * this->auxiliaryThrust_);
+ this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() * getMass() * this->auxiliaryThrust_);
+ if (this->localLinearAcceleration_.z() > 0)
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->auxiliaryThrust_);
+ else
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->primaryThrust_);
+ this->physicalBody_->applyCentralForce(physicalBody_->getWorldTransform().getBasis() * this->localLinearAcceleration_);
+ this->localLinearAcceleration_.setValue(0, 0, 0);
+
+ this->localAngularAcceleration_ *= this->getLocalInertia() * this->rotationThrust_;
+ this->physicalBody_->applyTorque(physicalBody_->getWorldTransform().getBasis() * this->localAngularAcceleration_);
+ this->localAngularAcceleration_.setValue(0, 0, 0);
+ }
+
+ /**
+ @brief
+ Moves the Arrow in the negative z-direction (Front/Back) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void Arrow::moveFrontBack(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() - value.x);
+ }
+
+ /**
+ @brief
+ Moves the Arrow in the x-direction (Right/Left) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void Arrow::moveRightLeft(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() + value.x);
+ }
+
+ /**
+ @brief
+ Moves the Arrow in the y-direction (Up/Down) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void Arrow::moveUpDown(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() + value.x);
+ }
+
+ /**
+ @brief
+ Rotates the Arrow around the y-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void Arrow::rotateYaw(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() - value.x);
+ }
+
+ /**
+ @brief
+ Rotates the Arrow around the x-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void Arrow::rotatePitch(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x);
+ }
+
+ /**
+ @brief
+ Rotates the Arrow around the z-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void Arrow::rotateRoll(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setZ(this->localAngularAcceleration_.z() + value.x);
+ }
+
+
+}
Copied: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.h (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/worldentities/Arrow.h)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.h (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/worldentities/Arrow.h 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,147 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#ifndef _Arrow_H__
+#define _Arrow_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "core/XMLPort.h"
+//#include "controllers/ArrowController.h"
+
+#include "ControllableEntity.h"
+#include "WorldEntity.h"
+
+namespace orxonox {
+
+ /**
+ @brief
+ Drone, that is made to move upon a specified pattern.
+ This class was constructed for the PPS tutorial.
+ @author
+ Oli Scheuss
+ */
+ class _OrxonoxExport Arrow : public ControllableEntity
+ {
+ public:
+ Arrow(Context* context);
+ virtual ~Arrow();
+
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating an Arrow through XML.
+ virtual void tick(float dt); //!< Defines which actions the Arrow has to take in each tick.
+
+ virtual void moveFrontBack(const Vector2& value);
+ virtual void moveRightLeft(const Vector2& value);
+ virtual void moveUpDown(const Vector2& value);
+
+ virtual void rotateYaw(const Vector2& value);
+ virtual void rotatePitch(const Vector2& value);
+ virtual void rotateRoll(const Vector2& value);
+
+ /**
+ @brief Moves the Drone in the Front/Back-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveFrontBack(float value)
+ { this->moveFrontBack(Vector2(value, 0)); }
+ /**
+ @brief Moves the Drone in the Right/Left-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveRightLeft(float value)
+ { this->moveRightLeft(Vector2(value, 0)); }
+ /**
+ @brief Moves the Drone in the Up/Down-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveUpDown(float value)
+ { this->moveUpDown(Vector2(value, 0)); }
+
+ /**
+ @brief Rotates the Drone around the y-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotateYaw(float value)
+ { this->rotateYaw(Vector2(value, 0)); }
+ /**
+ @brief Rotates the Drone around the x-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotatePitch(float value)
+ { this->rotatePitch(Vector2(value, 0)); }
+ /**
+ @brief Rotates the Drone around the z-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotateRoll(float value)
+ { this->rotateRoll(Vector2(value, 0)); }
+
+ /**
+ @brief Sets the primary thrust to the input amount.
+ @param thrust The amount of thrust.
+ */
+ inline void setPrimaryThrust( float thrust )
+ { this->primaryThrust_ = thrust; }
+ //TODO: Place your set-functions here.
+
+ inline void setAuxiliaryThrust ( float thrust )
+ { this -> auxiliaryThrust_ = thrust; }
+
+ inline void setRotationThrust (float thrust)
+ { this -> rotationThrust_ = thrust;}
+ // Hint: auxiliary thrust, rotation thrust.
+
+ /**
+ @brief Gets the primary thrust to the input amount.
+ @return The amount of thrust.
+ */
+ inline float getPrimaryThrust()
+ { return this->primaryThrust_; }
+
+ inline float getAuxiliaryThrust()
+ { return this->auxiliaryThrust_;}
+
+ inline float getRotationThrust()
+ { return this->rotationThrust_;}
+
+ //TODO: Place your get-functions here.
+
+ private:
+ //ArrowController *myController_; //!< The controller of the Arrow.
+
+ btVector3 localLinearAcceleration_; //!< The linear acceleration that is used to move the Arrow the next tick.
+ btVector3 localAngularAcceleration_; //!< The linear angular acceleration that is used to move the Arrow the next tick.
+ float primaryThrust_; //!< The amount of primary thrust. This is just used, when moving forward.
+ float auxiliaryThrust_; //!< The amount of auxiliary thrust. Used for all other movements (except for rotations).
+ float rotationThrust_; //!< The amount of rotation thrust. Used for rotations only.s
+
+ };
+
+}
+
+#endif // _Arrow_H__
Copied: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.cc (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/worldentities/AutonomousDrone.cc)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.cc (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.cc 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,186 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#include "AutonomousDrone.h"
+
+#include "core/CoreIncludes.h"
+#include "BulletDynamics/Dynamics/btRigidBody.h"
+
+namespace orxonox
+{
+ //TODO: Put your code in here:
+ // Create the factory for the drone.
+ RegisterClass(AutonomousDrone);
+ /**
+ @brief
+ Constructor. Registers the object and initializes some default values.
+ @param creator
+ The creator of this object.
+ */
+ AutonomousDrone::AutonomousDrone(Context* context) : ControllableEntity(context)
+ {
+ //TODO: Put your code in here:
+ // Register the drone class to the core.
+ RegisterObject(AutonomousDrone);
+
+ this->myController_ = NULL;
+
+ this->localLinearAcceleration_.setValue(0, 0, 0);
+ this->localAngularAcceleration_.setValue(0, 0, 0);
+ this->primaryThrust_ = 100;
+ this->auxiliaryThrust_ = 100;
+ this->rotationThrust_ = 10;
+
+ this->setCollisionType(CollisionType::Dynamic);
+
+ //this->myController_ = new AutonomousDroneController(this); // Creates a new controller and passes our this pointer to it as creator.
+ }
+
+ /**
+ @brief
+ Destructor. Destroys controller, if present.
+ */
+ AutonomousDrone::~AutonomousDrone()
+ {
+ // Deletes the controller if the object was initialized and the pointer to the controller is not NULL.
+ if( this->isInitialized() && this->myController_ != NULL )
+ delete this->myController_;
+ }
+
+ /**
+ @brief
+ Method for creating a AutonomousDrone through XML.
+ */
+ void AutonomousDrone::XMLPort(Element& xmlelement, XMLPort::Mode mode)
+ {
+ // This calls the XMLPort function of the parent class
+ SUPER(AutonomousDrone, XMLPort, xmlelement, mode);
+
+ XMLPortParam(AutonomousDrone, "primaryThrust", setPrimaryThrust, getPrimaryThrust, xmlelement, mode);
+ //TODO: Put your code in here:
+ XMLPortParam(AutonomousDrone, "auxiliaryThrust", setAuxiliaryThrust, getAuxiliaryThrust, xmlelement, mode);
+ XMLPortParam(AutonomousDrone, "rotationThrust", setRotationThrust, getRotationThrust, xmlelement, mode);
+ // Make sure you add the variables auxiliaryThrust_ and rotationThrust_ to XMLPort.
+ // Variables can be added by the following command
+ // XMLPortParam(Classname, "xml-attribute-name (i.e. variablename)", setFunctionName, getFunctionName, xmlelement, mode);
+ // Also make sure that you also create the get- and set-functions in AutonomousDrone.h. As you can see, the get- and set-functions for the variable primaryThrust_ has already been specified there, so you can get your inspiration from there.
+
+
+ }
+
+ /**
+ @brief
+ Defines which actions the AutonomousDrone has to take in each tick.
+ @param dt
+ The length of the tick.
+ */
+ void AutonomousDrone::tick(float dt)
+ {
+ SUPER(AutonomousDrone, tick, dt);
+
+ this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() * getMass() * this->auxiliaryThrust_);
+ this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() * getMass() * this->auxiliaryThrust_);
+ if (this->localLinearAcceleration_.z() > 0)
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->auxiliaryThrust_);
+ else
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() * getMass() * this->primaryThrust_);
+ this->physicalBody_->applyCentralForce(physicalBody_->getWorldTransform().getBasis() * this->localLinearAcceleration_);
+ this->localLinearAcceleration_.setValue(0, 0, 0);
+
+ this->localAngularAcceleration_ *= this->getLocalInertia() * this->rotationThrust_;
+ this->physicalBody_->applyTorque(physicalBody_->getWorldTransform().getBasis() * this->localAngularAcceleration_);
+ this->localAngularAcceleration_.setValue(0, 0, 0);
+ }
+
+ /**
+ @brief
+ Moves the AutonomousDrone in the negative z-direction (Front/Back) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void AutonomousDrone::moveFrontBack(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setZ(this->localLinearAcceleration_.z() - value.x);
+ }
+
+ /**
+ @brief
+ Moves the AutonomousDrone in the x-direction (Right/Left) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void AutonomousDrone::moveRightLeft(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setX(this->localLinearAcceleration_.x() + value.x);
+ }
+
+ /**
+ @brief
+ Moves the AutonomousDrone in the y-direction (Up/Down) by an amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the movement.
+ */
+ void AutonomousDrone::moveUpDown(const Vector2& value)
+ {
+ this->localLinearAcceleration_.setY(this->localLinearAcceleration_.y() + value.x);
+ }
+
+ /**
+ @brief
+ Rotates the AutonomousDrone around the y-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void AutonomousDrone::rotateYaw(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setY(this->localAngularAcceleration_.y() - value.x);
+ }
+
+ /**
+ @brief
+ Rotates the AutonomousDrone around the x-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void AutonomousDrone::rotatePitch(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setX(this->localAngularAcceleration_.x() + value.x);
+ }
+
+ /**
+ @brief
+ Rotates the AutonomousDrone around the z-axis by the amount specified by the first component of the input 2-dim vector.
+ @param value
+ The vector determining the amount of the angular movement.
+ */
+ void AutonomousDrone::rotateRoll(const Vector2& value)
+ {
+ this->localAngularAcceleration_.setZ(this->localAngularAcceleration_.z() + value.x);
+ }
+
+}
Copied: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.h (from rev 11773, code/branches/Waypoints_HS17/src/orxonox/worldentities/AutonomousDrone.h)
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.h (rev 0)
+++ code/branches/Presentation_HS17_merge/src/orxonox/worldentities/AutonomousDrone.h 2018-02-18 17:42:50 UTC (rev 11774)
@@ -0,0 +1,146 @@
+/*
+ * ORXONOX - the hottest 3D action shooter ever to exist
+ * > www.orxonox.net <
+ *
+ *
+ * License notice:
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * Author:
+ * Oli Scheuss
+ * Co-authors:
+ * Damian 'Mozork' Frick
+ *
+ */
+
+#ifndef _AutonomousDrone_H__
+#define _AutonomousDrone_H__
+
+#include "OrxonoxPrereqs.h"
+
+#include "core/XMLPort.h"
+#include "controllers/AutonomousDroneController.h"
+
+#include "ControllableEntity.h"
+
+namespace orxonox {
+
+ /**
+ @brief
+ Drone, that is made to move upon a specified pattern.
+ This class was constructed for the PPS tutorial.
+ @author
+ Oli Scheuss
+ */
+ class _OrxonoxExport AutonomousDrone : public ControllableEntity
+ {
+ public:
+ AutonomousDrone(Context* context);
+ virtual ~AutonomousDrone();
+
+ virtual void XMLPort(Element& xmlelement, XMLPort::Mode mode); //!< Method for creating an AutonomousDrone through XML.
+ virtual void tick(float dt); //!< Defines which actions the AutonomousDrone has to take in each tick.
+
+ virtual void moveFrontBack(const Vector2& value);
+ virtual void moveRightLeft(const Vector2& value);
+ virtual void moveUpDown(const Vector2& value);
+
+ virtual void rotateYaw(const Vector2& value);
+ virtual void rotatePitch(const Vector2& value);
+ virtual void rotateRoll(const Vector2& value);
+
+ /**
+ @brief Moves the Drone in the Front/Back-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveFrontBack(float value)
+ { this->moveFrontBack(Vector2(value, 0)); }
+ /**
+ @brief Moves the Drone in the Right/Left-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveRightLeft(float value)
+ { this->moveRightLeft(Vector2(value, 0)); }
+ /**
+ @brief Moves the Drone in the Up/Down-direction by the specifed amount.
+ @param value The amount by which the drone is to be moved.
+ */
+ inline void moveUpDown(float value)
+ { this->moveUpDown(Vector2(value, 0)); }
+
+ /**
+ @brief Rotates the Drone around the y-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotateYaw(float value)
+ { this->rotateYaw(Vector2(value, 0)); }
+ /**
+ @brief Rotates the Drone around the x-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotatePitch(float value)
+ { this->rotatePitch(Vector2(value, 0)); }
+ /**
+ @brief Rotates the Drone around the z-axis by the specifed amount.
+ @param value The amount by which the drone is to be rotated.
+ */
+ inline void rotateRoll(float value)
+ { this->rotateRoll(Vector2(value, 0)); }
+
+ /**
+ @brief Sets the primary thrust to the input amount.
+ @param thrust The amount of thrust.
+ */
+ inline void setPrimaryThrust( float thrust )
+ { this->primaryThrust_ = thrust; }
+ //TODO: Place your set-functions here.
+
+ inline void setAuxiliaryThrust ( float thrust )
+ { this -> auxiliaryThrust_ = thrust; }
+
+ inline void setRotationThrust (float thrust)
+ { this -> rotationThrust_ = thrust;}
+ // Hint: auxiliary thrust, rotation thrust.
+
+ /**
+ @brief Gets the primary thrust to the input amount.
+ @return The amount of thrust.
+ */
+ inline float getPrimaryThrust()
+ { return this->primaryThrust_; }
+
+ inline float getAuxiliaryThrust()
+ { return this->auxiliaryThrust_;}
+
+ inline float getRotationThrust()
+ { return this->rotationThrust_;}
+
+ //TODO: Place your get-functions here.
+
+ private:
+ AutonomousDroneController *myController_; //!< The controller of the AutonomousDrone.
+
+ btVector3 localLinearAcceleration_; //!< The linear acceleration that is used to move the AutonomousDrone the next tick.
+ btVector3 localAngularAcceleration_; //!< The linear angular acceleration that is used to move the AutonomousDrone the next tick.
+ float primaryThrust_; //!< The amount of primary thrust. This is just used, when moving forward.
+ float auxiliaryThrust_; //!< The amount of auxiliary thrust. Used for all other movements (except for rotations).
+ float rotationThrust_; //!< The amount of rotation thrust. Used for rotations only.s
+
+ };
+
+}
+
+#endif // _AutonomousDrone_H__
Modified: code/branches/Presentation_HS17_merge/src/orxonox/worldentities/CMakeLists.txt
===================================================================
--- code/branches/Presentation_HS17_merge/src/orxonox/worldentities/CMakeLists.txt 2018-02-18 17:21:10 UTC (rev 11773)
+++ code/branches/Presentation_HS17_merge/src/orxonox/worldentities/CMakeLists.txt 2018-02-18 17:42:50 UTC (rev 11774)
@@ -13,6 +13,8 @@
ExplosionPart.cc
Actionpoint.cc
NameableStaticEntity.cc
+ AutonomousDrone.cc
+ Arrow.cc
)
ADD_SUBDIRECTORY(pawns)
\ No newline at end of file
More information about the Orxonox-commit
mailing list