/// <summary> /// 使用中のリソースをすべてクリーンアップします。 /// </summary> /// <param name="disposing">マネージ リソースが破棄される場合 true、破棄されない場合は false です。</param> protected virtual void Dispose(bool disposing) { if (Disposed) { return; } Disposed = true; if (DrawerAry != null) { DrawerAry.Clear(); DrawerAry.Dispose(); DrawerAry = null; } if (Camera != null) { Camera.Dispose(); Camera = null; } if (Solid != null) { Solid.Clear(); Solid.Dispose(); Solid = null; } if (World != null) { World.Clear(); World.Dispose(); World = null; } if (FieldValueSetter != null) { FieldValueSetter.Clear(); FieldValueSetter.Dispose(); FieldValueSetter = null; } }
///////////////////////////////////////////////// // 定数 ///////////////////////////////////////////////// /// <summary> /// コンストラクタ /// </summary> public MainLogic() { Disposed = false; Camera = new CCamera(); DrawerAry = new CDrawerArrayField(); World = new CFieldWorld(); FieldValueSetter = new CFieldValueSetter(); Solid = new CEqn_Solid3D_Linear(); // Glutのアイドル時処理でなく、タイマーで再描画イベントを発生させる MyTimer.Tick += (sender, e) => { Glut.glutPostRedisplay(); }; MyTimer.Interval = 1000 / 60; }