VPostEffectToggleEvent.cpp
Engine/source/Verve/Extension/PostEffect/VPostEffectToggleEvent.cpp
Public Functions
Detailed Description
Public Functions
IMPLEMENT_CONOBJECT(VPostEffectToggleEvent )
1 2//----------------------------------------------------------------------------- 3// Verve 4// Copyright (C) 2014 - Violent Tulip 5// 6// Permission is hereby granted, free of charge, to any person obtaining a copy 7// of this software and associated documentation files (the "Software"), to 8// deal in the Software without restriction, including without limitation the 9// rights to use, copy, modify, merge, publish, distribute, sublicense, and/or 10// sell copies of the Software, and to permit persons to whom the Software is 11// furnished to do so, subject to the following conditions: 12// 13// The above copyright notice and this permission notice shall be included in 14// all copies or substantial portions of the Software. 15// 16// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS 22// IN THE SOFTWARE. 23//----------------------------------------------------------------------------- 24#include "Verve/Extension/PostEffect/VPostEffectToggleEvent.h" 25#include "Verve/Extension/PostEffect/VPostEffectToggleTrack.h" 26#include "Verve/Extension/Camera/VCameraGroup.h" 27 28#include "console/consoleTypes.h" 29 30//----------------------------------------------------------------------------- 31IMPLEMENT_CONOBJECT( VPostEffectToggleEvent ); 32//----------------------------------------------------------------------------- 33 34VPostEffectToggleEvent::VPostEffectToggleEvent( void ) : 35 mEventType( VSharedEnum::k_ActionTurnOn ) 36{ 37 setLabel( "ToggleEvent" ); 38} 39 40void VPostEffectToggleEvent::initPersistFields( void ) 41{ 42 Parent::initPersistFields(); 43 44 addField( "Action", TYPEID<VActionToggle>(), Offset( mEventType, VPostEffectToggleEvent ) ); 45} 46 47//----------------------------------------------------------------------------- 48// 49// Callback Methods. 50// 51//----------------------------------------------------------------------------- 52 53//----------------------------------------------------------------------------- 54// 55// VPostEffectToggleEvent::onTrigger( pTime, pDelta ); 56// 57// Only enable this effect if the parent group is currently active. 58// 59//----------------------------------------------------------------------------- 60void VPostEffectToggleEvent::onTrigger( const S32 &pTime, const S32 &pDelta ) 61{ 62 Parent::onTrigger( pTime, pDelta ); 63 64 // Fetch Parent Objects. 65 VCameraGroup *group; 66 VPostEffectToggleTrack *track; 67 if ( ( !getGroup( group ) || !group->isActive() ) || !getTrack( track ) ) 68 { 69 // Quit. 70 return; 71 } 72 73 // Turn On? 74 const bool turnOn = ( mEventType == VSharedEnum::k_ActionTurnOn ); 75 76 // Enable Effect. 77 VTorque::setPostEffectOn( track->getPostEffect(), turnOn ); 78} 79