Exemplo n.º 1
0
        /// <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();
        }
Exemplo n.º 2
0
 public static void RemoveFrom(Graphics.DocumentViews docviews)
 {
     foreach (var view in docviews.Views)
     {
         RemoveFrom(view);
     }
 }
Exemplo n.º 3
0
 public static void PutTo(Graphics.DocumentViews docviews)
 {
     foreach (var view in docviews.Views)
     {
         PutTo(view);
     }
 }
Exemplo n.º 4
0
 /// <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();
     }
 }
Exemplo n.º 5
0
        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();
        }
Exemplo n.º 7
0
        /// <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);
        }
Exemplo n.º 8
0
        /// <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);
        }
Exemplo n.º 9
0
 /// <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();
         }
     }
 }
Exemplo n.º 10
0
        /// <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);
        }
Exemplo n.º 11
0
 ViewSetting(Graphics.DocumentViews docviews)
 {
     _docviews = docviews;
     _lights   = CoreUT.MakeArray(4, i => new LightSetting(Graphics.Light.Lights[i]));
 }
Exemplo n.º 12
0
 /// <summary>
 /// <see cref="ViewSettingData"/> から設定値情報を取得し <paramref name="docviews"/> に反映します。
 /// </summary>
 /// <param name="docviews"></param>
 public static void Restore(Graphics.DocumentViews docviews)
 {
     Get(docviews).Restore();
 }
Exemplo n.º 13
0
 /// <summary>
 /// 指定されたフォルダに保存された設定ファイルから値を取得し <paramref name="docviews"/> に反映します。
 /// </summary>
 public static void Load(Graphics.DocumentViews docviews, string folderpath)
 {
     Get(docviews).Load(folderpath);
 }
Exemplo n.º 14
0
 public void SetUp( Graphics.DocumentViews docviews )
 {
     _docviews = docviews;
 }
Exemplo n.º 15
0
 /// <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>());
 }
Exemplo n.º 16
0
 public void SetUp(Graphics.DocumentViews docviews)
 {
     _docviews = docviews;
 }
Exemplo n.º 17
0
        /// <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);
        }
Exemplo n.º 18
0
 public void SetUp(Graphics.DocumentViews docviews)
 {
     _docviews    = docviews;
     _docTreeView = new DocTreeView(_docviews.Document, this.treeView);
     this.propertyPanel1.SetUp(docviews);
 }
Exemplo n.º 19
0
 ViewSetting( Graphics.DocumentViews docviews )
 {
     _docviews = docviews;
       _lights = CoreUT.MakeArray( 4, i => new LightSetting( Graphics.Light.Lights[i] ) );
 }
Exemplo n.º 20
0
        /// <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();
        }