Exemple #1
0
 /// <summary>
 /// コピー
 /// </summary>
 /// <param name="sorData">コピー元データ</param>
 public void Copy(OpenGLColor_Bean sordata)
 {
     this.red   = sordata.Red;
     this.green = sordata.Green;
     this.blue  = sordata.Blue;
     this.alpha = sordata.Alpha;
 }
 /// <summary>
 /// 色セット
 /// </summary>
 /// <param name="color"></param>
 public void SetColorAll(OpenGLColor_Bean color)
 {
     foreach (VertexInfo_Bean item in vertexInfoDim)
     {
         item.ColorR = color.Red;
         item.ColorG = color.Green;
         item.ColorB = color.Blue;
         item.ColorW = color.Alpha;
     }
     colorList3 = GetColor3List();
     colorList4 = GetColor4List();
 }
        /// <summary>
        /// XYZ軸追加表示
        /// </summary>
        /// <param name="lengthX">X軸線長</param>
        /// <param name="colorX">X軸線色</param>
        /// <param name="lengthY">Y軸線長</param>
        /// <param name="colorY">Y軸線色</param>
        /// <param name="lengthZ">Z軸線長</param>
        /// <param name="colorZ">Z軸線色</param>
        protected override void DrowXYZAxisSub(float lengthX, OpenGLColor_Bean colorX, float lengthY, OpenGLColor_Bean colorY, float lengthZ, OpenGLColor_Bean colorZ)
        {
            try
            {
                double[] modelview = new double[16];
                double[] projection = new double[16];
                int[]    viewport = new int[4];
                double   winX, winY, winZ;//ウィンドウ座標格納用

                //モデルビュー行列取得
                Gl.glGetDoublev(Gl.GL_MODELVIEW_MATRIX, modelview);

                //透視投影行列取得
                Gl.glGetDoublev(Gl.GL_PROJECTION_MATRIX, projection);
                //ビューポート取得
                Gl.glGetIntegerv(Gl.GL_VIEWPORT, viewport);
                //座標変換の計算
                Glu.gluProject(lengthX, 0.0, 0.0, modelview, projection, viewport, out winX, out winY, out winZ);
                if (LblN != null)
                {
                    LblN.Left = (int)winX - LblN.Width;
                    LblN.Top  = (int)(viewCtlObj.Size.Height - winY) - LblN.Height;
                }
                //座標変換の計算
                Glu.gluProject(0.0, lengthY, 0.0, modelview, projection, viewport, out winX, out winY, out winZ);
                if (LblZ != null)
                {
                    LblZ.Left = (int)winX;
                    LblZ.Top  = (int)(viewCtlObj.Size.Height - winY);
                }
                Glu.gluProject(0.0, 0.0, lengthZ, modelview, projection, viewport, out winX, out winY, out winZ);
                if (LblE != null)
                {
                    LblE.Left = (int)winX - LblE.Width;
                    LblE.Top  = (int)(viewCtlObj.Size.Height - winY) - LblE.Height;
                }
            }
            catch (Exception ex)
            {
                Tracer.WriteError(" XYZ軸追加表示中にエラー発生 メッセージ {0} \r\n{1}", ex.Message.ToString(), ex.StackTrace.ToString());
            }
        }
        /// <summary>
        /// XYZ軸描画
        /// </summary>
        /// <param name="lengthX">X軸線長</param>
        /// <param name="colorX">X軸線色</param>
        /// <param name="lengthY">Y軸線長</param>
        /// <param name="colorY">Y軸線色</param>
        /// <param name="lengthZ">Z軸線長</param>
        /// <param name="colorZ">Z軸線色</param>
        protected void DrowXYZAxis(float lengthX, OpenGLColor_Bean colorX, float lengthY, OpenGLColor_Bean colorY, float lengthZ, OpenGLColor_Bean colorZ)
        {
            try
            {
                /// XYZ軸追加表示
                DrowXYZAxisSub(lengthX, colorX, lengthY, colorY, lengthZ, colorZ);

                //X軸線
                Gl.glBegin(Gl.GL_LINES);
                {
                    Gl.glColor3f(colorX.Red, colorX.Green, colorX.Blue);
                    Gl.glVertex3f(0f, 0f, 0f);
                    Gl.glVertex3f(lengthX, 0f, 0f);
                }
                Gl.glEnd();
                //Y軸線
                Gl.glBegin(Gl.GL_LINES);
                {
                    Gl.glColor3f(colorY.Red, colorY.Green, colorY.Blue);
                    Gl.glVertex3f(0f, 0f, 0f);
                    Gl.glVertex3f(0f, lengthY, 0f);
                }
                Gl.glEnd();
                //Z軸線
                Gl.glBegin(Gl.GL_LINES);
                {
                    Gl.glColor3f(colorZ.Red, colorZ.Green, colorZ.Blue);
                    Gl.glVertex3f(0f, 0f, 0f);
                    Gl.glVertex3f(0f, 0f, lengthZ);
                }
                Gl.glEnd();
            }
            catch (Exception ex)
            {
                Tracer.WriteError("XYZ軸描画中にエラー発生 メッセージ {0} \r\n{1}", ex.Message.ToString(), ex.StackTrace.ToString());
            }
        }
 /// <summary>
 /// XYZ軸追加表示
 /// </summary>
 /// <param name="lengthX">X軸線長</param>
 /// <param name="colorX">X軸線色</param>
 /// <param name="lengthY">Y軸線長</param>
 /// <param name="colorY">Y軸線色</param>
 /// <param name="lengthZ">Z軸線長</param>
 /// <param name="colorZ">Z軸線色</param>
 protected virtual void DrowXYZAxisSub(float lengthX, OpenGLColor_Bean colorX, float lengthY, OpenGLColor_Bean colorY, float lengthZ, OpenGLColor_Bean colorZ)
 {
 }