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