1 /*---------------------------------------------------------------------------*
2   Project:  NintendoWare
3   File:     demo.h
4 
5   Copyright (C)2009-2011 Nintendo/HAL Laboratory, Inc.  All rights reserved.
6 
7   These coded instructions, statements, and computer programs contain proprietary
8   information of Nintendo and/or its licensed developers and are protected by
9   national and international copyright laws. They may not be disclosed to third
10   parties or copied or duplicated in any form, in whole or in part, without the
11   prior written consent of Nintendo.
12 
13   The content herein is highly confidential and should be handled accordingly.
14 
15   $Revision: $
16  *---------------------------------------------------------------------------*/
17 #ifndef DEMO_H__
18 #define DEMO_H__
19 
20 #include <nw/gfx.h>
21 
22 #include "../include/GfxCtrl.h"
23 #include "../include/LytCtrl.h"
24 #include "../include/SmTouchPanelCamera.h"
25 #include "../include/SmModel.h"
26 #include "../include/SmMessage.h"
27 #include "../include/SmButton.h"
28 #include "../include/SmLayout.h"
29 #include "../include/SmLytButton.h"
30 #include "../include/SmLytSliderBar.h"
31 #include "../include/SmParticle.h"
32 
33 //------------------------------------------------------------------------------
34 //! �R���e���c�̓��e��t�h���̊Ǘ����s���N���X�ł��B
35 class Demo : public SmMessage
36 {
37     //! �R���e���c��������\�������ł��B
38     enum
39     {
40         //! �^�u�̐؂�ւ����s���܂��B
41         DEMO_TAB0_VISIBLE_BTN,
42         DEMO_TAB1_VISIBLE_BTN,
43         DEMO_TAB2_VISIBLE_BTN,
44 
45         //! �e�I�u�W�F�N�g�̕\��/��\�����s���܂��B
46         DEMO_PIERROT_VISIBLE_BTN,
47         DEMO_ROBOT_VISIBLE_BTN,
48         DEMO_STAGE_VISIBLE_BTN,
49         DEMO_PARTICLE_VISIBLE_BTN,
50         DEMO_AUDIENCE_VISIBLE_BTN,
51 
52         //! �X�e���I�`��̃I���I�t��ύX���܂��B
53         DEMO_STAGE_STEREO_ONOFF,
54 
55         //! �J�����A�j��/�^�b�`�p�l���J�����̐؂�ւ����s���܂��B
56         DEMO_CAMERA_CTRL_BTN,
57 
58         //! �V���̃I���I�t���s���܂��B
59         DEMO_EMPYREAN_VISIBLE_BTN,
60 
61         //! �e�I�u�W�F�N�g�̃��b�V���P�ʂł̕`��؂�ւ����s���܂��B
62         DEMO_ADD_PIERROT_NUM_CTRL_SLDR,
63         DEMO_ROBOT_NUM_CTRL_SLDR,
64         DEMO_STAGE_OBJECT_MESH_CTRL_SLDR,
65         DEMO_AUDIENCE_NUM_CTRL_SLDR,
66         DEMO_PARTICLE_NUM_CTRL_SLDR
67     };
68 
69     //! �������ꂽSmModel�C���X�^���X��ێ����邽�߂̔z��ł��B
70     typedef nw::ut::FixedSizeArray<SmModel*, 32>               SmModelInstanceArray;
71 
72 public:
73     //! �R���X�g���N�^
74     Demo( GfxCtrl* gfxCtrl, LytCtrl* lytCtrl );
75 
76     //! �f�X�g���N�^
77     ~Demo();
78 
79     //! �V�[���̏��������s���܂��B
80     void InitializeScene();
81 
82     //! �t���[���̏������s���܂��B
83     void Exec( f32 addFrame );
84 
85     //! ���Z�b�g�������s���܂��B
86     void Reset();
87 
88     //! ���b�Z�[�W����M���܂��B
89     virtual bool ReceveMessage( SmMessageType   type,
90                                 void*           object = NULL,
91                                 uint            targetId = 0 );
92 
93 
94     //! ���������p�p�����[�^���擾���܂��B
GetStereoLevel()95     f32 GetStereoLevel() const
96     {
97          if ( !m_LevelSlider ) return m_StereoLevel;
98         return m_LevelSlider->GetParam();
99     }
GetStereoRange()100     f32 GetStereoRange() const
101     {
102          if ( !m_RangeSlider ) return m_StereoRange;
103         return m_RangeSlider->GetParam();
104     }
105 
106     //! �X�e���I�\���I���I�t���擾���܂��B
IsStereoEnable()107     bool IsStereoEnable() const
108     {
109          if ( !m_LytStereoOnOffBtn ) return true;
110         return m_LytStereoOnOffBtn->IsSwitch();
111     }
112 
113     // ���C�A�E�g���X�V���邩�ǂ����̃t���O���擾���܂��B
IsLytUpdate()114     bool IsLytUpdate()
115     {
116         if ( m_LytUpdate )
117         {
118             m_LytUpdate = false;
119             return true;
120         }
121 
122         return false;
123     }
124 
125 private:
126     GfxCtrl*                m_GfxCtrl;
127     LytCtrl*                m_LytCtrl;
128 
129     SmModel*                m_Pierrot;
130     SmModel*                m_Robot;
131     SmModel*                m_Stage;
132     SmModel*                m_Stick;
133     SmModel*                m_Audience;
134     SmModel*                m_Empyrean;
135     SmModel*                m_AddPierrot;
136     SmModel*                m_AddRobot;
137     SmModel*                m_StageObject;
138 
139     SmParticle*             m_Particle;
140 
141     SmLayout*               m_LytTabPanel;
142     SmButton*               m_Tab0VisibleBtn;
143     SmButton*               m_Tab1VisibleBtn;
144     SmButton*               m_Tab2VisibleBtn;
145 
146     SmMessage*              m_Tab0Tree;
147     SmMessage*              m_Tab1Tree;
148     SmMessage*              m_Tab2Tree;
149 
150     SmLytButton*            m_LytPierrotVisibleBtn;
151     SmLytButton*            m_LytRobotVisibleBtn;
152     SmLytButton*            m_LytStageVisibleBtn;
153     SmLytButton*            m_LytParticleVisibleBtn;
154     SmLytButton*            m_LytAudienceVisibleBtn;
155     SmLytButton*            m_LytStereoOnOffBtn;
156     SmLytButton*            m_EmpyreanVisibleBtn;
157 
158     SmLytButton*            m_CameraCtrlBtn;
159     SmTouchPanelCamera*     m_TouchPanelCamera;
160 
161     SmLytSliderBar*         m_LevelSlider;
162     SmLytSliderBar*         m_RangeSlider;
163     f32                     m_StereoLevel;
164     f32                     m_StereoRange;
165 
166     SmLytSliderBar*         m_PierrotSlider;
167     SmLytSliderBar*         m_RobotSlider;
168     SmLytSliderBar*         m_StageMeshSlider;
169     SmLytSliderBar*         m_AudienceSlider;
170     SmLytSliderBar*         m_ParticleSlider;
171 
172 
173     SmCamera*               m_SmCamera;
174     nw::math::VEC3          m_CameraBasePos;
175     nw::math::VEC3          m_CameraBaseTarget;
176 
177     SmModelInstanceArray    m_AudienceArray;
178     SmModelInstanceArray    m_AddPierrotArray;
179     SmModelInstanceArray    m_AddRobotArray;
180 
181     bool                    m_LytUpdate;
182 
183     LytResourceFile         m_tabResFile;
184     LytResourceFile         m_btnPierrorResFile;
185     LytResourceFile         m_btnRobotResFile;
186     LytResourceFile         m_btnStageResFile;
187     LytResourceFile         m_btnAudienceResFile;
188     LytResourceFile         m_btnParticleResFile;
189     LytResourceFile         m_sliderResFile;
190 };
191 
192 
193 #endif  // GFXCTRL_H__
194