/// <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) { }