/// <summary> /// 初期化関数。ビューの表示対象となる <see cref="Graphics.DocumentViews"/> を指定します。 /// このコントロールが破棄される際に <see cref="ViewSetting"/> が保存されるように設定されます。 /// </summary> /// <param name="docviews">ビューの表示対象</param> public virtual void SetUp(Graphics.DocumentViews docviews) { /* * コンテキストメニュー生成関数の設定 */ _contextMenuFactory = SI.CreateContextMenu; /* * DocumentViews 設定 */ _docviews = docviews; _docviews.ViewHistoryChanged += delegate(object sender, EventArgs e) { btnPrev.Enabled = _docviews.ActiveHistory.HasPrev; btnNext.Enabled = _docviews.ActiveHistory.HasNext; }; /* * 終了時に ViewSetting を保存 */ this.Disposed += (sender, e) => ViewSetting.Save(_docviews); /* * レイアウトの更新 */ this.UpdateLayout(); }
public static void RemoveFrom(Graphics.DocumentViews docviews) { foreach (var view in docviews.Views) { RemoveFrom(view); } }
public static void PutTo(Graphics.DocumentViews docviews) { foreach (var view in docviews.Views) { PutTo(view); } }
/// <summary> /// <see cref="ViewSettingData"/> に <paramref name="docviews"/> の設定値情報をコピーします。 /// </summary> /// <param name="docviews"></param> public static void Save(Graphics.DocumentViews docviews) { if (_registry.ContainsKey(docviews)) { _registry[docviews].Save(); } }
public ViewSettingDialog(Graphics.DocumentViews docviews, ViewSetting setting) { InitializeComponent(); _docviews = docviews; _setting = setting; propertyGrid1.SelectedObject = _setting; viewControl.BackColor = _setting.BackgroundColor; viewControl.SceneGraph.WorldScenes.Add(new WorldSphere()); viewControl.SceneGraph.WorldScenes.Add( delegate(Graphics.ISceneContext context) { using (var scope = context.Push()) { scope.Color = this.ActiveLight.Enabled ? _setting.Color : Color.LightGray; Graphics.Util.DrawSolidSphere( new Geom.Sphere3d(Geom.Point3d.Zero, 1.0)); } } ); viewControl.SceneGraph.CameraScenes.Add( delegate(Graphics.ISceneContext context) { if (!this.ActiveLight.Enabled) { return; } Geom.HmCod3d p = this.ActiveLight.Position; Geom.Vector3d d = new Geom.Vector3d(p.X, p.Y, p.Z).Normalize(); Geom.CodSys3d sys = new Geom.CodSys3d(d, new Geom.Point3d(d.x, d.y, d.z)); Geom.Point3d top = Geom.Point3d.Zero; Geom.Point3d end = new Geom.Point3d(0, 0, 2); Geom.Point3d px1 = new Geom.Point3d(0.3, 0, 0.8); Geom.Point3d px2 = new Geom.Point3d(-0.3, 0, 0.8); Geom.Point3d py1 = new Geom.Point3d(0, 0.3, 0.8); Geom.Point3d py2 = new Geom.Point3d(0, -0.3, 0.8); top = sys.Globalize(top); end = sys.Globalize(end); px1 = sys.Globalize(px1); px2 = sys.Globalize(px2); py1 = sys.Globalize(py1); py2 = sys.Globalize(py2); using (var scope = context.Push()) { scope.Color = Color.White; context.DrawLineStrip(gl => gl.Vertices(end, top, px1, px2, top, py1, py2, top)); } } ); this.ActiveLightChanged(null, EventArgs.Empty); viewControl.Fit(); }
public ViewSettingDialog( Graphics.DocumentViews docviews, ViewSetting setting ) { InitializeComponent(); _docviews = docviews; _setting = setting; propertyGrid1.SelectedObject = _setting; viewControl.BackColor = _setting.BackgroundColor; viewControl.SceneGraph.WorldScenes.Add( new WorldSphere() ); viewControl.SceneGraph.WorldScenes.Add( delegate( Graphics.ISceneContext context ) { using ( var scope = context.Push() ) { scope.Color = this.ActiveLight.Enabled ? _setting.Color : Color.LightGray; Graphics.Util.DrawSolidSphere( new Geom.Sphere3d( Geom.Point3d.Zero, 1.0 ) ); } } ); viewControl.SceneGraph.CameraScenes.Add( delegate( Graphics.ISceneContext context ) { if ( !this.ActiveLight.Enabled ) return; Geom.HmCod3d p = this.ActiveLight.Position; Geom.Vector3d d = new Geom.Vector3d( p.X, p.Y, p.Z ).Normalize(); Geom.CodSys3d sys = new Geom.CodSys3d( d, new Geom.Point3d( d.x, d.y, d.z ) ); Geom.Point3d top = Geom.Point3d.Zero; Geom.Point3d end = new Geom.Point3d( 0, 0, 2 ); Geom.Point3d px1 = new Geom.Point3d( 0.3, 0, 0.8 ); Geom.Point3d px2 = new Geom.Point3d( -0.3, 0, 0.8 ); Geom.Point3d py1 = new Geom.Point3d( 0, 0.3, 0.8 ); Geom.Point3d py2 = new Geom.Point3d( 0, -0.3, 0.8 ); top = sys.Globalize( top ); end = sys.Globalize( end ); px1 = sys.Globalize( px1 ); px2 = sys.Globalize( px2 ); py1 = sys.Globalize( py1 ); py2 = sys.Globalize( py2 ); using ( var scope = context.Push() ) { scope.Color = Color.White; context.DrawLineStrip( gl => gl.Vertices( end, top, px1, px2, top, py1, py2, top ) ); } } ); this.ActiveLightChanged( null, EventArgs.Empty ); viewControl.Fit(); }
/// <summary> /// クリップ面の設定を解除します。 /// </summary> /// <param name="docviews">クリップ平面の登録先</param> /// <returns>もともとクリップ平面が設定されていなかった場合は false</returns> public static bool Remove(Graphics.DocumentViews docviews) { var clip = Find(docviews); if (clip != null) { clip.DocumentViews = null; return(true); } return(false); }
/// <summary> /// 指定された <see cref="Graphics.DocumentViews"/> に対応する設定情報を取得します。 /// 未登録の場合はインスタンスを生成・登録して返します。 /// </summary> /// <param name="docviews"></param> /// <returns></returns> public static ViewSetting Get(Graphics.DocumentViews docviews) { ViewSetting instance = null; if (docviews != null && !_registry.TryGetValue(docviews, out instance)) { instance = new ViewSetting(docviews); ViewSettingData.Instance.CopyTo(instance); _registry[docviews] = instance; } return(instance); }
/// <summary> /// <paramref name="docviews"/> にクリップ平面の向きを設定します。 /// <paramref name="dir"/> に <see cref="ClipDirections.None"/> を指定するとクリップ平面が削除されます。 /// </summary> /// <param name="docviews">クリップ平面の登録先</param> /// <param name="dir">クリップ平面の向き</param> public static void SetClipDirection(Graphics.DocumentViews docviews, ClipDirections dir) { if (dir == ClipDirections.None) { Remove(docviews); } else { var clip = Get(docviews); if (clip.Direction != dir) { clip.Direction = dir; clip.Position = (0.5).Clamp(); } } }
/// <summary> /// <see cref="Graphics.DocumentViews"/> に設定されているクリップ平面を取得します。 /// 存在しない場合は、クリップ平面を生成・登録して返します。 /// </summary> /// <param name="docviews">クリップ平面の登録先</param> /// <returns>設定されているクリップ平面</returns> public static ClipPlane Get(Graphics.DocumentViews docviews) { var clip = Find(docviews); if (clip == null) { if (!_registry.TryGetValue(docviews, out clip)) { clip = new ClipPlane { DocumentViews = docviews }; _registry.Add(docviews, clip); } } if (clip.DocumentViews == null) { clip.DocumentViews = docviews; } return(clip); }
ViewSetting(Graphics.DocumentViews docviews) { _docviews = docviews; _lights = CoreUT.MakeArray(4, i => new LightSetting(Graphics.Light.Lights[i])); }
/// <summary> /// <see cref="ViewSettingData"/> から設定値情報を取得し <paramref name="docviews"/> に反映します。 /// </summary> /// <param name="docviews"></param> public static void Restore(Graphics.DocumentViews docviews) { Get(docviews).Restore(); }
/// <summary> /// 指定されたフォルダに保存された設定ファイルから値を取得し <paramref name="docviews"/> に反映します。 /// </summary> public static void Load(Graphics.DocumentViews docviews, string folderpath) { Get(docviews).Load(folderpath); }
public void SetUp( Graphics.DocumentViews docviews ) { _docviews = docviews; }
/// <summary> /// <see cref="Graphics.DocumentViews"/> に設定されているクリップ平面を取得します。 /// 見つからない場合は null を返します。 /// </summary> /// <param name="docviews">クリップ平面の探索先</param> /// <returns>設定されているクリップ平面</returns> public static ClipPlane Find(Graphics.DocumentViews docviews) { return(docviews.WorldDocumentScene.Decorator.FindDecoration <ClipPlane>()); }
public void SetUp(Graphics.DocumentViews docviews) { _docviews = docviews; }
/// <summary> /// 設定されているクリップ平面の向きを返します。 /// クリップ平面が設定されていない場合は <see cref="ClipDirections.None"/> を返します。 /// </summary> /// <param name="docviews">クリップ平面の探索先</param> /// <returns>クリップ平面の向き</returns> public static ClipDirections GetClipDirection(Graphics.DocumentViews docviews) { var clip = Find(docviews); return((clip == null) ? ClipDirections.None : clip.Direction); }
public void SetUp(Graphics.DocumentViews docviews) { _docviews = docviews; _docTreeView = new DocTreeView(_docviews.Document, this.treeView); this.propertyPanel1.SetUp(docviews); }
ViewSetting( Graphics.DocumentViews docviews ) { _docviews = docviews; _lights = CoreUT.MakeArray( 4, i => new LightSetting( Graphics.Light.Lights[i] ) ); }
/// <summary> /// ���������B�r���[�̕\���ΏۂƂȂ� <see cref="Graphics.DocumentViews"/> ��w�肵�܂��B /// ���̃R���g���[�����j�������ۂ� <see cref="ViewSetting"/> ���ۑ������悤�ɐݒ肳��܂��B /// </summary> /// <param name="docviews">�r���[�̕\���Ώ�</param> public virtual void SetUp( Graphics.DocumentViews docviews ) { /* * �R���e�L�X�g���j���[�������̐ݒ� */ _contextMenuFactory = SI.CreateContextMenu; /* * DocumentViews �ݒ� */ _docviews = docviews; _docviews.ViewHistoryChanged += delegate( object sender, EventArgs e ) { btnPrev.Enabled = _docviews.ActiveHistory.HasPrev; btnNext.Enabled = _docviews.ActiveHistory.HasNext; }; /* * �I������ ViewSetting ��ۑ� */ this.Disposed += ( sender, e ) => ViewSetting.Save( _docviews ); /* * ���C�A�E�g�̍X�V */ this.UpdateLayout(); }