Torque3D Documentation / _generateds / VPostEffectToggleEvent.cpp

VPostEffectToggleEvent.cpp

Engine/source/Verve/Extension/PostEffect/VPostEffectToggleEvent.cpp

More...

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