using System; using System.Drawing; using System.Windows.Forms; using System.IO; using System.Collections.Generic; using System.Text; using STL_Tools; using OpenTK.Graphics.OpenGL; using OpenTK; using CeVIO.Talk.RemoteService; using Mouse_Orbit; //using OpenCvSharp; //using OpenCvSharp.Extensions; using AForge.Video; using AForge.Video.DirectShow; using Vortice.XInput; //using System.Runtime.InteropServices; namespace STLViewer { public partial class AppMainForm : Form { //for VOCALOID public Talker talker = new Talker(); public int vocalflag = 0; /// ///// /// // /// // /// // /// // // VOCALOID // /// // /// // /// // /// // /// // /// //private void button40_Click(object sender, EventArgs e) // { // timer1.Enabled = false; // if (vocalflag == 0) // { // ServiceControl.StartHost(false); // button40.BackColor = Color.Red; // talker.Cast = "さとうささら"; // talker.Volume = 100; // talker.ToneScale = 100; // SpeakingState state = talker.Speak("登場しました よろしくね"); // vocalflag = 1; // button40.BackgroundImage = bmp_button[26]; // button40.Size = new Size(200, 200); // } // else // { // talkone(); // } // timer1.Enabled = true; //} //private void talkone() // { // if (vocalflag < 1) { return; } // string talk = "だ"; // int select = rnd.Next(10); // switch (select) // { // case 0: talk = "どんつくつくばんばん"; break; // case 1: talk = "ぽんぶぶぶわー"; break; // case 2: talk = "ぷんととと"; break; // case 3: talk = "ねんねん"; break; // case 4: talk = "みゅん"; break; // case 5: talk = "ぽんだよだよ"; break; // case 6: talk = "ねんねここががが"; break; // case 7: talk = "よんじゃんげん"; break; // case 8: talk = "あんもんさん"; break; // case 9: talk = "でんぼん"; break; // } //////////////////////////////////////////////// // talker.ToneScale = (uint)rnd.Next(100); // SpeakingState state = talker.Speak(talk); //////////////////////////////////////////////// // (例)再生 // state.Wait(); // (例)音素データをトレース出力 // PhonemeData[] phonemes = talker.GetPhonemes("はじめましてですね"); // foreach (var phoneme in phonemes) // { // System.Diagnostics.Trace.WriteLine("" + phoneme.Phoneme + " " + phoneme.StartTime + " " + phoneme.EndTime); // } // 【CeVIO Creative Studio】終了 // ServiceControl.CloseHost(); // } public string filefolder = ""; // public NextMidi.MidiPort.Output.MidiOutPort port = new MidiOutPort(0); // DANCING private System.Media.SoundPlayer player = null; string soundfile = @"D:\STLdata\dance.wav"; public int dancetimer = 500; public int joy_1pL = 0; public int joy_1pR = 0; public float scale_1P = 0.5f; public int leftx1 = 0; public int lefty1 = 0; public int rightx1 = 0; public int righty1 = 0; public int posx1 = -400; public int posy1 = -200; public int posz1 = 0; public int rotx1 = -44; public int roty1 = 64; public int acc_1P = 0; public int acc_2P = 0; public int danceflag = 0; public int dancebeat = 0; public int dancetimeprev = 0; public int dancebar = 0, danceperc = 0, barperc = 0; public int joy_2pL = 0; public int joy_2pR = 0; public float scale_2P = 0.5f; public int leftx2 = 0; public int lefty2 = 0; public int rightx2 = 0; public int righty2 = 0; public int posx2 = +400; public int posy2 = -200; public int posz2 = 0; public int rotx2 = +44; public int roty2 = 64; public string[] bbs_message; public int bbscounter = 0; //model number public int compnum = 0; public int compcallmax = 18; public int compser = 0; // steering flat public int steerflag = 0; // 0 stop, 1 up, 2 down public int steerflagB = 0; public int steerflagC = 0; public int steerflagD = 0; public int steerflagE = 0; public int steerflagF = 0; public int steerflagG = 0; public int steerflagD2 = 0; public int steerflagE2 = 0; public int steerflagF2 = 0; public int steerflagG2 = 0; public int leg1flag = 0, leg2flag = 0, leg3flag = 0, leg4flag = 0; public int wheelflag = 0; public int rotateflag = 0; public int rotateflag2 = 0; public int rotateflag3 = 0; public int ovalflag = 0; public int paraflag = 0; public int dummyflag = 0; public int normalcycleflag = 0; public int finalrotateflag = 0; public int ev003flag = 0; public int ev005flag = 0; public int ev008flag = 0; public int ev013flag = 0; public int ev014flag = 0; public int killerflag = 0; public int controllerON = 0; //Mp4Player // public VideoCapture vcap; // tracer public int tracemode = 0; public int[,] tracearray = new int[640, 480]; public int traceX = 320, traceY = 240; public int trac_eon = 0; public int evflag = 0; //Joystick public int joyport = -1; public int joyport2 = -1; public int pushbutton = 0; public int direction = 0; public float joyangle = 0; public float speed = 0.4f; // for accleration, steering // added to WEBCAM // private FilterInfoCollection videoDevices; private VideoCaptureDevice videoDevice; private VideoCapabilities[] videoCapabilities; public Bitmap canvasCAM = new Bitmap(640, 480); public Bitmap bitmapin = new Bitmap(640, 480); // public Bitmap canvasCAMcloneclone = new Bitmap(1280, 720); // public Bitmap texture_bmp2= new Bitmap(1280, 720); public byte[] saveData = new byte[4 * 1920 * 1080]; // to save oepnGL public byte[] importData = new byte[3 * 640 * 480]; // to camera capture public int camflag = 0; public int countertimer = 0; public uint texnum2, texnum_col2; public int mainstreamstop = 0; public int skipflag = 0; public int persemode = 0; /// white = ch1 //para(頂点),norm(法線) , red = ch2, green = ch3, blue = ch4, pink = ch5,yellow = ch6,black=ch7 // FLOAT angle parameter ser1_A , ser1_AX , ser1_AY , ser1_AZ , ser1_XX, ser1_YY, ser1_ZZ etc. // FLOAT para(頂点),norm(法線) , para_ser_ch1,norm1_ser1_ch1 etc. // INT fileflag = new int[8,13]; // ch1,ser1 (from 1 to ..) // DOUBLE col1R,col1G,col1B,col1alpha etc. /// STL arrays /// public int[,] fileflag = new int[13, 8]; // ser1,ch1 (from 1 to ..) public int[,] seqfileflag = new int[31, 3]; // ser1,ch1 (from 1 to ..) // angle parameter public float ser1_A = 0, ser1_AX = 0, ser1_AY = 0, ser1_AZ = 0, ser1_XX = 0, ser1_YY = 0, ser1_ZZ = 0; // mainframe = ser1 public float ser2_A = 0, ser2_AX = 0, ser2_AY = 0, ser2_AZ = 0, ser2_XX = 0, ser2_YY = 0, ser2_ZZ = 0; // Front1, frame = ser2 public float ser3_A = 0, ser3_AX = 0, ser3_AY = 0, ser3_AZ = 0, ser3_XX = 0, ser3_YY = 0, ser3_ZZ = 0; // Front1, wheel = ser3 public float ser4_A = 0, ser4_AX = 0, ser4_AY = 0, ser4_AZ = 0, ser4_XX = 0, ser4_YY = 0, ser4_ZZ = 0; // Front2, frame = ser4 public float ser5_A = 0, ser5_AX = 0, ser5_AY = 0, ser5_AZ = 0, ser5_XX = 0, ser5_YY = 0, ser5_ZZ = 0; // Front2, wheel = ser5 public float ser6_A = 0, ser6_AX = 0, ser6_AY = 0, ser6_AZ = 0, ser6_XX = 0, ser6_YY = 0, ser6_ZZ = 0; // Rear3, frame = ser6 public float ser7_A = 0, ser7_AX = 0, ser7_AY = 0, ser7_AZ = 0, ser7_XX = 0, ser7_YY = 0, ser7_ZZ = 0; // Rear3, wheel = ser7 public float ser8_A = 0, ser8_AX = 0, ser8_AY = 0, ser8_AZ = 0, ser8_XX = 0, ser8_YY = 0, ser8_ZZ = 0; // Rear4, frame = ser8 public float ser9_A = 0, ser9_AX = 0, ser9_AY = 0, ser9_AZ = 0, ser9_XX = 0, ser9_YY = 0, ser9_ZZ = 0; // Rear5, wheel =ser9 public float serA_A = 0, serA_AX = 0, serA_AY = 0, serA_AZ = 0, serA_XX = 0, serA_YY = 0, serA_ZZ = 0; // frame = serA public float serB_A = 0, serB_AX = 0, serB_AY = 0, serB_AZ = 0, serB_XX = 0, serB_YY = 0, serB_ZZ = 0; // frame = serB ////para(頂点),norm(法線) arrays // mainframe = ser1 public float[] para_ser1_ch1; public float[] norm_ser1_ch1; public float[] para_ser1_ch2; public float[] norm_ser1_ch2; public float[] para_ser1_ch3; public float[] norm_ser1_ch3; public float[] para_ser1_ch4; public float[] norm_ser1_ch4; public float[] para_ser1_ch5; public float[] norm_ser1_ch5; public float[] para_ser1_ch6; public float[] norm_ser1_ch6; public float[] para_ser1_ch7; public float[] norm_ser1_ch7; // Front1, frame = ser2 public float[] para_ser2_ch1; public float[] norm_ser2_ch1; public float[] para_ser2_ch2; public float[] norm_ser2_ch2; public float[] para_ser2_ch3; public float[] norm_ser2_ch3; public float[] para_ser2_ch4; public float[] norm_ser2_ch4; public float[] para_ser2_ch5; public float[] norm_ser2_ch5; public float[] para_ser2_ch6; public float[] norm_ser2_ch6; public float[] para_ser2_ch7; public float[] norm_ser2_ch7; // Front1, wheel = ser3 public float[] para_ser3_ch1; public float[] norm_ser3_ch1; public float[] para_ser3_ch2; public float[] norm_ser3_ch2; public float[] para_ser3_ch3; public float[] norm_ser3_ch3; public float[] para_ser3_ch4; public float[] norm_ser3_ch4; public float[] para_ser3_ch5; public float[] norm_ser3_ch5; public float[] para_ser3_ch6; public float[] norm_ser3_ch6; public float[] para_ser3_ch7; public float[] norm_ser3_ch7; // Front2, frame = ser4 public float[] para_ser4_ch1; public float[] norm_ser4_ch1; public float[] para_ser4_ch2; public float[] norm_ser4_ch2; public float[] para_ser4_ch3; public float[] norm_ser4_ch3; public float[] para_ser4_ch4; public float[] norm_ser4_ch4; public float[] para_ser4_ch5; public float[] norm_ser4_ch5; public float[] para_ser4_ch6; public float[] norm_ser4_ch6; public float[] para_ser4_ch7; public float[] norm_ser4_ch7; // Front2, wheel = ser5 public float[] para_ser5_ch1; public float[] norm_ser5_ch1; public float[] para_ser5_ch2; public float[] norm_ser5_ch2; public float[] para_ser5_ch3; public float[] norm_ser5_ch3; public float[] para_ser5_ch4; public float[] norm_ser5_ch4; public float[] para_ser5_ch5; public float[] norm_ser5_ch5; public float[] para_ser5_ch6; public float[] norm_ser5_ch6; public float[] para_ser5_ch7; public float[] norm_ser5_ch7; // Rear3, frame = ser6 public float[] para_ser6_ch1; public float[] norm_ser6_ch1; public float[] para_ser6_ch2; public float[] norm_ser6_ch2; public float[] para_ser6_ch3; public float[] norm_ser6_ch3; public float[] para_ser6_ch4; public float[] norm_ser6_ch4; public float[] para_ser6_ch5; public float[] norm_ser6_ch5; public float[] para_ser6_ch6; public float[] norm_ser6_ch6; public float[] para_ser6_ch7; public float[] norm_ser6_ch7; // Rear3, wheel = ser7 public float[] para_ser7_ch1; public float[] norm_ser7_ch1; public float[] para_ser7_ch2; public float[] norm_ser7_ch2; public float[] para_ser7_ch3; public float[] norm_ser7_ch3; public float[] para_ser7_ch4; public float[] norm_ser7_ch4; public float[] para_ser7_ch5; public float[] norm_ser7_ch5; public float[] para_ser7_ch6; public float[] norm_ser7_ch6; public float[] para_ser7_ch7; public float[] norm_ser7_ch7; // Rear4, frame = ser8 public float[] para_ser8_ch1; public float[] norm_ser8_ch1; public float[] para_ser8_ch2; public float[] norm_ser8_ch2; public float[] para_ser8_ch3; public float[] norm_ser8_ch3; public float[] para_ser8_ch4; public float[] norm_ser8_ch4; public float[] para_ser8_ch5; public float[] norm_ser8_ch5; public float[] para_ser8_ch6; public float[] norm_ser8_ch6; public float[] para_ser8_ch7; public float[] norm_ser8_ch7; // Rear5, wheel =ser9 public float[] para_ser9_ch1; public float[] norm_ser9_ch1; public float[] para_ser9_ch2; public float[] norm_ser9_ch2; public float[] para_ser9_ch3; public float[] norm_ser9_ch3; public float[] para_ser9_ch4; public float[] norm_ser9_ch4; public float[] para_ser9_ch5; public float[] norm_ser9_ch5; public float[] para_ser9_ch6; public float[] norm_ser9_ch6; public float[] para_ser9_ch7; public float[] norm_ser9_ch7; // NECK, frame = serA public float[] para_serA_ch1; public float[] norm_serA_ch1; public float[] para_serA_ch2; public float[] norm_serA_ch2; public float[] para_serA_ch3; public float[] norm_serA_ch3; public float[] para_serA_ch4; public float[] norm_serA_ch4; public float[] para_serA_ch5; public float[] norm_serA_ch5; public float[] para_serA_ch6; public float[] norm_serA_ch6; public float[] para_serA_ch7; public float[] norm_serA_ch7; // NECK, frame = serB public float[] para_serB_ch1; public float[] norm_serB_ch1; public float[] para_serB_ch2; public float[] norm_serB_ch2; public float[] para_serB_ch3; public float[] norm_serB_ch3; public float[] para_serB_ch4; public float[] norm_serB_ch4; public float[] para_serB_ch5; public float[] norm_serB_ch5; public float[] para_serB_ch6; public float[] norm_serB_ch6; public float[] para_serB_ch7; public float[] norm_serB_ch7; ////para(頂点),norm(法線) arrays // mainframe = ser1 public float[] para_ser1_ch1_ref; public float[] norm_ser1_ch1_ref; public float[] para_ser1_ch2_ref; public float[] norm_ser1_ch2_ref; public float[] para_ser1_ch3_ref; public float[] norm_ser1_ch3_ref; public float[] para_ser1_ch4_ref; public float[] norm_ser1_ch4_ref; public float[] para_ser1_ch5_ref; public float[] norm_ser1_ch5_ref; public float[] para_ser1_ch6_ref; public float[] norm_ser1_ch6_ref; public float[] para_ser1_ch7_ref; public float[] norm_ser1_ch7_ref; // Front1, frame = ser2 public float[] para_ser2_ch1_ref; public float[] norm_ser2_ch1_ref; public float[] para_ser2_ch2_ref; public float[] norm_ser2_ch2_ref; public float[] para_ser2_ch3_ref; public float[] norm_ser2_ch3_ref; public float[] para_ser2_ch4_ref; public float[] norm_ser2_ch4_ref; public float[] para_ser2_ch5_ref; public float[] norm_ser2_ch5_ref; public float[] para_ser2_ch6_ref; public float[] norm_ser2_ch6_ref; public float[] para_ser2_ch7_ref; public float[] norm_ser2_ch7_ref; // Front1, wheel = ser3 public float[] para_ser3_ch1_ref; public float[] norm_ser3_ch1_ref; public float[] para_ser3_ch2_ref; public float[] norm_ser3_ch2_ref; public float[] para_ser3_ch3_ref; public float[] norm_ser3_ch3_ref; public float[] para_ser3_ch4_ref; public float[] norm_ser3_ch4_ref; public float[] para_ser3_ch5_ref; public float[] norm_ser3_ch5_ref; public float[] para_ser3_ch6_ref; public float[] norm_ser3_ch6_ref; public float[] para_ser3_ch7_ref; public float[] norm_ser3_ch7_ref; // Front2, frame = ser4 public float[] para_ser4_ch1_ref; public float[] norm_ser4_ch1_ref; public float[] para_ser4_ch2_ref; public float[] norm_ser4_ch2_ref; public float[] para_ser4_ch3_ref; public float[] norm_ser4_ch3_ref; public float[] para_ser4_ch4_ref; public float[] norm_ser4_ch4_ref; public float[] para_ser4_ch5_ref; public float[] norm_ser4_ch5_ref; public float[] para_ser4_ch6_ref; public float[] norm_ser4_ch6_ref; public float[] para_ser4_ch7_ref; public float[] norm_ser4_ch7_ref; // Front2, wheel = ser5 public float[] para_ser5_ch1_ref; public float[] norm_ser5_ch1_ref; public float[] para_ser5_ch2_ref; public float[] norm_ser5_ch2_ref; public float[] para_ser5_ch3_ref; public float[] norm_ser5_ch3_ref; public float[] para_ser5_ch4_ref; public float[] norm_ser5_ch4_ref; public float[] para_ser5_ch5_ref; public float[] norm_ser5_ch5_ref; public float[] para_ser5_ch6_ref; public float[] norm_ser5_ch6_ref; public float[] para_ser5_ch7_ref; public float[] norm_ser5_ch7_ref; // Rear3, frame = ser_ref6 public float[] para_ser6_ch1_ref; public float[] norm_ser6_ch1_ref; public float[] para_ser6_ch2_ref; public float[] norm_ser6_ch2_ref; public float[] para_ser6_ch3_ref; public float[] norm_ser6_ch3_ref; public float[] para_ser6_ch4_ref; public float[] norm_ser6_ch4_ref; public float[] para_ser6_ch5_ref; public float[] norm_ser6_ch5_ref; public float[] para_ser6_ch6_ref; public float[] norm_ser6_ch6_ref; public float[] para_ser6_ch7_ref; public float[] norm_ser6_ch7_ref; // Rear3, wheel = ser7 public float[] para_ser7_ch1_ref; public float[] norm_ser7_ch1_ref; public float[] para_ser7_ch2_ref; public float[] norm_ser7_ch2_ref; public float[] para_ser7_ch3_ref; public float[] norm_ser7_ch3_ref; public float[] para_ser7_ch4_ref; public float[] norm_ser7_ch4_ref; public float[] para_ser7_ch5_ref; public float[] norm_ser7_ch5_ref; public float[] para_ser7_ch6_ref; public float[] norm_ser7_ch6_ref; public float[] para_ser7_ch7_ref; public float[] norm_ser7_ch7_ref; // Rear4, frame = ser8 public float[] para_ser8_ch1_ref; public float[] norm_ser8_ch1_ref; public float[] para_ser8_ch2_ref; public float[] norm_ser8_ch2_ref; public float[] para_ser8_ch3_ref; public float[] norm_ser8_ch3_ref; public float[] para_ser8_ch4_ref; public float[] norm_ser8_ch4_ref; public float[] para_ser8_ch5_ref; public float[] norm_ser8_ch5_ref; public float[] para_ser8_ch6_ref; public float[] norm_ser8_ch6_ref; public float[] para_ser8_ch7_ref; public float[] norm_ser8_ch7_ref; // Rear5, wheel =ser9 public float[] para_ser9_ch1_ref; public float[] norm_ser9_ch1_ref; public float[] para_ser9_ch2_ref; public float[] norm_ser9_ch2_ref; public float[] para_ser9_ch3_ref; public float[] norm_ser9_ch3_ref; public float[] para_ser9_ch4_ref; public float[] norm_ser9_ch4_ref; public float[] para_ser9_ch5_ref; public float[] norm_ser9_ch5_ref; public float[] para_ser9_ch6_ref; public float[] norm_ser9_ch6_ref; public float[] para_ser9_ch7_ref; public float[] norm_ser9_ch7_ref; // NECK, frame = serA public float[] para_serA_ch1_ref; public float[] norm_serA_ch1_ref; public float[] para_serA_ch2_ref; public float[] norm_serA_ch2_ref; public float[] para_serA_ch3_ref; public float[] norm_serA_ch3_ref; public float[] para_serA_ch4_ref; public float[] norm_serA_ch4_ref; public float[] para_serA_ch5_ref; public float[] norm_serA_ch5_ref; public float[] para_serA_ch6_ref; public float[] norm_serA_ch6_ref; public float[] para_serA_ch7_ref; public float[] norm_serA_ch7_ref; // NECK, frame = serB public float[] para_serB_ch1_ref; public float[] norm_serB_ch1_ref; public float[] para_serB_ch2_ref; public float[] norm_serB_ch2_ref; public float[] para_serB_ch3_ref; public float[] norm_serB_ch3_ref; public float[] para_serB_ch4_ref; public float[] norm_serB_ch4_ref; public float[] para_serB_ch5_ref; public float[] norm_serB_ch5_ref; public float[] para_serB_ch6_ref; public float[] norm_serB_ch6_ref; public float[] para_serB_ch7_ref; public float[] norm_serB_ch7_ref; public int[] savesgview = new int[3 * 500 * 500 * 50]; public int pixselect = 0; public int yokopix = 1; public int tatepix = 1; public int sgflag = 0; public int allpix = 1; public byte[] srcValues; public Bitmap canvask; public int canvas_yoko = 512, canvas_tate = 512; public int framesize = 512; public int framesizeY = 512; public int pickdispflag = 0; public int vertcount = 0; public int seqfilenum = -1; public string onlypath; public string onlyname; //toread PLY file x,y,z,nx,ny,nz,r,g,b, //public int plydatanum = 0; //public float[] plynorm; //public float[] plypara; //public int[] plyRed, plyGreen, plyBlue; //public int plyflag = 0; //toread PCD public int pcdflag = 0; public int objscale = 0; //toread OBJ public double[] textureArray; public double[] texture_parameterArray; public double[] texture_normalArray; public int textureflag = 0; public int texturedispflag = 1; public int textureskipflag = 0; public int f_count = 0; public float scale_ftex = 300.0f; public int v_count = 0; public int vn_count = 0; public int vt_count = 0; public Bitmap texture_bmp; List textureid = new List(); public int prevtime = 0; public int nowtime = 0; public int fpstime = 0; //colortables, default value public double col1R = 35, col1G = 35, col1B = 35, col1alpha = 1.0; public double col2R = 35, col2G = 00, col2B = 00, col2alpha = 1.0; public double col3R = 00, col3G = 35, col3B = 00, col3alpha = 1.0; public double col4R = 00, col4G = 00, col4B = 35, col4alpha = 1.0; public double col5R = 35, col5G = 15, col5B = 15, col5alpha = 1.0; public double col6R = 35, col6G = 35, col6B = 02, col6alpha = 1.0; public double col7R = 15, col7G = 18, col7B = 12, col7alpha = 1.0; public double col1R_ref = 35, col1G_ref = 35, col1B_ref = 35; public double col2R_ref = 35, col2G_ref = 00, col2B_ref = 00; public double col3R_ref = 00, col3G_ref = 35, col3B_ref = 00; public double col4R_ref = 00, col4G_ref = 00, col4B_ref = 35; public double col5R_ref = 35, col5G_ref = 15, col5B_ref = 15; public double col6R_ref = 35, col6G_ref = 35, col6B_ref = 02; public double col7R_ref = 15, col7G_ref = 18, col7B_ref = 12; public double col1alpha_ref = 1.0; public double col2alpha_ref = 1.0; public double col3alpha_ref = 1.0; public double col4alpha_ref = 1.0; public double col5alpha_ref = 1.0; public double col6alpha_ref = 1.0; public double col7alpha_ref = 1.0; // channel visibility on/off public int ch1flag = 0, ch2flag = 0, ch3flag = 0, ch4flag = 0, ch5flag = 0, ch6flag = 0, ch7flag = 0; // transparent factor public double transalpha = 1.0; // series visibility on/off public int ser1flag = 0, ser2flag = 0, ser3flag = 0, ser4flag = 0, ser5flag = 0, ser6flag = 0, ser7flag = 0, ser8flag = 0, ser9flag = 0, serAflag = 0, serBflag = 0; //deformity public int deformflag = 0; public int deformangle = 0; // arrary for sub-frame public float[] parameterArray_frame; //頂点 public float[] normalArray_frame; //法線 public float[] parameterArray_frame_ref; //頂点 public float[] normalArray_frame_ref; //法線 // /// texture //// public uint texnum; // // location of files// string filepath = @"D:\"; // file exits? mode changes? flags.. public int rtfflag = 0; // rtf available public int mp4flag = 0; // mp4 available public int openpdf = 0; // pdf available public string rtfFile; // filename rtf public string mp4File; // filename mp4 public string pdffile; // filename pdf public int pdfflag = 0; // pdf mode public int stlflag = 0; // into stl mode public string objfile; // filename pdf public string texfile; // filename pdf public int titleflag = 0; // front title flag // meemory for mouse trase private Orbiter orb; STL_Tools.Vector3 minPos = new STL_Tools.Vector3(); STL_Tools.Vector3 maxPos = new STL_Tools.Vector3(); public float diff_PanX = 0, diff_PanY = 0, diff_PanZ = 0; public float diff_angle = 0, diff_ox = 0, diff_oy = 0, diff_oz = 0; //off set for frame stl public float offa = 0.0f, offx = 0.0f, offy = 0.0f, offz = 0.0f; public int offXX = 0, offYY = 0, offZZ = 0; public int PanXold = 0, PanYold = 0; public float OrbAngleold = 0.0f, OrbXold = 0.0f, OrbYold = 0.0f, OrbZold = 0.0f; public int PanX_norm = 0, PanY_norm = 0, PanZ_norm = 0; public int PanX_obj = 0, PanY_obj = 0, PanZ_obj = 0; public float OrbAngle_norm = 0.0f, OrbX_norm = 0.0f, OrbY_norm = 0.0f, OrbZ_norm = 0.0f; public float OrbAngle_obj = 0.0f, OrbX_obj = 0.0f, OrbY_obj = 0.0f, OrbZ_obj = 0.0f; public float scalf1_norm = 1.0f, scalf2_norm = 1.0f; public float scalf1_obj = 1.0f, scalf2_obj = 1.0f; public int illum_norm = 20, illum_obj = 20; public int seqflag = 0; public int seqnow = -1; public int seqmax = -1; public int seqplayflag = 0; //off set for steer stl public float steerA2 = 0.0f; public float steerB2 = 0.0f; public float steerC2 = 0.0f; public float steerD2 = 0.0f; public float steerE2 = 0.0f; public float steerF2 = 0.0f; public float steerG2 = 0.0f; public float steerA = 0.0f, steerAX = 0.0f, steerAY = 0.0f, steerAZ = 0.0f; public float steerAXX = 0, steerAYY = 0, steerAZZ = 0; public float steerB = 0.0f, steerBX = 0.0f, steerBY = 0.0f, steerBZ = 0.0f; public float steerBXX = 0, steerBYY = 0, steerBZZ = 0; public float steerC = 0.0f, steerCX = 0.0f, steerCY = 0.0f, steerCZ = 0.0f; public float steerCXX = 0, steerCYY = 0, steerCZZ = 0; public float steerD = 0.0f, steerDX = 0.0f, steerDY = 0.0f, steerDZ = 0.0f; public float steerDXX = 0, steerDYY = 0, steerDZZ = 0; public float steerE = 0.0f, steerEX = 0.0f, steerEY = 0.0f, steerEZ = 0.0f; private void button10_Click(object sender, EventArgs e) { GL.Finish(); if (videoDevice.IsRunning) { videoDevice.SignalToStop(); videoDevice.WaitForStop(); videoDevice.NewFrame -= videoDevice_NewFrame; } Application.Exit(); } private void button8_Click(object sender, EventArgs e) { GL.Finish(); if (videoDevice.IsRunning) { videoDevice.SignalToStop(); videoDevice.WaitForStop(); videoDevice.NewFrame -= videoDevice_NewFrame; } Application.Exit(); } private void button7_Click(object sender, EventArgs e) { if (erasemode == 0) { erasemode = 1; button7.BackColor = butcolor; disp_items(false); button7.Visible = true; button8.Visible = true; this.TransparencyKey = Color.Black; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.None; } else { erasemode = 0; button7.BackColor = Color.Red; disp_items(true); this.TransparencyKey = Color.Transparent; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.Fixed3D; } } private void button9_Click(object sender, EventArgs e) { if (erasemode == 0) { erasemode = 1; button9.BackColor = butcolor; disp_items(false); button9.Visible = true; button10.Visible = true; this.TransparencyKey = Color.Black; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.None; } else { erasemode = 0; button9.BackColor = Color.Red; disp_items(true); this.TransparencyKey = Color.Transparent; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.Fixed3D; } } private void button11_Click(object sender, EventArgs e) { disp_items(false); button11.Visible = true; textBox2.Visible = true; button3.Visible = true; button4.Visible = true; textBox2.Multiline = true; textBox2.ForeColor = Color.White; textBox2.BackColor = Color.Black; textBox2.BringToFront(); textBox2.Left = 120; textBox2.Top = 0; textBox2.Size = new System.Drawing.Size(440, 80); textBox2.Text = textBox2.Text + bbscounter.ToString() + "EOF" + "\r\n"; button11.BackColor = Color.Black; textBox2.Visible = true; this.Width = 500; this.Height = 120; Array.Resize(ref bbs_message, 5000); if (vocalflag == 0) { ServiceControl.StartHost(false); talker.Cast = "さとうささら"; talker.Volume = 100; talker.ToneScale = 100; string talkstring = "やほ"; DateTime dt = DateTime.Now; switch (dt.Second % 10) { case 0: talkstring="うーん 今日はやるきないぞ"; break; case 1: talkstring="よしよし はりきって"; break; case 2: talkstring="さっき猫がいた びっくり"; break; case 3: talkstring="頑張るだけが とりえです"; break; case 4: talkstring="まじめです ほんと"; break; case 5: talkstring="そこそこがんばります"; break; case 6: talkstring="しょうがないなあ"; break; case 7: talkstring="なんでよんだのかなぁ"; break; case 8: talkstring="いぇーす あいむ れでぃ"; break; case 9: talkstring="登場 じゃじゃん"; break; } textBox2.Text = talkstring; SpeakingState stat9 = talker.Speak(talkstring); vocalflag = 1; } filefolder = @"D:\MIDIplayer\"; if (System.IO.Directory.Exists(filefolder)) { //d: okay } else { filefolder = @"C:\MIDIplayer\"; if (System.IO.Directory.Exists(filefolder)) { } else { MessageBox.Show("cannot find main Directory", "error", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } } try { string url = "https://www.satoshi-celica.com/bbs/messagedout.txt"; string fileName = filefolder + "intro\\" + "dload_bbs.txt"; System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse)webreq.GetResponse(); System.IO.Stream strm = webres.GetResponseStream(); System.IO.FileStream fs = new System.IO.FileStream( fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); byte[] readData = new byte[1024]; for (; ; ) { int readSize = strm.Read(readData, 0, readData.Length); if (readSize == 0) { break; } fs.Write(readData, 0, readSize); } fs.Close(); strm.Close(); // textBox2.Text = textBox2.Text + "file from WEB \r\b"; // textBox2.Text = textBox2.Text + url + "\r\n"; // textBox2.Text = textBox2.Text + fileName + "\r\n"; int maxchara = 20; int counter = 0; if (File.Exists(fileName)) { using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { var reader = new StreamReader(stream, Encoding.UTF8); { while (!reader.EndOfStream) { string textin = reader.ReadLine(); string[] fields0 = textin.Split(','); string[] fields1 = fields0[1].Split('\''); string fintext = fields1[1]; if (fintext.Length > maxchara) { fintext = fintext.Substring(0, maxchara); } bbs_message[counter] = fintext; counter++; if (counter > 5000) { button11.BackColor = Color.Red; button11.Text = "overflow"; timer1.Enabled = false; return; } // textBox2.Text = textBox2.Text + fintext + "\r\n"; } } } } bbscounter = counter; timer1.Enabled = true; timer1.Interval = 1500; this.TransparencyKey = Color.Black; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.None; } catch (Exception me) { button11.Text = "ERROR: " + me.Message; button11.BackColor = Color.Red; return; } return; } private void timer1_Tick(object sender, EventArgs e) { if (bbscounter < 1) { return; } this.TopMost = true; this.Focus(); this.BringToFront(); string []prev_bbs = new string[5000]; for (int i = 0; i < bbscounter; i++) { prev_bbs[i] = bbs_message[i]; } int prev_counter = bbscounter; try { string url = "https://www.satoshi-celica.com/bbs/messagedout.txt"; string fileName = filefolder + "intro\\" + "dload_bbs.txt"; System.Net.HttpWebRequest webreq = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); System.Net.HttpWebResponse webres = (System.Net.HttpWebResponse)webreq.GetResponse(); System.IO.Stream strm = webres.GetResponseStream(); System.IO.FileStream fs = new System.IO.FileStream( fileName, System.IO.FileMode.Create, System.IO.FileAccess.Write); byte[] readData = new byte[1024]; for (; ; ) { int readSize = strm.Read(readData, 0, readData.Length); if (readSize == 0) { break; } fs.Write(readData, 0, readSize); } fs.Close(); strm.Close(); int maxchara = 20; int counter = 0; if (File.Exists(fileName)) { using (var stream = new FileStream(fileName, FileMode.Open, FileAccess.Read)) { var reader = new StreamReader(stream, Encoding.UTF8); { while (!reader.EndOfStream) { string textin = reader.ReadLine(); string[] fields0 = textin.Split(','); string[] fields1 = fields0[1].Split('\''); string fintext = fields1[1]; if (fintext.Length > maxchara) { fintext = fintext.Substring(0, maxchara); } bbs_message[counter] = fintext; counter++; if (counter > 5000) { button11.BackColor = Color.Red; button11.Text = "overflow"; timer1.Enabled = false; return; } // textBox2.Text = textBox2.Text + fintext + "\r\n"; } } } } bbscounter = counter; } catch (Exception me) { button11.Text = "ERROR: " + me.Message; button11.BackColor = Color.Red; return; } for (int i = 0; i < bbscounter; i++) { prev_bbs[i] = bbs_message[i]; } if( prev_counter != bbscounter) { textBox2.Text = ""; for (int k=prev_counter; k < bbscounter; k++) { textBox2.Text = textBox2.Text + bbs_message[k] + "\r\n"; if(vocalflag>0) { talker.Volume = (uint)(numericUpDown1.Value * 10); talker.ToneScale = (uint)(numericUpDown1.Value*10); SpeakingState state = talker.Speak(bbs_message[k]); } } } if (button11.BackColor == Color.Black) { button11.BackColor = Color.Gray; } else { button11.BackColor = Color.Black; } } private void textBox2_TextChanged(object sender, EventArgs e) { } private void button6_Click(object sender, EventArgs e) { GL.Finish(); if (videoDevice.IsRunning) { videoDevice.SignalToStop(); videoDevice.WaitForStop(); videoDevice.NewFrame -= videoDevice_NewFrame; } Application.Exit(); } private void button5_Click(object sender, EventArgs e) { if (erasemode == 0) { erasemode = 1; button5.BackColor = butcolor; disp_items(false); button5.Visible = true; button6.Visible = true; this.TransparencyKey = Color.Black; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.None; } else { erasemode = 0; button5.BackColor = Color.Red; disp_items(true); this.TransparencyKey = Color.Transparent; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.Fixed3D; } } public float steerEXX = 0, steerEYY = 0, steerEZZ = 0; public float steerF = 0.0f, steerFX = 0.0f, steerFY = 0.0f, steerFZ = 0.0f; public float steerFXX = 0, steerFYY = 0, steerFZZ = 0; public Color butcolor = Color.LightBlue; public Color frontcolor = Color.Blue; public int erasemode = 0; //button display private void button4_Click_1(object sender, EventArgs e) { if (erasemode==0) { erasemode = 1; button4.BackColor = butcolor; disp_items(false); button4.Visible = true; button3.Visible = true; this.TransparencyKey = Color.Black; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.None; } else { erasemode = 0; button4.BackColor = Color.Red; disp_items(true); this.TransparencyKey = Color.Transparent; this.Opacity = 0.7; this.FormBorderStyle = FormBorderStyle.Fixed3D; } } public float steerG = 0.0f, steerGX = 0.0f, steerGY = 0.0f, steerGZ = 0.0f; public float steerGXX = 0, steerGYY = 0, steerGZZ = 0; public float steerAX_ref = 0.0f, steerAY_ref = 0.0f, steerAZ_ref = 0.0f; public float steerAXX_ref = 0, steerAYY_ref = 0, steerAZZ_ref = 0; private void label86_Click(object sender, EventArgs e) { } public float wheel1A2 = 0.0f, wheel2A2 = 0.0f, wheel3A2 = 0.0f, wheel4A2 = 0.0f; public float wheel1A = 0.0f, wheel1AX = 0.0f, wheel1AY = 0.0f, wheel1AZ = 0.0f; public float wheel1XX = 0, wheel1YY = 0, wheel1ZZ = 0; public float wheel2A = 0.0f, wheel2AX = 0.0f, wheel2AY = 0.0f, wheel2AZ = 0.0f; public float wheel2XX = 0, wheel2YY = 0, wheel2ZZ = 0; public float wheel3A = 0.0f, wheel3AX = 0.0f, wheel3AY = 0.0f, wheel3AZ = 0.0f; public float wheel3XX = 0, wheel3YY = 0, wheel3ZZ = 0; public float wheel4A = 0.0f, wheel4AX = 0.0f, wheel4AY = 0.0f, wheel4AZ = 0.0f; public float wheel4XX = 0, wheel4YY = 0, wheel4ZZ = 0; public float leg1A = 0, leg1AX = 0, leg1AY = 0, leg1AZ = 0, leg1XX = 0, leg1YY = 0, leg1ZZ = 0; public float leg2A = 0, leg2AX = 0, leg2AY = 0, leg2AZ = 0, leg2XX = 0, leg2YY = 0, leg2ZZ = 0; public float leg3A = 0, leg3AX = 0, leg3AY = 0, leg3AZ = 0, leg3XX = 0, leg3YY = 0, leg3ZZ = 0; public float leg4A = 0, leg4AX = 0, leg4AY = 0, leg4AZ = 0, leg4XX = 0, leg4YY = 0, leg4ZZ = 0; public float leg1A2 = 0, leg2A2 = 0, leg3A2 = 0, leg4A2 = 0; public float wheel1AX_ref = 0.0f, wheel1AY_ref = 0.0f, wheel1AZ_ref = 0.0f; public float wheel1XX_ref = 0, wheel1YY_ref = 0, wheel1ZZ_ref = 0; public float wheel2AX_ref = 0.0f, wheel2AY_ref = 0.0f, wheel2AZ_ref = 0.0f; public float wheel2XX_ref = 0, wheel2YY_ref = 0, wheel2ZZ_ref = 0; public float wheel3AX_ref = 0.0f, wheel3AY_ref = 0.0f, wheel3AZ_ref = 0.0f; public float wheel3XX_ref = 0, wheel3YY_ref = 0, wheel3ZZ_ref = 0; public float wheel4AX_ref = 0.0f, wheel4AY_ref = 0.0f, wheel4AZ_ref = 0.0f; public float wheel4XX_ref = 0, wheel4YY_ref = 0, wheel4ZZ_ref = 0; public float willey = 0.0f; public int brakeflag = 0; /// for mouse move //// public bool monitorLoaded = false; public bool moveForm = false; public int moveOffsetX = 0; public int moveOffsetY = 0; public float scaling = 1.0f; // nochange // color table for main & steeringparts public double colA1 = 35.0, colA2 = 35.0, colA3 = 35.0; public double colB1 = 35.0, colB2 = 0.0, colB3 = 0.0; public double colC1 = 0.0, colC2 = 35.0, colC3 = 0.0; public double colD1 = 0.0, colD2 = 0.0, colD3 = 35.0; public double colE1 = 12.0, colE2 = 12.0, colE3 = 12.0; public double colF1 = 35.0, colF2 = 35.0, colF3 = 0.0; public double alphaA1 = 1.0, alphaB1 = 1.0, alphaC1 = 1.0, alphaD1 = 1.0, alphaE1 = 1.0, alphaF1 = 1.0; // for openGL public enum Ortho_Mode { CENTER, BLEFT }; /// STL file /// public int loadflag = 0; public int texflag = 0; public int mp4playflag = 0; public int whiteflag = 0, redflag = 0, blueflag = 0, greenflag = 0, pinkflag = 0, yellowflag = 0; public int whiteflag2 = 0, redflag2 = 0, blueflag2 = 0, greenflag2 = 0, pinkflag2 = 0, yellowflag2 = 0; public int frameflag = 0; // zooming factor public float scalf1 = 1.0f; // main & steeringframes public float scalf2 = 1.0f; // sub-frames // timer for picsscroll public int pictick = 0, picdir = 0; //series A public int pictick2 = 0, picdir2 = 0; //series B public int meshnum = 0; public int filemeshnum = 0; /// APPPLICATION MAIN ENTRY POINT /// APPPLICATION MAIN ENTRY POINT /// APPPLICATION MAIN ENTRY POINT public AppMainForm() { InitializeComponent(); orb = new Orbiter(); GL_Monitor.MouseDown += orb.Control_MouseDownEvent; GL_Monitor.MouseUp += orb.Control_MouseUpEvent; GL_Monitor.MouseWheel += orb.Control_MouseWheelEvent; GL_Monitor.KeyPress += orb.Control_KeyPress_Event; } // applicatino main load point private void Form1_Load(object sender, EventArgs e) { disp_items(true); //timer for memory check timer7.Interval = 1000; timer7.Enabled = true; // init bmp array for (int k = 0; k < 4 * 1920 * 1080; k++) { saveData[k] = 0; } for (int k = 0; k < 3 * 1280 * 720; k++) { // importData[k] = 0; } // webcam 1 load // button34.BackColor = Color.LightGray; button34.Text = "Cam:ch?"; try { videoDevices = new FilterInfoCollection(FilterCategory.VideoInputDevice); if (videoDevices.Count != 0) { comboBox1.Items.Clear(); foreach (FilterInfo device in videoDevices) { comboBox1.Items.Add(device.Name); } comboBox1.SelectedIndex = videoDevices.Count - 1; comboBox1.Enabled = true; } else { comboBox1.Items.Clear(); comboBox1.Items.Add("no devices"); comboBox1.SelectedIndex = 0; } } catch (Exception error) { button34.Text = "CamError"+error; button34.BackColor = Color.Red; } //added to webcam // // reset stl fileflag for (int i = 0; i < 13; i++) { for (int j = 0; j < 8; j++) { fileflag[i, j] = 0; } } // GL window max Configure(GL_Monitor, Ortho_Mode.CENTER); this.WindowState = FormWindowState.Normal; // set slideshow back color pictureBox8.BackColor = Color.Black; //timer set DateTime dt = DateTime.Now; prevtime = ((dt.Minute* 60 + dt.Second) * 1000 + dt.Millisecond); nowtime = ((dt.Minute* 60 + dt.Second) * 1000 + dt.Millisecond); } // MAIN WINDOW MAX/MIN private void button1_Click(object sender, EventArgs e) { this.WindowState = FormWindowState.Minimized; } private void button2_Click(object sender, EventArgs e) { if (this.WindowState == FormWindowState.Maximized) this.WindowState = FormWindowState.Normal; else this.WindowState = FormWindowState.Maximized; } // QUIT private void button3_Click(object sender, EventArgs e) { GL.Finish(); if (videoDevice.IsRunning) { videoDevice.SignalToStop(); videoDevice.WaitForStop(); videoDevice.NewFrame -= videoDevice_NewFrame; } Application.Exit(); } ///into perseMode private void button88_Click(object sender, EventArgs e) { if (persemode == 0) { persemode = 1; button88.BackColor = Color.Red; label83.Visible = true; label84.Visible = true; numericUpDown40.Visible = true; numericUpDown41.Visible = true; } } /// STL DRAW /// STL DRAW /// STL DRAW // series STL draw public void ser1Draw() { if (ser1flag > 0) { if (fileflag[1, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } if (seqplayflag > 0) { } else { GL.VertexPointer(3, VertexPointerType.Float,0, para_ser1_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser1_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser1_ch1.Length) /9*3); } GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[1, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } if (seqplayflag > 0) { } else { GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser1_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser1_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser1_ch2.Length ) / 9 * 3); } GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[1, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } if (seqplayflag > 0) { } else { GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser1_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser1_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser1_ch3.Length ) / 9 * 3); } GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[1, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser1_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser1_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser1_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[1, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser1_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser1_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser1_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[1, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser1_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser1_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser1_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[1, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser1_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser1_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser1_ch7.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser2Draw() { if (ser2flag > 0) { if (fileflag[2, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser2_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser2_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser2_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[2, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser2_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser2_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser2_ch2.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[2, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser2_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser2_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser2_ch3.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[2, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser2_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser2_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser2_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[2, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser2_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser2_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser2_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[2, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser2_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser2_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser2_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[2, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser2_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser2_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser2_ch7.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser3Draw() { if (ser3flag > 0) { if (fileflag[3, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser3_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser3_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser3_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[3, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser3_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser3_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser3_ch2.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[3, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser3_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser3_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser3_ch3.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[3, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser3_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser3_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser3_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[3, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser3_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser3_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser3_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[3, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser3_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser3_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser3_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[3, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser3_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser3_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser3_ch7.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser4Draw() { if (ser4flag > 0) { if (fileflag[4, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser4_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser4_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser4_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[4, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser4_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser4_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser4_ch2.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[4, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser4_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser4_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser4_ch3.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[4, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser4_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser4_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser4_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[4, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser4_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser4_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser4_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[4, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser4_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser4_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser4_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[4, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser4_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser4_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser4_ch7.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser5Draw() { if (ser5flag > 0) { if (fileflag[5, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser5_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser5_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser5_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[5, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser5_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser5_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser5_ch2.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[5, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser5_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser5_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser5_ch3.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[5, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser5_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser5_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser5_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[5, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser5_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser5_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser5_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[5, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser5_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser5_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser5_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[5, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser5_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser5_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser5_ch7.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser6Draw() { if (ser6flag > 0) { if (fileflag[6, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser6_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser6_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser6_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[6, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser6_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser6_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser6_ch2.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[6, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser6_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser6_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser6_ch3.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[6, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser6_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser6_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser6_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[6, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser6_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser6_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser6_ch5.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[6, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser6_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser6_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser6_ch6.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[6, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser6_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser6_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser6_ch7.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser7Draw() { if (ser7flag > 0) { if (fileflag[7, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser7_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser7_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser7_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[7, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser7_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser7_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser7_ch2.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[7, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser7_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser7_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser7_ch3.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[7, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser7_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser7_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser7_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[7, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser7_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser7_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser7_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[7, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser7_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser7_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser7_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[7, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser7_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser7_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser7_ch7.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser8Draw() { if (ser8flag > 0) { if (fileflag[8, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser8_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser8_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser8_ch1.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[8, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser8_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser8_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser8_ch2.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[8, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser8_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser8_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser8_ch3.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[8, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser8_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser8_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser8_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[8, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser8_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser8_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser8_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[8, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser8_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser8_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser8_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[8, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser8_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser8_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser8_ch7.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void ser9Draw() { if (ser9flag > 0) { if (fileflag[9, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser9_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser9_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser9_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[9, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser9_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser9_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser9_ch2.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[9, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser9_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser9_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser9_ch3.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[9, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser9_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser9_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser9_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[9, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser9_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser9_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser9_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[9, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser9_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser9_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser9_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[9, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_ser9_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_ser9_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_ser9_ch7.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void serADraw() { if (serAflag > 0) { if (fileflag[10, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serA_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serA_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serA_ch1.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[10, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serA_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serA_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serA_ch2.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[10, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serA_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serA_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serA_ch3.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[10, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serA_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serA_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serA_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[10, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serA_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serA_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serA_ch5.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[10, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serA_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serA_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serA_ch6.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[10, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serA_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serA_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serA_ch7.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } public void serBDraw() { if (serBflag > 0) { if (fileflag[11, 1] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch1flag > 0) { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, col1alpha); //colorcode } else { GL.Color4(col1R / 255.0, col1G / 255.0, col1B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serB_ch1); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serB_ch1); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serB_ch1.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[11, 2] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch2flag > 0) { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, col2alpha); //colorcode } else { GL.Color4(col2R / 255.0, col2G / 255.0, col2B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serB_ch2); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serB_ch2); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serB_ch2.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[11, 3] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch3flag > 0) { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, col3alpha); //colorcode } else { GL.Color4(col3R / 255.0, col3G / 255.0, col3B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serB_ch3); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serB_ch3); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serB_ch3.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[11, 4] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch4flag > 0) { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, col4alpha); //colorcode } else { GL.Color4(col4R / 255.0, col4G / 255.0, col4B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serB_ch4); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serB_ch4); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serB_ch4.Length ) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[11, 5] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch5flag > 0) { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, col5alpha); //colorcode } else { GL.Color4(col5R / 255.0, col5G / 255.0, col5B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serB_ch5); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serB_ch5); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serB_ch5.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[11, 6] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch6flag > 0) { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, col6alpha); //colorcode } else { GL.Color4(col6R / 255.0, col6G / 255.0, col6B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serB_ch6); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serB_ch6); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serB_ch6.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } if (fileflag[11, 7] > 0) { GL.EnableClientState(ArrayCap.VertexArray); //use xyz arrary GL.EnableClientState(ArrayCap.NormalArray); //use xyz array GL.Enable(EnableCap.Texture2D); if (ch7flag > 0) { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, col7alpha); //colorcode } else { GL.Color4(col7R / 255.0, col7G / 255.0, col7B / 255.0, transalpha); //colorcode } GL.VertexPointer(3, VertexPointerType.Float, 0, para_serB_ch7); //頂点 GL.NormalPointer(NormalPointerType.Float, 0, norm_serB_ch7); GL.DrawArrays(PrimitiveType.Triangles, 0, (int)(para_serB_ch7.Length) / 9 * 3); GL.DisableClientState(ArrayCap.NormalArray); //use xyz arrary GL.DisableClientState(ArrayCap.VertexArray); } } } //////// read STL arrays to 12x7 //////////////// public void stlreadarray() { // reset stl fileflag for (int i = 0; i < 13; i++) { for (int j = 0; j < 8; j++) { fileflag[i, j] = 0; } } //gray out channel visibility button41.BackColor = Color.DarkGray; button42.BackColor = Color.DarkGray; button43.BackColor = Color.DarkGray; button44.BackColor = Color.DarkGray; button45.BackColor = Color.DarkGray; button46.BackColor = Color.DarkGray; button47.BackColor = Color.DarkGray; // gray out seriese visibility button51.BackColor = Color.DarkGray; button52.BackColor = Color.DarkGray; button53.BackColor = Color.DarkGray; button54.BackColor = Color.DarkGray; button55.BackColor = Color.DarkGray; button56.BackColor = Color.DarkGray; button57.BackColor = Color.DarkGray; button58.BackColor = Color.DarkGray; button59.BackColor = Color.DarkGray; button60.BackColor = Color.DarkGray; button61.BackColor = Color.DarkGray; // check channel visibile ch1flag = 0; ch2flag = 0; ch3flag = 0; ch4flag = 0; ch5flag = 0; ch6flag = 0; ch7flag = 0; // count mesh num filemeshnum = 0; meshnum = 0; // read stl files if (File.Exists(filepath + "_ser1_ch1.stl")) { fileflag[1, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser1_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser1_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser1_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser1_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser2_ch1.stl")) { fileflag[2, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser2_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser2_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser2_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser2_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser3_ch1.stl")) { fileflag[3, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser3_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser3_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser3_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser3_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser4_ch1.stl")) { fileflag[4, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser4_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser4_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser4_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser4_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser5_ch1.stl")) { fileflag[5, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser5_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser5_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser5_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser5_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser6_ch1.stl")) { fileflag[6, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser6_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser6_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser6_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser6_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser7_ch1.stl")) { fileflag[7, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser7_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser7_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser7_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser7_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser8_ch1.stl")) { fileflag[8, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser8_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser8_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser8_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser8_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser9_ch1.stl")) { fileflag[9, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_ser9_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser9_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser9_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser9_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serA_ch1.stl")) { fileflag[10, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_serA_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serA_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_serA_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serA_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serB_ch1.stl")) { fileflag[11, 1] = 1; ch1flag++; STLReader stlReader = new STLReader(filepath + "_serB_ch1.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serB_ch1 = STLExport.Get_Mesh_Vertices(meshArray); norm_serB_ch1 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serB_ch1.Length; filemeshnum++; button41.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser1_ch2.stl")) { fileflag[1, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser1_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser1_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser1_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser1_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser2_ch2.stl")) { fileflag[2, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser2_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser2_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser2_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser2_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser3_ch2.stl")) { fileflag[3, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser3_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser3_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser3_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser3_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser4_ch2.stl")) { fileflag[4, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser4_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser4_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser4_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser4_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser5_ch2.stl")) { fileflag[5, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser5_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser5_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser5_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser5_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser6_ch2.stl")) { fileflag[6, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser6_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser6_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser6_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser6_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser7_ch2.stl")) { fileflag[7, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser7_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser7_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser7_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser7_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser8_ch2.stl")) { fileflag[8, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser8_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser8_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser8_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser8_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser9_ch2.stl")) { fileflag[9, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_ser9_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser9_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser9_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser9_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serA_ch2.stl")) { fileflag[10, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_serA_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serA_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_serA_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serA_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serB_ch2.stl")) { fileflag[11, 2] = 1; ch2flag++; STLReader stlReader = new STLReader(filepath + "_serB_ch2.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serB_ch2 = STLExport.Get_Mesh_Vertices(meshArray); norm_serB_ch2 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serB_ch2.Length; filemeshnum++; button42.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser1_ch3.stl")) { fileflag[1, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser1_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser1_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser1_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser1_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser2_ch3.stl")) { fileflag[2, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser2_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser2_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser2_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser2_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser3_ch3.stl")) { fileflag[3, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser3_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser3_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser3_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser3_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser4_ch3.stl")) { fileflag[4, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser4_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser4_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser4_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser4_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser5_ch3.stl")) { fileflag[5, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser5_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser5_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser5_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser5_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser6_ch3.stl")) { fileflag[6, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser6_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser6_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser6_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser6_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser7_ch3.stl")) { fileflag[7, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser7_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser7_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser7_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser7_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser8_ch3.stl")) { fileflag[8, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser8_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser8_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser8_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser8_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser9_ch3.stl")) { fileflag[9, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_ser9_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser9_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser9_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser9_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serA_ch3.stl")) { fileflag[10, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_serA_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serA_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_serA_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serA_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serB_ch3.stl")) { fileflag[11, 3] = 1; ch3flag++; STLReader stlReader = new STLReader(filepath + "_serB_ch3.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serB_ch3 = STLExport.Get_Mesh_Vertices(meshArray); norm_serB_ch3 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serB_ch3.Length; filemeshnum++; button43.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser1_ch4.stl")) { fileflag[1, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser1_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser1_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser1_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser1_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser2_ch4.stl")) { fileflag[2, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser2_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser2_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser2_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser2_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser3_ch4.stl")) { fileflag[3, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser3_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser3_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser3_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser3_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser4_ch4.stl")) { fileflag[4, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser4_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser4_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser4_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser4_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser5_ch4.stl")) { fileflag[5, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser5_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser5_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser5_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser5_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser6_ch4.stl")) { fileflag[6, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser6_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser6_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser6_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser6_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser7_ch4.stl")) { fileflag[7, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser7_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser7_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser7_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser7_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser8_ch4.stl")) { fileflag[8, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser8_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser8_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser8_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser8_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser9_ch4.stl")) { fileflag[9, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_ser9_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser9_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser9_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser9_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serA_ch4.stl")) { fileflag[10, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_serA_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serA_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_serA_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serA_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serB_ch4.stl")) { fileflag[11, 4] = 1; ch4flag++; STLReader stlReader = new STLReader(filepath + "_serB_ch4.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serB_ch4 = STLExport.Get_Mesh_Vertices(meshArray); norm_serB_ch4 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serB_ch4.Length; filemeshnum++; button44.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser1_ch5.stl")) { fileflag[1, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser1_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser1_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser1_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser1_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser2_ch5.stl")) { fileflag[2, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser2_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser2_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser2_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser2_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser3_ch5.stl")) { fileflag[3, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser3_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser3_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser3_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser3_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser4_ch5.stl")) { fileflag[4, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser4_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser4_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser4_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser4_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser5_ch5.stl")) { fileflag[5, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser5_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser5_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser5_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser5_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser6_ch5.stl")) { fileflag[6, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser6_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser6_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser6_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser6_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser7_ch5.stl")) { fileflag[7, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser7_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser7_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser7_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser7_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser8_ch5.stl")) { fileflag[8, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser8_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser8_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser8_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser8_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser9_ch5.stl")) { fileflag[9, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_ser9_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser9_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser9_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser9_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serA_ch5.stl")) { fileflag[10, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_serA_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serA_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_serA_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serA_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serB_ch5.stl")) { fileflag[11, 5] = 1; ch5flag++; STLReader stlReader = new STLReader(filepath + "_serB_ch5.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serB_ch5 = STLExport.Get_Mesh_Vertices(meshArray); norm_serB_ch5 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serB_ch5.Length; filemeshnum++; button45.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser1_ch6.stl")) { fileflag[1, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser1_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser1_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser1_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser1_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser2_ch6.stl")) { fileflag[2, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser2_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser2_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser2_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser2_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser3_ch6.stl")) { fileflag[3, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser3_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser3_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser3_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser3_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser4_ch6.stl")) { fileflag[4, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser4_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser4_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser4_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser4_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser5_ch6.stl")) { fileflag[5, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser5_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser5_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser5_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser5_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser6_ch6.stl")) { fileflag[6, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser6_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser6_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser6_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser6_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser7_ch6.stl")) { fileflag[7, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser7_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser7_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser7_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser7_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser8_ch6.stl")) { fileflag[8, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser8_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser8_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser8_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser8_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser9_ch6.stl")) { fileflag[9, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_ser9_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser9_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser9_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser9_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serA_ch6.stl")) { fileflag[10, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_serA_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serA_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_serA_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serA_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serB_ch6.stl")) { fileflag[11, 6] = 1; ch6flag++; STLReader stlReader = new STLReader(filepath + "_serB_ch6.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serB_ch6 = STLExport.Get_Mesh_Vertices(meshArray); norm_serB_ch6 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serB_ch6.Length; filemeshnum++; button46.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser1_ch7.stl")) { fileflag[1, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser1_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser1_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser1_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser1_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser2_ch7.stl")) { fileflag[2, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser2_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser2_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser2_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser2_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser3_ch7.stl")) { fileflag[3, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser3_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser3_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser3_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser3_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser4_ch7.stl")) { fileflag[4, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser4_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser4_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser4_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser4_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser5_ch7.stl")) { fileflag[5, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser5_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser5_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser5_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser5_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser6_ch7.stl")) { fileflag[6, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser6_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser6_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser6_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser6_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser7_ch7.stl")) { fileflag[7, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser7_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser7_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser7_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser7_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser8_ch7.stl")) { fileflag[8, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser8_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser8_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser8_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser8_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_ser9_ch7.stl")) { fileflag[9, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_ser9_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_ser9_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_ser9_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_ser9_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serA_ch7.stl")) { fileflag[10, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_serA_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serA_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_serA_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serA_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } if (File.Exists(filepath + "_serB_ch7.stl")) { fileflag[11, 7] = 1; ch7flag++; STLReader stlReader = new STLReader(filepath + "_serB_ch7.stl"); TriangleMesh[] meshArray = stlReader.ReadFile(); para_serB_ch7 = STLExport.Get_Mesh_Vertices(meshArray); norm_serB_ch7 = STLExport.Get_Mesh_Normals(meshArray); meshnum = meshnum + para_serB_ch7.Length; filemeshnum++; button47.BackColor = Color.LightGray; } /// check series flag // ser1flag = 0; ser2flag = 0; ser3flag = 0; ser4flag = 0; ser5flag = 0; ser6flag = 0; ser7flag = 0; ser8flag = 0; ser9flag = 0; serAflag = 0; serBflag = 0; for (int k = 1; k < 8; k++) { if (fileflag[1, k] > 0) { ser1flag++; button51.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[2, k] > 0) { ser2flag++; button52.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[3, k] > 0) { ser3flag++; button53.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[4, k] > 0) { ser4flag++; button54.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[5, k] > 0) { ser5flag++; button55.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[6, k] > 0) { ser6flag++; button56.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[7, k] > 0) { ser7flag++; button57.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[8, k] > 0) { ser8flag++; button58.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[9, k] > 0) { ser9flag++; button59.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[10, k] > 0) { serAflag++; button60.BackColor = Color.LightGray; } } for (int k = 1; k < 8; k++) { if (fileflag[11, k] > 0) { serBflag++; button61.BackColor = Color.LightGray; } } } /////////////////// // SET OPEN GL parameters /////////////////// // initialize openGLs public void Configure(OpenTK.GLControl refGLControl, Ortho_Mode ortho) { // texture make for back ground GL.GenTextures(1, out texnum2); /////////////// color ////////////////// GL.ClearColor(Color.Black); refGLControl.VSync = false; GL.Clear(ClearBufferMask.ColorBufferBit); ///////////// transparent/////////// GL.Enable(EnableCap.Blend); GL.BlendFunc(BlendingFactor.SrcAlpha, BlendingFactor.OneMinusSrcAlpha); GL.DepthMask(true); GL.Enable(EnableCap.DepthTest); GL.DepthFunc(DepthFunction.Lequal); /////////////smoothing/////////// GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); GL.Disable(EnableCap.LineSmooth); GL.Hint(HintTarget.LineSmoothHint, HintMode.Nicest); GL.Disable(EnableCap.PolygonSmooth); GL.Hint(HintTarget.PolygonSmoothHint, HintMode.Nicest); // model viewing ////////// if (true) { GL.ClearColor(Color.Black); GL.MatrixMode(MatrixMode.Modelview); GL.LoadIdentity(); GL.Viewport(refGLControl.Size); } // projection viewing if (false) { // GL.Frustum(0, 1920, 0, 960, -30000, 30000); // GL.MatrixMode(MatrixMode.Projection); // OpenTK.Matrix4 proj; // proj = OpenTK.Matrix4.CreatePerspectiveFieldOfView(0.78f,16.0f/9.0f, 0.1f, 2000f); // GL.LoadMatrix(ref proj); // GL.LoadIdentity(); // GL.Viewport(refGLControl.Size); // GL.Frustum(0, 1920, 0, 960, -3000, 3000); } /// make center position ////////////////////// if (ortho == Ortho_Mode.CENTER) { GL.Ortho(-refGLControl.Width / 2, refGLControl.Width / 2, -refGLControl.Height / 2, refGLControl.Height / 2, -20000, +20000); } else { GL.Ortho(0, refGLControl.Width, 0, refGLControl.Height, -20000, +20000); } GL.Clear(ClearBufferMask.ColorBufferBit | ClearBufferMask.DepthBufferBit); GL.ClearDepth(1.0f); } // GL load private void GL_Monitor_Load(object sender, EventArgs e) { GL_Monitor.AllowDrop = true; monitorLoaded = true; GL.ClearColor(Color.Black); //reset open GL Configure(GL_Monitor, Ortho_Mode.CENTER); } // save open GL into bmp files private void button33_Click(object sender, EventArgs e) { string filepath = @"D:\storeSTL" + ".jpg"; for (int i = 0; i < 1000; i++) { filepath = @"D:\storeSTL" + i.ToString() + ".jpg"; if (File.Exists(filepath)) { } else { i = 30000; } } int width = 1920, height = 1080; GL.ReadPixels(0, 0, width, height, OpenTK.Graphics.OpenGL.PixelFormat.Rgba, PixelType.UnsignedByte, saveData); Bitmap bmpin = new Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format32bppArgb); System.Drawing.Imaging.BitmapData bmpData = bmpin.LockBits(new Rectangle(0, 0, 1920, 1080), System.Drawing.Imaging.ImageLockMode.ReadWrite, bmpin.PixelFormat); System.Runtime.InteropServices.Marshal.Copy(saveData, 0, bmpData.Scan0, saveData.Length); bmpin.Save(filepath, System.Drawing.Imaging.ImageFormat.Jpeg); bmpin.UnlockBits(bmpData); } /////////////////// // mouse ticking /////////////////// private void DrawTimer_Tick(object sender, EventArgs e) { orb.UpdateOrbiter(MousePosition.X, MousePosition.Y); GL_Monitor.Invalidate(); if (moveForm) { this.SetDesktopLocation(MousePosition.X - moveOffsetX, MousePosition.Y - moveOffsetY); } } /// by direct click, mouse scroll /// by direct click, mouse scroll /// by direct click, mouse scroll private void button36_Click_1(object sender, EventArgs e) { scaling = scaling + 0.1f; } private void button38_Click(object sender, EventArgs e) { scaling = scaling - 0.1f; } /// OPEN GL & draw meshes /// OPEN GL & draw meshes /// OPEN GL & draw meshes // OPEN GL ligt settings, material settings private void ConfigureBasicLighting(Color modelColor) { float scaling = 1.0f; // nochange float powerscale = 1.0f, powerscale2 = 1.0f; powerscale = (float)Math.Pow(1.4, (double)(numericUpDown2.Value - 10)) / 30.0f; powerscale2 = (float)Math.Pow(1.4, (double)(numericUpDown3.Value - 10)) / 30.0f; if (danceflag > 0) { if (dancebeat == 0) { modelColor = Color.White; powerscale = (float)powerscale * 0.5f; } else if (dancebeat == 1) { modelColor = Color.Pink; } else if (dancebeat == 2) { modelColor = Color.Cyan; powerscale = (float)powerscale * 0.5f; } else { modelColor = Color.Green; } } else { powerscale = (float)powerscale * 0.5f; } if (persemode > 0) { powerscale = powerscale * 0.3f; } // forMAIN frames //SPECULAR float[] light_0 = new float[] { 0.3f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.5f * powerscale / 255.0f, 1.0f }; float[] light_0b = new float[] { 0.3f * powerscale2 / 255.0f, 0.4f * powerscale2 / 255.0f, 0.5f * powerscale2 / 255.0f, 1.0f }; float[] lightPos_0 = new float[] { 1000f * scaling, 1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_0 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 0 */ GL.Light(LightName.Light0, LightParameter.Ambient, light_0); GL.Light(LightName.Light0, LightParameter.Diffuse, light_0); GL.Light(LightName.Light0, LightParameter.Specular, specular_0); GL.Light(LightName.Light0, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light0); /* light 3*/ GL.Light(LightName.Light3, LightParameter.Ambient, light_0b); GL.Light(LightName.Light3, LightParameter.Diffuse, light_0b); GL.Light(LightName.Light3, LightParameter.Specular, specular_0); GL.Light(LightName.Light3, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light3); // SPECULAR float[] light_1 = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] light_1b = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] lightPos_1 = new float[] { -1000f * scaling, 1000f * scaling, +1200.0f * scaling, 1.0f }; float[] specular_1 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 1 */ GL.Light(LightName.Light1, LightParameter.Ambient, light_1); GL.Light(LightName.Light1, LightParameter.Diffuse, light_1); GL.Light(LightName.Light1, LightParameter.Specular, specular_1); GL.Light(LightName.Light1, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light1); /* light 4 */ GL.Light(LightName.Light4, LightParameter.Ambient, light_1b); GL.Light(LightName.Light4, LightParameter.Diffuse, light_1b); GL.Light(LightName.Light4, LightParameter.Specular, specular_1); GL.Light(LightName.Light4, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light4); // SPECULAR float[] light_2 = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] light_2b = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] lightPos_2 = new float[] { 0f * scaling, -1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_2 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 2 */ GL.Light(LightName.Light2, LightParameter.Ambient, light_2); GL.Light(LightName.Light2, LightParameter.Diffuse, light_2); GL.Light(LightName.Light2, LightParameter.Specular, specular_2); GL.Light(LightName.Light2, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light2); /* light 5 */ GL.Light(LightName.Light5, LightParameter.Ambient, light_2b); GL.Light(LightName.Light5, LightParameter.Diffuse, light_2b); GL.Light(LightName.Light5, LightParameter.Specular, specular_2); GL.Light(LightName.Light5, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Lighting); /*material settings */ float[] specref_3 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; GL.Enable(EnableCap.ColorMaterial); GL.ColorMaterial(MaterialFace.Front, ColorMaterialParameter.AmbientAndDiffuse); GL.Material(MaterialFace.Front, MaterialParameter.Specular, specref_3); GL.Material(MaterialFace.Front, MaterialParameter.Shininess, 0); } private void ConfigureBasicLighting_texture(Color modelColor) { if (danceflag > 0) { if (dancebeat == 0) { modelColor = Color.White; } else if (dancebeat == 1) { modelColor = Color.Pink; } else if (dancebeat == 2) { modelColor = Color.Cyan; } else { modelColor = Color.Green; } } float scaling = 1.0f; // nochange float powerscale = 1.0f, powerscale2 = 1.0f; powerscale = (float)Math.Pow(1.4, (double)(numericUpDown2.Value - 10)) / 30.0f; powerscale2 = (float)Math.Pow(1.4, (double)(numericUpDown3.Value - 10)) / 30.0f; // forMAIN frames //SPECULAR float[] light_0 = new float[] { 0.3f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.5f * powerscale / 255.0f, 1.0f }; float[] light_0b = new float[] { 0.3f * powerscale2 / 255.0f, 0.4f * powerscale2 / 255.0f, 0.5f * powerscale2 / 255.0f, 1.0f }; float[] lightPos_0 = new float[] { 1000f * scaling, 1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_0 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 0 */ GL.Light(LightName.Light0, LightParameter.Ambient, light_0); GL.Light(LightName.Light0, LightParameter.Diffuse, light_0); GL.Light(LightName.Light0, LightParameter.Specular, specular_0); GL.Light(LightName.Light0, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light0); /* light 3*/ GL.Light(LightName.Light3, LightParameter.Ambient, light_0b); GL.Light(LightName.Light3, LightParameter.Diffuse, light_0b); GL.Light(LightName.Light3, LightParameter.Specular, specular_0); GL.Light(LightName.Light3, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light3); // SPECULAR float[] light_1 = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] light_1b = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] lightPos_1 = new float[] { -1000f * scaling, 1000f * scaling, +1200.0f * scaling, 1.0f }; float[] specular_1 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 1 */ GL.Light(LightName.Light1, LightParameter.Ambient, light_1); GL.Light(LightName.Light1, LightParameter.Diffuse, light_1); GL.Light(LightName.Light1, LightParameter.Specular, specular_1); GL.Light(LightName.Light1, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light1); /* light 4 */ GL.Light(LightName.Light4, LightParameter.Ambient, light_1b); GL.Light(LightName.Light4, LightParameter.Diffuse, light_1b); GL.Light(LightName.Light4, LightParameter.Specular, specular_1); GL.Light(LightName.Light4, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light4); // SPECULAR float[] light_2 = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] light_2b = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] lightPos_2 = new float[] { 0f * scaling, -1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_2 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 2 */ GL.Light(LightName.Light2, LightParameter.Ambient, light_2); GL.Light(LightName.Light2, LightParameter.Diffuse, light_2); GL.Light(LightName.Light2, LightParameter.Specular, specular_2); GL.Light(LightName.Light2, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light2); /* light 5 */ GL.Light(LightName.Light5, LightParameter.Ambient, light_2b); GL.Light(LightName.Light5, LightParameter.Diffuse, light_2b); GL.Light(LightName.Light5, LightParameter.Specular, specular_2); GL.Light(LightName.Light5, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Lighting); /*material settings */ float[] specref_3 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; GL.Enable(EnableCap.ColorMaterial); GL.ColorMaterial(MaterialFace.Front, ColorMaterialParameter.AmbientAndDiffuse); GL.Material(MaterialFace.Front, MaterialParameter.Specular, specref_3); GL.Material(MaterialFace.Front, MaterialParameter.Shininess, 0); } private void ConfigureBasicLighting_texture2(Color modelColor, float texcol) { if (danceflag > 0) { if (dancebeat == 0) { modelColor = Color.White; } else if (dancebeat == 1) { modelColor = Color.Pink; } else if (dancebeat == 2) { modelColor = Color.Cyan; } else { modelColor = Color.Green; } } float scaling = 1.0f; // nochange float powerscale = 0.2f, powerscale2 = 0.2f; // forMAIN frames //SPECULAR float[] light_0 = new float[] { 0.3f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.5f * powerscale / 255.0f, 1.0f }; float[] light_0b = new float[] { 0.3f * powerscale2 / 255.0f, 0.4f * powerscale2 / 255.0f, 0.5f * powerscale2 / 255.0f, 1.0f }; float[] lightPos_0 = new float[] { 1000f * scaling, 1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_0 = new float[] { 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 1.0f }; /* light 0 */ GL.Light(LightName.Light0, LightParameter.Ambient, light_0); GL.Light(LightName.Light0, LightParameter.Diffuse, light_0); GL.Light(LightName.Light0, LightParameter.Specular, specular_0); GL.Light(LightName.Light0, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light0); /* light 3*/ GL.Light(LightName.Light3, LightParameter.Ambient, light_0b); GL.Light(LightName.Light3, LightParameter.Diffuse, light_0b); GL.Light(LightName.Light3, LightParameter.Specular, specular_0); GL.Light(LightName.Light3, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light3); // SPECULAR float[] light_1 = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] light_1b = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] lightPos_1 = new float[] { -1000f * scaling, 1000f * scaling, +1200.0f * scaling, 1.0f }; float[] specular_1 = new float[] { 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 1.0f }; /* light 1 */ GL.Light(LightName.Light1, LightParameter.Ambient, light_1); GL.Light(LightName.Light1, LightParameter.Diffuse, light_1); GL.Light(LightName.Light1, LightParameter.Specular, specular_1); GL.Light(LightName.Light1, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light1); /* light 4 */ GL.Light(LightName.Light4, LightParameter.Ambient, light_1b); GL.Light(LightName.Light4, LightParameter.Diffuse, light_1b); GL.Light(LightName.Light4, LightParameter.Specular, specular_1); GL.Light(LightName.Light4, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light4); // SPECULAR float[] light_2 = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] light_2b = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] lightPos_2 = new float[] { 0f * scaling, -1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_2 = new float[] { 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 1.0f }; /* light 2 */ GL.Light(LightName.Light2, LightParameter.Ambient, light_2); GL.Light(LightName.Light2, LightParameter.Diffuse, light_2); GL.Light(LightName.Light2, LightParameter.Specular, specular_2); GL.Light(LightName.Light2, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light2); /* light 5 */ GL.Light(LightName.Light5, LightParameter.Ambient, light_2b); GL.Light(LightName.Light5, LightParameter.Diffuse, light_2b); GL.Light(LightName.Light5, LightParameter.Specular, specular_2); GL.Light(LightName.Light5, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Lighting); /*material settings */ float[] specref_3 = new float[] { 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 0.03f * texcol / 255.0f, 1.0f }; GL.Enable(EnableCap.ColorMaterial); GL.ColorMaterial(MaterialFace.Front, ColorMaterialParameter.AmbientAndDiffuse); GL.Material(MaterialFace.Front, MaterialParameter.Specular, specref_3); GL.Material(MaterialFace.Front, MaterialParameter.Shininess, 0); } private void ConfigureBasicLighting_texture3(Color modelColor) { if (danceflag > 0) { if (dancebeat == 0) { modelColor = Color.White; } else if (dancebeat == 1) { modelColor = Color.Pink; } else if (dancebeat == 2) { modelColor = Color.Cyan; } else { modelColor = Color.Green; } } float scaling = 1.0f; // nochange float powerscale = 5.0f, powerscale2 = 5.0f; powerscale = (float)Math.Pow(1.4, (double)(numericUpDown2.Value - 10)) / 30.0f; powerscale2 = (float)Math.Pow(1.4, (double)(numericUpDown3.Value - 10)) / 30.0f; // forMAIN frames //SPECULAR float[] light_0 = new float[] { 0.3f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.5f * powerscale / 255.0f, 1.0f }; float[] light_0b = new float[] { 0.3f * powerscale2 / 255.0f, 0.4f * powerscale2 / 255.0f, 0.5f * powerscale2 / 255.0f, 1.0f }; float[] lightPos_0 = new float[] { 1000f * scaling, 1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_0 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 0 */ GL.Light(LightName.Light0, LightParameter.Ambient, light_0); GL.Light(LightName.Light0, LightParameter.Diffuse, light_0); GL.Light(LightName.Light0, LightParameter.Specular, specular_0); GL.Light(LightName.Light0, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light0); /* light 3*/ GL.Light(LightName.Light3, LightParameter.Ambient, light_0b); GL.Light(LightName.Light3, LightParameter.Diffuse, light_0b); GL.Light(LightName.Light3, LightParameter.Specular, specular_0); GL.Light(LightName.Light3, LightParameter.Position, lightPos_0); GL.Enable(EnableCap.Light3); // SPECULAR float[] light_1 = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] light_1b = new float[] { 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 1.0f }; float[] lightPos_1 = new float[] { -1000f * scaling, 1000f * scaling, +1200.0f * scaling, 1.0f }; float[] specular_1 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 1 */ GL.Light(LightName.Light1, LightParameter.Ambient, light_1); GL.Light(LightName.Light1, LightParameter.Diffuse, light_1); GL.Light(LightName.Light1, LightParameter.Specular, specular_1); GL.Light(LightName.Light1, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light1); /* light 4 */ GL.Light(LightName.Light4, LightParameter.Ambient, light_1b); GL.Light(LightName.Light4, LightParameter.Diffuse, light_1b); GL.Light(LightName.Light4, LightParameter.Specular, specular_1); GL.Light(LightName.Light4, LightParameter.Position, lightPos_1); GL.Enable(EnableCap.Light4); // SPECULAR float[] light_2 = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] light_2b = new float[] { 0.5f * powerscale / 255.0f, 0.4f * powerscale / 255.0f, 0.3f * powerscale / 255.0f, 1.0f }; float[] lightPos_2 = new float[] { 0f * scaling, -1000f * scaling, -1200.0f * scaling, 1.0f }; float[] specular_2 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; /* light 2 */ GL.Light(LightName.Light2, LightParameter.Ambient, light_2); GL.Light(LightName.Light2, LightParameter.Diffuse, light_2); GL.Light(LightName.Light2, LightParameter.Specular, specular_2); GL.Light(LightName.Light2, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light2); /* light 5 */ GL.Light(LightName.Light5, LightParameter.Ambient, light_2b); GL.Light(LightName.Light5, LightParameter.Diffuse, light_2b); GL.Light(LightName.Light5, LightParameter.Specular, specular_2); GL.Light(LightName.Light5, LightParameter.Position, lightPos_2); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Lighting); /*material settings */ float[] specref_3 = new float[] { 0.03f * modelColor.R / 255.0f, 0.03f * modelColor.G / 255.0f, 0.03f * modelColor.B / 255.0f, 1.0f }; GL.Enable(EnableCap.ColorMaterial); GL.ColorMaterial(MaterialFace.Front, ColorMaterialParameter.AmbientAndDiffuse); GL.Material(MaterialFace.Front, MaterialParameter.Specular, specref_3); GL.Material(MaterialFace.Front, MaterialParameter.Shininess, 0); } //color change 1P<>2P joystick private void colorchange() { double t = 0; t = col1R; col1R = col1G; col1G = t; t = col2R; col2R = col2B; col2B = t; t = col3R; col3R = col3B; col3B = t; t = col4R; col4R = col4B; col4B = t; t = col5R; col5R = col5B; col5B = t; t = col6R; col6R = col6G; col6G = t; t = col7R; col7R = col7G; col7G = t; } /// /MOUSE adjust, // /MOUSE adjust, /// /MOUSE adjust, private void mouseA() { GL.Scale(orb.scaleVal * scaling, orb.scaleVal * scaling, orb.scaleVal * scaling); GL.Translate(orb.PanX, orb.PanY, 0.0f); GL.Translate(offXX, offYY, offZZ); GL.Rotate(offa, offx, offy, offz); GL.Rotate(orb.orbitStr.angle, orb.orbitStr.ox, orb.orbitStr.oy, orb.orbitStr.oz); } ////steering adjust, ////steering adjust, ////steering adjust, private void dosteerAX() { GL.Translate(-steerAXX * 2.360f, -steerAYY * 2.360f, -steerAZZ * 2.360f); GL.Rotate(steerA * 3.60f, steerAX * 13.60, steerAY * 13.60, steerAZ * 13.60); GL.Translate(+steerAXX * 2.360f, +steerAYY * 2.360f, +steerAZZ * 2.360f); } private void dosteerAX_2P() { GL.Translate(-steerAXX * 2.360f, -steerAYY * 2.360f, -steerAZZ * 2.360f); GL.Rotate(steerA2 * 3.60f, steerAX * 13.60, steerAY * 13.60, steerAZ * 13.60); GL.Translate(+steerAXX * 2.360f, +steerAYY * 2.360f, +steerAZZ * 2.360f); } private void dosteerBX() { GL.Translate(-steerBXX * 2.360f, -steerBYY * 2.360f, -steerBZZ * 2.360f); GL.Rotate(steerB * 3.60f, steerBX * 13.60, steerBY * 13.60, steerBZ * 13.60); GL.Translate(+steerBXX * 2.360f, +steerBYY * 2.360f, +steerBZZ * 2.360f); } private void dosteerBX_2P() { GL.Translate(-steerBXX * 2.360f, -steerBYY * 2.360f, -steerBZZ * 2.360f); GL.Rotate(steerB2* 3.60f, steerBX * 13.60, steerBY * 13.60, steerBZ * 13.60); GL.Translate(+steerBXX * 2.360f, +steerBYY * 2.360f, +steerBZZ * 2.360f); } private void dosteerCX() { GL.Translate(-steerCXX * 2.360f, -steerCYY * 2.360f, -steerCZZ * 2.360f); GL.Rotate(steerC * 3.60f, steerCX * 13.60, steerAY * 13.60, steerCZ * 13.60); GL.Translate(+steerCXX * 2.360f, +steerCYY * 2.360f, +steerCZZ * 2.360f); } private void dosteerCX_2P() { GL.Translate(-steerCXX * 2.360f, -steerCYY * 2.360f, -steerCZZ * 2.360f); GL.Rotate(steerC2 * 3.60f, steerCX * 13.60, steerAY * 13.60, steerCZ * 13.60); GL.Translate(+steerCXX * 2.360f, +steerCYY * 2.360f, +steerCZZ * 2.360f); } private void dosteerDX() { GL.Translate(-steerDXX * 2.360f, -steerDYY * 2.360f, -steerDZZ * 2.360f); GL.Rotate(steerD * 3.60f, steerDX * 13.60, steerDY * 13.60, steerDZ * 13.60); GL.Translate(+steerDXX * 2.360f, +steerDYY * 2.360f, +steerDZZ * 2.360f); } private void dosteerDX_2P() { GL.Translate(-steerDXX * 2.360f, -steerDYY * 2.360f, -steerDZZ * 2.360f); GL.Rotate(steerD2 * 3.60f, steerDX * 13.60, steerDY * 13.60, steerDZ * 13.60); GL.Translate(+steerDXX * 2.360f, +steerDYY * 2.360f, +steerDZZ * 2.360f); } private void dosteerEX() { GL.Translate(-steerEXX * 2.360f, -steerEYY * 2.360f, -steerEZZ * 2.360f); GL.Rotate(steerE * 3.60f, steerEX * 13.60, steerEY * 13.60, steerEZ * 13.60); GL.Translate(+steerEXX * 2.360f, +steerEYY * 2.360f, +steerEZZ * 2.360f); } private void dosteerEX_2P() { GL.Translate(-steerEXX * 2.360f, -steerEYY * 2.360f, -steerEZZ * 2.360f); GL.Rotate(steerE2 * 3.60f, steerEX * 13.60, steerEY * 13.60, steerEZ * 13.60); GL.Translate(+steerEXX * 2.360f, +steerEYY * 2.360f, +steerEZZ * 2.360f); } private void dosteerFX() { GL.Translate(-steerFXX * 2.360f, -steerFYY * 2.360f, -steerFZZ * 2.360f); GL.Rotate(steerF * 3.60f, steerFX * 13.60, steerFY * 13.60, steerFZ * 13.60); GL.Translate(+steerFXX * 2.360f, +steerFYY * 2.360f, +steerFZZ * 2.360f); } private void dosteerFX_2P() { GL.Translate(-steerFXX * 2.360f, -steerFYY * 2.360f, -steerFZZ * 2.360f); GL.Rotate(steerF2 * 3.60f, steerFX * 13.60, steerFY * 13.60, steerFZ * 13.60); GL.Translate(+steerFXX * 2.360f, +steerFYY * 2.360f, +steerFZZ * 2.360f); } private void dosteerAX_angleadd(float angleadd_in) { GL.Translate(-steerAXX * 2.360f, -steerAYY * 2.360f, -steerAZZ * 2.360f); GL.Rotate(steerA * 3.60f, steerAX * 13.60, steerAY * 13.60, steerAZ * 13.60); GL.Rotate(angleadd_in * 100.0f, 0.0f, 10.0f, 0.0f); GL.Translate(+steerAXX * 2.360f, +steerAYY * 2.360f, +steerAZZ * 2.360f); } private void dosteerAX_2P_angleadd(float angleadd_in) { GL.Translate(-steerAXX * 2.360f, -steerAYY * 2.360f, -steerAZZ * 2.360f); GL.Rotate(steerA2 * 3.60f, steerAX * 13.60, steerAY * 13.60, steerAZ * 13.60); GL.Rotate(angleadd_in * 100.0f, 0.0f, 10.0f, 0.0f); GL.Translate(+steerAXX * 2.360f, +steerAYY * 2.360f, +steerAZZ * 2.360f); } private void doleg1x() { GL.Translate(-leg1XX * 2.360f, -leg1YY * 2.360f, -leg1ZZ * 2.360f); GL.Rotate(leg1A * 3.60f, leg1AX * 13.60, leg1AY * 13.60, leg1AZ * 13.60); GL.Translate(+leg1XX * 2.360f, +leg1YY * 2.360f, +leg1ZZ * 2.360f); } private void doleg2x() { GL.Translate(-leg2XX * 2.360f, -leg2YY * 2.360f, -leg2ZZ * 2.360f); GL.Rotate(leg2A * 3.60f, leg2AX * 13.60, leg2AY * 13.60, leg2AZ * 13.60); GL.Translate(+leg2XX * 2.360f, +leg2YY * 2.360f, +leg2ZZ * 2.360f); } private void doleg3x() { GL.Translate(-leg3XX * 2.360f, -leg3YY * 2.360f, -leg3ZZ * 2.360f); GL.Rotate(leg3A * 3.60f, leg3AX * 13.60, leg3AY * 13.60, leg3AZ * 13.60); GL.Translate(+leg3XX * 2.360f, +leg3YY * 2.360f, +leg3ZZ * 2.360f); } private void doleg4x() { GL.Translate(-leg4XX * 2.360f, -leg4YY * 2.360f, -leg4ZZ * 2.360f); GL.Rotate(leg4A * 3.60f, leg4AX * 13.60, leg4AY * 13.60, leg4AZ * 13.60); GL.Translate(+leg4XX * 2.360f, +leg4YY * 2.360f, +leg4ZZ * 2.360f); } private void doleg1x_2P() { GL.Translate(-leg1XX * 2.360f, -leg1YY * 2.360f, -leg1ZZ * 2.360f); GL.Rotate(leg1A2 * 3.60f, leg1AX * 13.60, leg1AY * 13.60, leg1AZ * 13.60); GL.Translate(+leg1XX * 2.360f, +leg1YY * 2.360f, +leg1ZZ * 2.360f); } private void doleg2x_2P() { GL.Translate(-leg2XX * 2.360f, -leg2YY * 2.360f, -leg2ZZ * 2.360f); GL.Rotate(leg2A2 * 3.60f, leg2AX * 13.60, leg2AY * 13.60, leg2AZ * 13.60); GL.Translate(+leg2XX * 2.360f, +leg2YY * 2.360f, +leg2ZZ * 2.360f); } private void doleg3x_2P() { GL.Translate(-leg3XX * 2.360f, -leg3YY * 2.360f, -leg3ZZ * 2.360f); GL.Rotate(leg3A2 * 3.60f, leg3AX * 13.60, leg3AY * 13.60, leg3AZ * 13.60); GL.Translate(+leg3XX * 2.360f, +leg3YY * 2.360f, +leg3ZZ * 2.360f); } private void doleg4x_2P() { GL.Translate(-leg4XX * 2.360f, -leg4YY * 2.360f, -leg4ZZ * 2.360f); GL.Rotate(leg4A2 * 3.60f, leg4AX * 13.60, leg4AY * 13.60, leg4AZ * 13.60); GL.Translate(+leg4XX * 2.360f, +leg4YY * 2.360f, +leg4ZZ * 2.360f); } private void dowheel1x() { GL.Translate(-wheel1XX * 2.360f, -wheel1YY * 2.360f, -wheel1ZZ * 2.360f); GL.Rotate(wheel1A * 3.60f, wheel1AX * 13.60, wheel1AY * 13.60, wheel1AZ * 13.60); GL.Translate(+wheel1XX * 2.360f, +wheel1YY * 2.360f, +wheel1ZZ * 2.360f); } private void dowheel2x() { GL.Translate(-wheel2XX * 2.360f, -wheel2YY * 2.360f, -wheel2ZZ * 2.360f); GL.Rotate(wheel2A * 3.60f, wheel2AX * 13.60, wheel2AY * 13.60, wheel2AZ * 13.60); GL.Translate(+wheel2XX * 2.360f, +wheel2YY * 2.360f, +wheel2ZZ * 2.360f); } private void dowheel3x() { GL.Translate(-wheel3XX * 2.360f, -wheel3YY * 2.360f, -wheel3ZZ * 2.360f); GL.Rotate(wheel3A * 3.60f, wheel3AX * 13.60, wheel3AY * 13.60, wheel3AZ * 13.60); GL.Translate(+wheel3XX * 2.360f, +wheel3YY * 2.360f, +wheel3ZZ * 2.360f); } private void dowheel4x() { GL.Translate(-wheel4XX * 2.360f, -wheel4YY * 2.360f, -wheel4ZZ * 2.360f); GL.Rotate(wheel4A * 3.60f, wheel4AX * 13.60, wheel4AY * 13.60, wheel4AZ * 13.60); GL.Translate(+wheel4XX * 2.360f, +wheel4YY * 2.360f, +wheel4ZZ * 2.360f); } private void dowheel1x_2P() { GL.Translate(-wheel1XX * 2.360f, -wheel1YY * 2.360f, -wheel1ZZ * 2.360f); GL.Rotate(wheel1A2 * 3.60f, wheel1AX * 13.60, wheel1AY * 13.60, wheel1AZ * 13.60); GL.Translate(+wheel1XX * 2.360f, +wheel1YY * 2.360f, +wheel1ZZ * 2.360f); } private void dowheel2x_2P() { GL.Translate(-wheel2XX * 2.360f, -wheel2YY * 2.360f, -wheel2ZZ * 2.360f); GL.Rotate(wheel2A2 * 3.60f, wheel2AX * 13.60, wheel2AY * 13.60, wheel2AZ * 13.60); GL.Translate(+wheel2XX * 2.360f, +wheel2YY * 2.360f, +wheel2ZZ * 2.360f); } private void dowheel3x_2P() { GL.Translate(-wheel3XX * 2.360f, -wheel3YY * 2.360f, -wheel3ZZ * 2.360f); GL.Rotate(wheel3A2 * 3.60f, wheel3AX * 13.60, wheel3AY * 13.60, wheel3AZ * 13.60); GL.Translate(+wheel3XX * 2.360f, +wheel3YY * 2.360f, +wheel3ZZ * 2.360f); } private void dowheel4x_2P() { GL.Translate(-wheel4XX * 2.360f, -wheel4YY * 2.360f, -wheel4ZZ * 2.360f); GL.Rotate(wheel4A2 * 3.60f, wheel4AX * 13.60, wheel4AY * 13.60, wheel4AZ * 13.60); GL.Translate(+wheel4XX * 2.360f, +wheel4YY * 2.360f, +wheel4ZZ * 2.360f); } // MAIN GL PAINT // MAIN GL PAINT // MAIN GL PAINT private void GL_Monitor_Paint(object sender, PaintEventArgs e) { if (!monitorLoaded) { return; } //to projection if (persemode > 0) { GL.ClearColor(Color.Black); GL.Viewport(0, 0, 1920, 1200); GL.MatrixMode(MatrixMode.Projection); Matrix4 proj = Matrix4.CreatePerspectiveFieldOfView(MathHelper.PiOver3 * (float)numericUpDown40.Value / 100, 1920 / 1200, 0.01f, 100f); GL.LoadMatrix(ref proj); GL.MatrixMode(MatrixMode.Modelview); Matrix4 look = Matrix4.LookAt(5.0f * OpenTK.Vector3.UnitZ, new OpenTK.Vector3(0, 0, 0), OpenTK.Vector3.UnitY); GL.LoadMatrix(ref look); GL.Enable(EnableCap.DepthTest); } //reset open GL Configure(GL_Monitor, Ortho_Mode.CENTER); ////////////////////// capture texture back ground /////////////////////// //back ground captured view (from CAMERA) if (camflag > 0) { if (tracemode > 0) { tracecheck(); } // GL.Disable(EnableCap.Blend); // GL.Enable(EnableCap.Texture2D); //lighting ConfigureBasicLighting_texture2(Color.White, 1.0f); GL.Disable(EnableCap.Light1); GL.Disable(EnableCap.Light2); GL.Disable(EnableCap.Light3); GL.Enable(EnableCap.Light4); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Light6); GL.Color4(15, 15, 15, 1.0); GL.Hint(HintTarget.PerspectiveCorrectionHint, HintMode.Nicest); //read texture GL.BindTexture(TextureTarget.Texture2D, texnum2); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.Repeat); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.Repeat); System.Drawing.Imaging.BitmapData data = bitmapin.LockBits(new System.Drawing.Rectangle(0, 0, bitmapin.Width, bitmapin.Height), System.Drawing.Imaging.ImageLockMode.ReadOnly, System.Drawing.Imaging.PixelFormat.Format24bppRgb); System.Runtime.InteropServices.Marshal.Copy(importData, 0, data.Scan0, importData.Length); GL.TexImage2D(TextureTarget.Texture2D, 0, OpenTK.Graphics.OpenGL.PixelInternalFormat.Rgb, bitmapin.Width, bitmapin.Height, 0, OpenTK.Graphics.OpenGL.PixelFormat.Bgr, PixelType.UnsignedByte, data.Scan0); bitmapin.UnlockBits(data); //display quads GL.PushMatrix(); { if (persemode > 0) { GL.Translate(0, 0, (double)(numericUpDown41.Value+30) * 100); // GL.Rotate(180, 0.0, 1.0, 0.0); GL.Disable(EnableCap.Blend); } GL.BindTexture(TextureTarget.Texture2D, texnum2); GL.Enable(EnableCap.Texture2D); GL.Begin(PrimitiveType.Quads); { if (persemode > 0) { GL.TexCoord2(0, 1); GL.Vertex3(-1920, -1480, -2000); GL.TexCoord2(1, 1); GL.Vertex3(1920, -1480, -2000); GL.TexCoord2(1, 0); GL.Vertex3(1920, 1480, -2000); GL.TexCoord2(0, 0); GL.Vertex3(-1920, 1480, -2000); } else { GL.TexCoord2(0, 1); GL.Vertex3(-960, -740, -2000); GL.TexCoord2(1, 1); GL.Vertex3(960, -740, -2000); GL.TexCoord2(1, 0); GL.Vertex3(960, 740, -2000); GL.TexCoord2(0, 0); GL.Vertex3(-960, 740, -2000); } } GL.End(); } GL.PopMatrix(); // GL.Enable(EnableCap.Texture2D); GL.BindTexture(TextureTarget.Texture2D, 0); //color adjust for overlay int indexR, indexG, indexB; int pixR = 0, pixG = 0, pixB = 0; for (int xx = 283; xx < (283 + 90); xx++) { for (int yy = 316; yy < (16 + 316); yy++) { indexR = (xx + yy * 640) * 3 + 2; //r indexG = (xx + yy * 640) * 3 + 1; //g indexB = (xx + yy * 640) * 3 + 0; //b pixR = pixR + importData[indexR]; pixG = pixG + importData[indexG]; pixB = pixB + importData[indexB]; } } pixR = pixR / 1440; pixG = pixG / 1440; pixB = pixB / 1440; pixR = (pixR - 35); if (pixR < 0) { pixR = 0; } if (pixR > 70) { pixR = 70; } pixG = (pixG - 35); if (pixG < 0) { pixG = 0; } if (pixG > 70) { pixG = 70; } pixB = (pixB - 20); if (pixB < 0) { pixB = 0; } if (pixB > 70) { pixB = 70; } int colratio = 5; if (tracemode > 0) { colratio = 8; } col1R = (col1R_ref * colratio + pixR) / (colratio + 1); col1G = (col1G_ref * colratio + pixG) / (colratio + 1); col1B = (col1B_ref * colratio + pixB) / (colratio + 1); col2R = (col2R_ref * colratio + pixR) / (colratio + 1); col2G = (col2G_ref * colratio + pixG) / (colratio + 1); col2B = (col2B_ref * colratio + pixB) / (colratio + 1); col3R = (col3R_ref * colratio + pixR) / (colratio + 1); col3G = (col3G_ref * colratio + pixG) / (colratio + 1); col3B = (col3B_ref * colratio + pixB) / (colratio + 1); col4R = (col4R_ref * colratio + pixR) / (colratio + 1); col4G = (col4G_ref * colratio + pixG) / (colratio + 1); col4B = (col4B_ref * colratio + pixB) / (colratio + 1); col5R = (col5R_ref * colratio + pixR) / (colratio + 1); col5G = (col5G_ref * colratio + pixG) / (colratio + 1); col5B = (col5B_ref * colratio + pixB) / (colratio + 1); col6R = (col6R_ref * colratio + pixR) / (colratio + 1); col6G = (col6G_ref * colratio + pixG) / (colratio + 1); col6B = (col6B_ref * colratio + pixB) / (colratio + 1); col7R = (col7R_ref * colratio + pixR) / (colratio + 1); col7G = (col7G_ref * colratio + pixG) / (colratio + 1); col7B = (col7B_ref * colratio + pixB) / (colratio + 1); col1alpha = col1alpha_ref; col2alpha = col2alpha_ref; col3alpha = col3alpha_ref; col4alpha = col4alpha_ref; col5alpha = col5alpha_ref; col6alpha = col6alpha_ref; col7alpha = col7alpha_ref; } float angleadd = 0; //fps count DateTime dt = DateTime.Now; nowtime = ((dt.Minute * 60 + dt.Second) * 1000 + dt.Millisecond); fpstime = nowtime - prevtime; prevtime = nowtime; if (fpstime == 0) { fpstime = 10000; } fpstime = 1000 / fpstime; label38.Text = fpstime.ToString(""); // check mouse move float diffmouse = 0.0f; diffmouse = (float)((PanXold - orb.PanX) * (PanXold - orb.PanX) + (PanYold - orb.PanY) * (PanYold - orb.PanY)); diffmouse = diffmouse + (OrbXold - orb.orbitStr.ox) * (OrbXold - orb.orbitStr.ox) + (OrbYold - orb.orbitStr.oy) * (OrbYold - orb.orbitStr.oy) + (OrbZold - orb.orbitStr.oz) * (OrbZold - orb.orbitStr.oz); diffmouse = diffmouse + (OrbAngleold - orb.orbitStr.angle) * (OrbAngleold - orb.orbitStr.angle); //make angulation for title float rat = 0.90f; float rat2 = 0.98f; diff_PanX = diff_PanX * rat + (orb.PanX - PanXold) * (1 - rat); diff_PanY = diff_PanY * rat + (orb.PanY - PanYold) * (1 - rat); diff_angle = diff_angle * rat2 + (orb.orbitStr.angle - OrbAngleold) * (1 - rat); diff_ox = diff_ox * rat2 + (orb.orbitStr.ox - OrbXold) * (1 - rat); diff_oy = diff_oy * rat2 + (orb.orbitStr.oy - OrbYold) * (1 - rat); diff_oz = diff_oz * rat2 + (orb.orbitStr.oz - OrbZold) * (1 - rat); //texture reading skip if mouse moved if (diffmouse > 0.01f) { textureskipflag = 10; } else { textureskipflag--; if (textureskipflag < 0) { textureskipflag = 0; } } PanXold = orb.PanX; PanYold = orb.PanY; OrbAngleold = orb.orbitStr.angle; OrbXold = orb.orbitStr.ox; OrbYold = orb.orbitStr.oy; OrbZold = orb.orbitStr.oz; //texture skip if (textureflag > 1 && (dt.Millisecond % 5) != 1 && texturedispflag > 0 && false) // reduce fps for texture // rest { return; } // timercount /// int seccount = dt.Second % 30; int seccount2 = dt.Second % 6; int seccount3 = dt.Second % 8; int seccount4 = dt.Second % 9; int seccount5 = dt.Second % 10; int seccount6 = dt.Second % 11; int seccount8 = dt.Second % 30; int millisec = (dt.Second * 1000 + dt.Millisecond) % 6000; if (millisec > 3000) { millisec = 6000 - millisec; }; int millicount = (dt.Second * 1000 + dt.Millisecond) % 4000; if (millicount > 2000) { millicount = 4000 - millicount; } transalpha = (millicount / 2000.0) * 0.3 + 0.05; //transparent changes alphaA1 = 0.2 + (double)millisec / 2500.0; alphaB1 = 0.2 + (double)millisec / 2500.0; alphaC1 = 0.2 + (double)millisec / 2500.0; alphaD1 = 0.2 + (double)millisec / 2500.0; alphaE1 = 0.2 + (double)millisec / 2500.0; alphaF1 = 0.2 + (double)millisec / 2500.0; if (controllerON != 0) { transalpha = 0.6; } //////////////////////// moVING parts /////////////////////////// //steering bicycle, ikakkun etc. if (killerflag == 0 & (controllerON == 0 || tracemode > 0) & steerflag != 0 && deformflag == 0) { if (seccount2 < 2) { if (steerflag == 1) { steerA = steerA + 0.1f; } else { steerA = steerA - 0.1f; } if (steerA > 10.0f) { steerA = 9.8f; steerflag = 2; } if (steerA < -10.0f) { steerA = -9.8f; steerflag = 1; } } steerB = steerA; steerC = steerA; } ////////////////////////// ///////////////////SNOWBOARD //SNOWBOARD if (deformflag > 0 && killerflag == 0 && controllerON == 0) //for SNOWBOARD { if (seccount2 < 4) { if (steerflag == 1) { steerA = steerA + 0.3f; } else { steerA = steerA - 0.3f; } if (steerA > 15.0f) { steerA = 14.8f; steerflag = 2; } if (steerA < -15.0f) { steerA = -14.8f; steerflag = 1; } } steerB = steerA; } //GAMING accleration//joystick to angulation& accleration if (controllerON != 0) { if (tracemode != 0 && (leg1flag == 0 || dt.Millisecond % 10 < 1)) { if (traceX < 240) { if (direction == 0) { direction = 1; } } if (traceX > 400) { if (direction == 0) { direction = 4; } } } // //1Right,2UP,4Left,8Down //2Xquads, 4Btri, 8Abatsu, 1Ymaru, start32, select 16 if (direction == 1 || direction == 3 || direction == 9) { //left joyangle = joyangle - 1.0f; if (joyangle < -20.0f) { joyangle = -20.0f; } } else if (direction == 4 || direction == 6 || direction == 12) { //right joyangle = joyangle + 1.0f; if (joyangle > +20.0f) { joyangle = +20.0f; } } else if (direction == 0) { joyangle = joyangle * 0.98f; } else { } // button if (pushbutton == 0) { speed = speed * 0.99f; willey = willey * 0.985f; } else if (pushbutton == 8) { speed = speed + 0.003f; willey = willey + 0.005f; if (speed > 5.0f) { speed = 5.0f; } if (willey > 1.9f) { willey = 1.9f; } } else if (pushbutton == 2) { speed = speed * 0.95f; willey = willey * 0.90f; } else if (pushbutton == 4) { brakeflag = 1; speed = speed - 0.003f; willey = willey - 0.02f; if (speed < -1.0f) { speed = -1.0f; } if (willey < 0.0f) { willey = 0.0f; } } } // GAMING steering move when gaming if (killerflag == 0 && controllerON != 0) { if (leg1flag == 0) { if (direction == 1 || direction == 3 || direction == 9) { //left steerA = steerA - 1.3f; if (steerA < -10.0f) { steerA = -10.0f; } } else if (direction == 4 || direction == 6 || direction == 12) { //right steerA = steerA + 1.3f; if (steerA > +10.0f) { steerA = +10.0f; } } else { steerA = steerA * 0.9f; } } else { if (direction == 1 || direction == 3 || direction == 9) { //left steerA = steerA - 0.1f; if (steerA < -5.0f) { steerA = -5.0f; } } else if (direction == 4 || direction == 6 || direction == 12) { //right steerA = steerA + 0.1f; if (steerA > +5.0f) { steerA = +5.0f; } } else { steerA = steerA * 0.95f; } } steerB = steerA; steerB2 = steerA2; } ////////////////////////// ///////////////////IKAKKUN // Ikakkun LEG if ((controllerON == 0 || tracemode > 0) && killerflag == 0) { // leg changes if (seccount3 < 2) { // steering rotate if (leg1flag == 1) { leg1A = leg1A + 0.2f; if (leg1A >= 2) { leg1A = 1; leg1flag = 2; } } else if (leg1flag == 2) { leg1A = leg1A - 0.2f; if (leg1A < -10) { leg1A = -9; leg1flag = 1; } } else { //no changes for steering } } if (seccount4 < 2) { // steering rotate if (leg2flag == 1) { leg2A = leg2A + 0.2f; if (leg2A >= 2) { leg2A = 1; leg2flag = 2; } } else if (leg2flag == 2) { leg2A = leg2A - 0.2f; if (leg2A < -10) { leg2A = -9; leg2flag = 1; } } else { //no changes for steering } } if (seccount5 < 2) { // steering rotate if (leg3flag == 1) { leg3A = leg3A + 0.2f; if (leg3A >= 8) { leg3A = 7; leg3flag = 2; } } else if (leg3flag == 2) { leg3A = leg3A - 0.2f; if (leg3A < -3) { leg3A = -2; leg3flag = 1; } } else { //no changes for steering } } if (seccount6 < 2) { if (leg4flag == 1) { leg4A = leg4A + 0.2f; if (leg4A >= 8) { leg4A = 7; leg4flag = 2; } } else if (leg4flag == 2) { leg4A = leg4A - 0.2f; if (leg4A < -3) { leg4A = -2; leg4flag = 1; } } else { //no changes for steering } } } else { if (leg1flag == 1) { leg1A = joyangle / 2; } if (leg2flag == 1) { leg2A = -joyangle / 2; } if (leg3flag == 1) { leg3A = -joyangle / 5; } if (leg4flag == 1) { leg4A = +joyangle / 5; } } ////////////////////////// /////////////////// KILLER MACHINE //Killermachine LEG //when viewing if ((controllerON == 0 || tracemode > 0)) { // steering changes // steering rotate for STEER A if (killerflag > 0 && seccount2 < 1) { // steering rotate if (steerflag == 1) { steerA = steerA + 0.4f; if (steerA > 10) { steerA = 9; steerflag = 2; } } else if (steerflag == 2) { steerA = steerA - 0.4f; if (steerA < -10) { steerA = -9; steerflag = 1; } } else { //no changes for steering } } // steering rotate for STEER B to G //arm if (killerflag > 0 && seccount4 < 2) { // steering rotate if (steerflagB == 1) { steerB = steerB + 0.4f; if (steerB > 10) { steerB = 9; steerflagB = 2; } } else if (steerflagB == 2) { steerB = steerB - 0.4f; if (steerB < -10) { steerB = -9; steerflagB = 1; } } else { //no changes for steering } } if (killerflag > 0 && seccount5 < 2) { // steering rotate if (steerflagC == 1) { steerC = steerC + 0.4f; if (steerC > 10) { steerC = 9; steerflagC = 2; } } else if (steerflagC == 2) { steerC = steerC - 0.4f; if (steerC < -10) { steerC = -9; steerflagC = 1; } } else { //no changes for steering } } //legs if (killerflag > 0 && seccount6 < 2) { // steering rotate if (steerflagD == 1) { steerD = steerD + 0.4f; if (steerD > 5) { steerD = 4; steerflagD = 2; } } else if (steerflagD == 2) { steerD = steerD - 0.4f; if (steerD < -10) { steerD = -9; steerflagD = 1; } } else { //no changes for steering } // steering rotate if (steerflagE == 1) { steerE = steerE + 0.4f; if (steerE > 10) { steerE = 9; steerflagE = 2; } } else if (steerflagE == 2) { steerE = steerE - 0.4f; if (steerE < -5) { steerE = -4; steerflagE = 1; } } else { //no changes for steering } // steering rotate if (steerflagF == 1) { steerF = steerF + 0.4f; if (steerF > 5) { steerF = 4; steerflagF = 2; } } else if (steerflagF == 2) { steerF = steerF - 0.4f; if (steerF < -10) { steerF = -9; steerflagF = 1; } } else { //no changes for steering } // steering rotate if (steerflagG == 1) { steerG = steerG + 0.4f; if (steerG > 10) { steerG = 9; steerflagG = 2; } } else if (steerflagG == 2) { steerG = steerG - 0.4f; if (steerG < -5) { steerG = -4; steerflagG = 1; } } else { //no changes for steering } } } //KIllermachine LEG //when GAMING else if (controllerON==1) { if (speed > 0) { // steering rotate for STEER A if (killerflag > 0) { // steering rotate if (steerflag == 1) { steerA = steerA + speed; if (steerA > 2) { steerA = 1.99f; steerflag = 2; } } else if (steerflag == 2) { steerA = steerA - speed; if (steerA < -2) { steerA = -1.99f; steerflag = 1; } } else { //no changes for steering } } // steering rotate for STEER B to G //arm if (killerflag > 0) { // steering rotate if (steerflagB == 1) { steerB = steerB + speed; if (steerB > 10) { steerB = 9; steerflagB = 2; } } else if (steerflagB == 2) { steerB = steerB - speed; if (steerB < -10) { steerB = -9; steerflagB = 1; } } else { //no changes for steering } } if (killerflag > 0) { // steering rotate if (steerflagC == 1) { steerC = steerC + speed; if (steerC > 10) { steerC = 9; steerflagC = 2; } } else if (steerflagC == 2) { steerC = steerC - speed; if (steerC < -10) { steerC = -9; steerflagC = 1; } } else { //no changes for steering } } //legs if (killerflag > 0) { // steering rotate if (steerflagD == 1) { steerD = steerD + speed; if (steerD > 5) { steerD = 4; steerflagD = 2; } } else if (steerflagD == 2) { steerD = steerD - speed; if (steerD < -10) { steerD = -9; steerflagD = 1; } } else { //no changes for steering } // steering rotate if (steerflagE == 1) { steerE = steerE + speed; if (steerE > 10) { steerE = 9; steerflagE = 2; } } else if (steerflagE == 2) { steerE = steerE - speed; if (steerE < -5) { steerE = -4; steerflagE = 1; } } else { //no changes for steering } // steering rotate if (steerflagF == 1) { steerF = steerF + speed; if (steerF > 5) { steerflagF = 2; } } else if (steerflagF == 2) { steerF = steerF - speed; if (steerF < -10) { steerflagF = 1; } } else { //no changes for steering } // steering rotate if (steerflagG == 1) { steerG = steerG + speed; if (steerG > 10) { steerflagG = 2; } } else if (steerflagG == 2) { steerG = steerG - speed; if (steerG < -5) { steerflagG = 1; } } else { //no changes for steering } } } else { if ((rotateflag + killerflag) > 0) { // steering rotate if (steerflag == 1) { steerA = steerA - speed; if (steerA > 2) { steerA = 1.99f; steerflag = 2; } } else if (steerflag == 2) { steerA = steerA + speed; if (steerA < -2) { steerA = -1.99f; steerflag = 1; } } else { //no changes for steering } } // steering rotate for STEER B to G //arm if ((rotateflag + killerflag) > 0) { // steering rotate if (steerflagB == 1) { steerB = steerB - speed; if (steerB > 10) { steerB = 9; steerflagB = 2; } } else if (steerflagB == 2) { steerB = steerB + speed; if (steerB < -10) { steerB = -9; steerflagB = 1; } } else { //no changes for steering } } if ((rotateflag + killerflag) > 0) { // steering rotate if (steerflagC == 1) { steerC = steerC - speed; if (steerC > 10) { steerC = 9; steerflagC = 2; } } else if (steerflagC == 2) { steerC = steerC + speed; if (steerC < -10) { steerC = -9; steerflagC = 1; } } else { //no changes for steering } } //legs if ((rotateflag + killerflag) > 0) { // steering rotate if (steerflagD == 1) { steerD = steerD - speed; if (steerD > 5) { steerD = 4; steerflagD = 2; } } else if (steerflagD == 2) { steerD = steerD + speed; if (steerD < -10) { steerD = -9; steerflagD = 1; } } else { //no changes for steering } // steering rotate if (steerflagE == 1) { steerE = steerE - speed; if (steerE > 10) { steerE = 9; steerflagE = 2; } } else if (steerflagE == 2) { steerE = steerE + speed; if (steerE < -5) { steerE = -4; steerflagE = 1; } } else { //no changes for steering } // steering rotate if (steerflagF == 1) { steerF = steerF - speed; if (steerF > 5) { steerflagF = 2; } } else if (steerflagF == 2) { steerF = steerF + speed; if (steerF < -10) { steerflagF = 1; } } else { //no changes for steering } // steering rotate if (steerflagG == 1) { steerG = steerG - speed; if (steerG > 10) { steerflagG = 2; } } else if (steerflagG == 2) { steerG = steerG + speed; if (steerG < -5) { steerflagG = 1; } } else { //no changes for steering } } } } else if (controllerON == 2 ) { if (acc_1P > 0) { int dash=acc_1P/30+1; // steering rotate if (steerflagD == 1) { steerD = steerD + dash; if (steerD > 5) { steerD = 4; steerflagD = 2; } } else if (steerflagD == 2) { steerD = steerD - dash; if (steerD < -10) { steerD = -9; steerflagD = 1; } } else { //no changes for steering } // steering rotate if (steerflagE == 1) { steerE = steerE + dash; if (steerE > 10) { steerE = 9; steerflagE = 2; } } else if (steerflagE == 2) { steerE = steerE - dash; if (steerE < -5) { steerE = -4; steerflagE = 1; } } else { //no changes for steering } // steering rotate if (steerflagF == 1) { steerF = steerF + dash; if (steerF > 5) { steerflagF = 2; } } else if (steerflagF == 2) { steerF = steerF - dash; if (steerF < -10) { steerflagF = 1; } } else { //no changes for steering } // steering rotate if (steerflagG == 1) { steerG = steerG + dash; if (steerG > 10) { steerflagG = 2; } } else if (steerflagG == 2) { steerG = steerG - dash; if (steerG < -5) { steerflagG = 1; } } else { //no changes for steering } } if (acc_2P > 0) { int dash = acc_2P / 30 + 1; // steering rotate if (steerflagD2 == 1) { steerD2 = steerD2 + dash; if (steerD2 > 5) { steerD2 = 4; steerflagD2 = 2; } } else if (steerflagD2 == 2) { steerD2 = steerD2 - dash; if (steerD2 < -10) { steerD2 = -9; steerflagD2 = 1; } } else { //no changes for steering } // steering rotate if (steerflagE2 == 1) { steerE2 = steerE2 + dash; if (steerE2 > 10) { steerE2 = 9; steerflagE2 = 2; } } else if (steerflagE2 == 2) { steerE2 = steerE2 - dash; if (steerE2 < -5) { steerE2 = -4; steerflagE2 = 1; } } else { //no changes for steering } // steering rotate if (steerflagF2 == 1) { steerF2 = steerF2 + dash; if (steerF2 > 5) { steerflagF2 = 2; } } else if (steerflagF2 == 2) { steerF2 = steerF2 - dash; if (steerF2 < -10) { steerflagF2 = 1; } } else { //no changes for steering } // steering rotate if (steerflagG2 == 1) { steerG2 = steerG2 + dash; if (steerG2 > 10) { steerflagG2 = 2; } } else if (steerflagG2 == 2) { steerG2 = steerG2 - dash; if (steerG2 < -5) { steerflagG2 = 1; } } else { //no changes for steering } } } //ikakkun leg dance if (controllerON == 2) { leg1A = steerD; leg2A = steerE; leg3A = steerF; leg4A = steerG; leg1A2 = steerE2; leg2A2 = steerD2; leg3A2 = steerG2; leg4A2 = steerF2; } ////////////////////////// /////////////////// paracycle //for paracycle accleration int offsetangle = 96; // for color change,paracycle int offset_Red = 2; int offset_Blue = 52; float acceleration_ratio = 1.0f; //paracycle accleration if (wheelflag == 2) //for paracycle,color change { if (normalcycleflag == 0) { if ((wheel4A % 100) < offsetangle) { acceleration_ratio = (float)(offsetangle - (wheel4A % 100)) * 0.04f; } else { acceleration_ratio = -(float)(offsetangle - (wheel4A % 100)) * 0.04f; } } else { acceleration_ratio = 1.0f; } if ((int)(wheel4A % 100) < offset_Red) { col6B = 95 - (offset_Red - (int)(wheel4A % 100)) * 1.6; } else if ((int)(wheel4A % 100) < offset_Blue) { col6B = 15 + (offset_Blue - (int)(wheel4A % 100)) * 1.6; } else { col6B = 15 + ((int)(wheel4A % 100) - offset_Blue) * 1.6; } if (col6B < 0) { col6B = 0; } // for safety col6R = 110 - col6B; } // WHEEL accleration // accleration changes of wheels 1,2,3,4 //when viewing if (controllerON == 0) { if (wheelflag == 1) { if (seccount < 10) { wheel1A = wheel1A + (float)seccount * 0.1f; wheel2A = wheel2A + (float)seccount * 0.1f; wheel3A = wheel3A + (float)seccount * 0.1f; wheel4A = wheel4A + (float)seccount * 0.1f; } else if (seccount < 20) { wheel1A = wheel1A + 1.0f; wheel2A = wheel2A + 1.0f; wheel3A = wheel3A + 1.0f; wheel4A = wheel4A + 1.0f; } else if (seccount < 25) { wheel1A = wheel1A - (float)(25 - seccount) * 0.2f; wheel2A = wheel2A - (float)(25 - seccount) * 0.2f; wheel3A = wheel3A - (float)(25 - seccount) * 0.2f; wheel4A = wheel4A - (float)(25 - seccount) * 0.2f; } else { // stop } } else if (wheelflag == 2) //for paracycle { if (seccount8 < 5) { wheel1A = wheel1A + (float)seccount8 * 0.1f * acceleration_ratio; wheel2A = wheel2A + (float)seccount8 * 0.1f; wheel3A = wheel3A + (float)seccount8 * 0.1f * acceleration_ratio; wheel4A = wheel4A + (float)seccount8 * 0.1f; } else if (seccount8 < 15) { wheel1A = wheel1A + 0.50f * acceleration_ratio; wheel2A = wheel2A + 0.50f; wheel3A = wheel3A + 0.50f * acceleration_ratio; wheel4A = wheel4A + 0.50f; } else if (seccount8 < 25) { wheel1A = wheel1A + 1.00f * acceleration_ratio; wheel2A = wheel2A + 1.00f; wheel3A = wheel3A + 1.00f * acceleration_ratio; wheel4A = wheel4A + 1.00f; } else if (seccount8 < 31) { wheel1A = wheel1A + (float)(31 - seccount8) * 0.2f * acceleration_ratio; wheel2A = wheel2A + (float)(31 - seccount8) * 0.2f; wheel3A = wheel3A + (float)(31 - seccount8) * 0.2f * acceleration_ratio; wheel4A = wheel4A + (float)(31 - seccount8) * 0.2f; } else { // stop } } if (wheel1A > 100) // for one-loop, accleration angle { wheel1A = wheel1A - 100; } if (wheel2A > 100) { wheel2A = wheel2A - 100; } if (wheel3A > 100) { wheel3A = wheel3A - 100; } if (wheel4A > 100) { wheel4A = wheel4A - 100; } if (ev008flag > 0) { if (willey > 0.8f) { wheel4A = wheel4A * 1.1f; } else { wheel4A = wheel4A * 0.9f; } } } else if (controllerON==2) { if (wheelflag == 1) { if (acc_1P>0) { wheel1A = wheel1A + (float) 1.1f*acc_1P; wheel2A = wheel2A + (float) 1.1f*acc_1P; wheel3A = wheel3A + (float) 1.1f*acc_1P; wheel4A = wheel4A + (float) 1.1f*acc_1P; } if (acc_2P > 0) { wheel1A2 = wheel1A2 + (float)1.1f * acc_2P; wheel2A2 = wheel2A2 + (float)1.1f * acc_2P; wheel3A2 = wheel3A2 + (float)1.1f * acc_2P; wheel4A2 = wheel4A2 + (float)1.1f * acc_2P; } } else if (wheelflag == 2) //for paracycle { if (acc_1P > 0) { wheel1A = wheel1A + (float) 1.1f * acceleration_ratio; wheel2A = wheel2A + (float) 1.1f; wheel3A = wheel3A + (float) 1.1f * acceleration_ratio; wheel4A = wheel4A + (float) 1.1f; } if (acc_2P > 0) { wheel1A2 = wheel1A2 + (float) 1.1f * acceleration_ratio; wheel2A2 = wheel2A2 + (float) 1.1f; wheel3A2 = wheel3A2 + (float) 1.1f * acceleration_ratio; wheel4A2 = wheel4A2 + (float) 1.1f; } } if (wheel1A > 100) // for one-loop, accleration angle { wheel1A = wheel1A - 100; } if (wheel2A > 100) { wheel2A = wheel2A - 100; } if (wheel3A > 100) { wheel3A = wheel3A - 100; } if (wheel4A > 100) { wheel4A = wheel4A - 100; } if (wheel1A2 > 100) // for one-loop, accleration angle { wheel1A2 = wheel1A2 - 100; } if (wheel2A2 > 100) { wheel2A2 = wheel2A2 - 100; } if (wheel3A2 > 100) { wheel3A2 = wheel3A2 - 100; } if (wheel4A2 > 100) { wheel4A2 = wheel4A2 - 100; } if (ev008flag > 0) { if (willey > 0.8f) { wheel4A = wheel4A * 1.1f; wheel4A2 = wheel4A2 * 1.1f; } else { wheel4A = wheel4A * 0.9f; wheel4A2 = wheel4A2 * 0.9f; } } } //when gaming else if (controllerON==1) { wheel1A = wheel1A + speed * 5.1f; wheel2A = wheel2A + speed * 5.1f; wheel3A = wheel3A + speed * 5.1f; wheel4A = wheel4A + speed * 5.1f; if (wheel1A > 100) // for one-loop, accleration angle { wheel1A = wheel1A - 100; } if (wheel2A > 100) { wheel2A = wheel2A - 100; } if (wheel3A > 100) { wheel3A = wheel3A - 100; } if (wheel4A > 100) { wheel4A = wheel4A - 100; } } ////////////////////////// /////////////////// ovalcycle // oval cycle move , wheel if (ovalflag > 0) { wheel2A = 100 - wheel4A + 75; float offs = 0.0f; float scale3 = 0.4f; wheel2A = wheel2A - 55.0f; if (wheel2A < 0.0f) { wheel2A = wheel2A + 100.0f; } if (wheel2A < 25) { offs = wheel2A * scale3; } else if (wheel2A < 50) { offs = (50.0f - wheel2A) * scale3; } else if (wheel2A < 75) { offs = (50.0f - wheel2A) * scale3; } else { offs = (wheel2A - 100.0f) * scale3; } wheel2A = wheel2A + 55.0f; wheel2A = wheel2A + offs; } if (ovalflag > 0) { wheel2A2 = 100 - wheel4A2 + 75; float offs = 0.0f; float scale3 = 0.4f; wheel2A2 = wheel2A2 - 55.0f; if (wheel2A2 < 0.0f) { wheel2A2 = wheel2A2 + 100.0f; } if (wheel2A2 < 25) { offs = wheel2A2 * scale3; } else if (wheel2A2 < 50) { offs = (50.0f - wheel2A2) * scale3; } else if (wheel2A2 < 75) { offs = (50.0f - wheel2A2) * scale3; } else { offs = (wheel2A2 - 100.0f) * scale3; } wheel2A2 = wheel2A2 + 55.0f; wheel2A2 = wheel2A2 + offs; } //////////////////////// DRAWING STLS /////////////////////////// //texture draw GL.PushMatrix(); if (textureflag > 1 && texturedispflag > 0) { // TITLE // // TITLE // finalrotate(); ConfigureBasicLighting_texture(Color.White); GL.Enable(EnableCap.Light1); GL.Enable(EnableCap.Light2); GL.Enable(EnableCap.Light3); GL.Enable(EnableCap.Light4); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Light6); GL.BindTexture(TextureTarget.Texture2D, 0); } GL.PopMatrix(); // TEXTURE 1P // GL.PushMatrix(); { if (texturedispflag > 0) { GL.BindTexture(TextureTarget.Texture2D, texnum); GL.Enable(EnableCap.Texture2D); //POSITIONING if (controllerON == 0) { ConfigureBasicLighting_texture(Color.White); GL.Enable(EnableCap.Light1); GL.Enable(EnableCap.Light2); GL.Enable(EnableCap.Light3); GL.Enable(EnableCap.Light4); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Light6); finalrotate(); GL.Scale(orb.scaleVal * scaling, orb.scaleVal * scaling, orb.scaleVal * scaling); GL.Translate(orb.PanX, orb.PanY, 0.0f); GL.Translate(offXX, offYY, offZZ); GL.Rotate(offa, offx, offy, offz); GL.Rotate(orb.orbitStr.angle, orb.orbitStr.ox, orb.orbitStr.oy, orb.orbitStr.oz); GL.Translate(0, 0, 1800); GL.Begin(PrimitiveType.Triangles); { for (int l = 0; l < f_count * 3; l++) { GL.TexCoord2((double)textureArray[l * 2 + 0], (1.0 - (double)textureArray[l * 2 + 1])); GL.Vertex3((double)texture_parameterArray[l * 3 + 0], (double)texture_parameterArray[l * 3 + 1], (double)texture_parameterArray[l * 3 + 2]); } } GL.End(); } else if (controllerON == 1) { ConfigureBasicLighting_texture3(Color.White); GL.Enable(EnableCap.Light1); GL.Enable(EnableCap.Light2); GL.Enable(EnableCap.Light3); GL.Enable(EnableCap.Light4); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Light6); controllerangle(); GL.Translate(0, 0, 4000); GL.Begin(PrimitiveType.Triangles); { for (int l = 0; l < f_count * 3; l++) { GL.TexCoord2((double)textureArray[l * 2 + 0], (1.0 - (double)textureArray[l * 2 + 1])); GL.Vertex3((double)texture_parameterArray[l * 3 + 0], (double)texture_parameterArray[l * 3 + 1], (double)texture_parameterArray[l * 3 + 2]); } } GL.End(); } else { if (evflag == 0) { ConfigureBasicLighting_texture(Color.White); GL.Enable(EnableCap.Light1); GL.Enable(EnableCap.Light2); GL.Enable(EnableCap.Light3); GL.Enable(EnableCap.Light4); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Light6); controllerangle1P(); GL.Translate(0, 0, 4000); GL.Begin(PrimitiveType.Triangles); { for (int l = 0; l < f_count * 3; l++) { GL.TexCoord2((double)textureArray[l * 2 + 0], (1.0 - (double)textureArray[l * 2 + 1])); GL.Vertex3((double)texture_parameterArray[l * 3 + 0], (double)texture_parameterArray[l * 3 + 1], (double)texture_parameterArray[l * 3 + 2]); } } GL.End(); } } } } GL.PopMatrix(); // Texture 2P // GL.PushMatrix(); { if (controllerON == 2 && evflag==0&& texturedispflag>0) { GL.BindTexture(TextureTarget.Texture2D, texnum_col2); GL.Enable(EnableCap.Texture2D); //POSITIONING controllerangle2P(); GL.Translate(0, 0, 4000); GL.Begin(PrimitiveType.Triangles); for (int l = 0; l < f_count * 3; l++) { GL.TexCoord2((double)textureArray[l * 2 + 0], (1.0 - (double)textureArray[l * 2 + 1])); GL.Vertex3((double)texture_parameterArray[l * 3 + 0], (double)texture_parameterArray[l * 3 + 1], (double)texture_parameterArray[l * 3 + 2]); } GL.End(); } } GL.PopMatrix(); // all drawing STLs // if (texturedispflag == 0) { ConfigureBasicLighting(Color.White); GL.Enable(EnableCap.Light4); GL.Enable(EnableCap.Light5); GL.Enable(EnableCap.Light6); // file array STL draw GL.PushMatrix(); { //SER1 steerA steeredbody GL.PushMatrix(); { // MOUSE MOVE if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON==1) { controllerangle(); } else { controllerangle1P(); } //make steering GL //rotate angle if (steerflag > 0 && killerflag == 0 && deformflag == 0 && rotateflag3 == 0) { dosteerAX(); } if (rotateflag3 == 1) // { dosteerAX(); } //snowboarding if (deformflag > 0) // snowboarding { dosteerAX_angleadd(angleadd); } ser1Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); //make steering GL //rotate angle if (steerflag > 0 && killerflag == 0 && deformflag == 0 && rotateflag3 == 0) { dosteerAX_2P(); } if (rotateflag3 == 1) // { dosteerAX_2P(); } //snowboarding if (deformflag > 0) // snowboarding { dosteerAX_2P_angleadd(angleadd); } colorchange(); ser1Draw(); colorchange(); } } GL.PopMatrix(); //SER2 FIXEDparts GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } //killerflag if (killerflag > 0 && steerflag > 0) { dosteerAX(); } ser2Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); //killerflag if (killerflag > 0 && steerflag > 0) { dosteerAX_2P(); } colorchange(); ser2Draw(); colorchange(); } } GL.PopMatrix(); //SER3 leg1 front right (with SER8) GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (rotateflag3 == 1) { dosteerBX(); } if (steerflag > 0 && paraflag == 0 && ovalflag == 0 && rotateflag3 == 0 && ev008flag == 0) { dosteerAX(); } //ikakkun if (leg1flag > 0 && killerflag == 0 && ev008flag == 0) { doleg1x(); } //killermachine if (steerflagB > 0 && killerflag != 0 && ev008flag == 0) { dosteerBX(); } //ev008 if (steerflagB > 0 && ev008flag == 1) { dosteerBX(); } ser3Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (rotateflag3 == 1) { dosteerBX_2P(); } if (steerflag > 0 && paraflag == 0 && ovalflag == 0 && rotateflag3 == 0 && ev008flag == 0) { dosteerAX_2P(); } //ikakkun if (leg1flag > 0 && killerflag == 0 && ev008flag == 0) { doleg1x_2P(); } //killermachine if (steerflagB > 0 && killerflag != 0 && ev008flag == 0) { dosteerBX_2P(); } //ev008 if (steerflagB > 0 && ev008flag == 1) { dosteerBX_2P(); } colorchange(); ser3Draw(); colorchange(); } } GL.PopMatrix(); //SER8 leg1 and wheel GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (steerflag > 0 && killerflag == 0 && deformflag == 0 && ev008flag == 0) { dosteerAX(); } if (deformflag > 0) { dosteerAX_angleadd(angleadd); } if (leg1flag > 0 && ev008flag == 0) { doleg1x(); } if (ev008flag > 0 && steerflag > 0) { dosteerBX(); } if (wheelflag > 0) { dowheel1x(); } if (steerflagF > 0 && killerflag != 0) { dosteerFX(); } ser8Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (steerflag > 0 && killerflag == 0 && deformflag == 0 && ev008flag == 0) { dosteerAX_2P(); } if (deformflag > 0) { dosteerAX_2P_angleadd(angleadd); } if (leg1flag > 0 && ev008flag == 0) { doleg1x_2P(); } if (ev008flag > 0 && steerflag > 0) { dosteerBX_2P(); } if (wheelflag > 0) { dowheel1x_2P(); } if (steerflagF > 0 && killerflag != 0) { dosteerFX_2P(); } colorchange(); ser8Draw(); colorchange(); } } GL.PopMatrix(); //SER5 leg2 front left with GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (steerflag > 0 && killerflag == 0 && ev008flag == 0) { dosteerAX(); } if (leg2flag > 0) { doleg2x(); } if (steerflagD > 0 && killerflag != 0) { dosteerDX(); } if (steerflag > 0 && ev008flag != 0) { dosteerCX(); } ser5Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (steerflag > 0 && killerflag == 0 && ev008flag == 0) { dosteerAX_2P(); } if (leg2flag > 0) { doleg2x_2P(); } if (steerflagD > 0 && killerflag != 0) { dosteerDX_2P(); } if (steerflag > 0 && ev008flag != 0) { dosteerCX_2P(); } colorchange(); ser5Draw(); colorchange(); } } GL.PopMatrix(); //SER A leg2 wheel2w GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (steerflag > 0 && ovalflag == 0 && paraflag == 0 && rotateflag3 == 0 && ev008flag == 0) { dosteerAX(); } if (rotateflag3 == 1) { dosteerBX(); if (wheelflag > 0) { dowheel2x(); } } if (leg2flag > 0 && ovalflag == 0 && ev008flag == 0) { doleg2x(); } if (wheelflag > 0 && ovalflag > 0 && ev008flag == 0) { dowheel2x(); } if (wheelflag > 0 && paraflag > 0 && ev008flag == 0) { dowheel4x(); } if (ev008flag > 0) { dosteerCX(); if (wheelflag > 0) { dowheel2x(); } } serADraw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (steerflag > 0 && ovalflag == 0 && paraflag == 0 && rotateflag3 == 0 && ev008flag == 0) { dosteerAX_2P(); } if (rotateflag3 == 1) { dosteerBX_2P(); if (wheelflag > 0) { dowheel2x_2P(); } } if (leg2flag > 0 && ovalflag == 0 && ev008flag == 0) { doleg2x_2P(); } if (wheelflag > 0 && ovalflag > 0 && ev008flag == 0) { dowheel2x_2P(); } if (wheelflag > 0 && paraflag > 0 && ev008flag == 0) { dowheel4x_2P(); } if (ev008flag > 0) { dosteerCX_2P(); if (wheelflag > 0) { dowheel2x_2P(); } } colorchange(); serADraw(); colorchange(); } } GL.PopMatrix(); //SER7 FIXEDparts GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (ev013flag > 0) { dosteerAX(); } if (killerflag > 0 && steerflagG > 0) { dosteerAX(); } if (ev013flag != 0 && ev005flag != 0 && ev003flag != 0 && ev008flag != 0) { ser7Draw(); // brakel light off } else { if (brakeflag == 1) { ser7Draw(); } } } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (ev013flag > 0) { dosteerAX_2P(); } if (killerflag > 0 && steerflagG > 0) { dosteerAX_2P(); } if (ev013flag != 0 && ev005flag != 0 && ev003flag != 0 && ev008flag != 0) { colorchange(); ser7Draw(); colorchange(); // brakel light off } else { if (brakeflag == 1) { ser7Draw(); } } } } GL.PopMatrix(); //SER4 leg3 GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (wheelflag > 0 && ovalflag > 0) { dowheel4x(); } if (killerflag > 0 && steerflag > 0) { dosteerAX(); } if (leg3flag > 0) { doleg3x(); } if (steerflagC > 0 && killerflag != 0 && ev008flag == 0) { dosteerCX(); } if (ev008flag > 0 && wheelflag > 0) { dowheel3x(); } ser4Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (wheelflag > 0 && ovalflag > 0) { dowheel4x_2P(); } if (killerflag > 0 && steerflag > 0) { dosteerAX_2P(); } if (leg3flag > 0) { doleg3x_2P(); } if (steerflagC > 0 && killerflag != 0 && ev008flag == 0) { dosteerCX_2P(); } if (ev008flag > 0 && wheelflag > 0) { dowheel3x_2P(); } colorchange(); ser4Draw(); colorchange(); } } GL.PopMatrix(); //SER9 leg3 GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (leg3flag > 0) { doleg3x(); } if (steerflagE > 0 && killerflag != 0 && ev008flag == 0) { dosteerEX(); } if (wheelflag > 0) { dowheel3x(); } ser9Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (leg3flag > 0) { doleg3x_2P(); } if (steerflagE > 0 && killerflag != 0 && ev008flag == 0) { dosteerEX_2P(); } if (wheelflag > 0) { dowheel3x_2P(); } colorchange(); ser9Draw(); colorchange(); } } GL.PopMatrix(); //SER6 leg4 GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (leg4flag > 0) { doleg4x(); } if (steerflagE > 0 && killerflag != 0) { dosteerEX(); } if (ev008flag > 0 && wheelflag > 0) { dowheel3x(); } ser6Draw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (leg4flag > 0) { doleg4x_2P(); } if (steerflagE > 0 && killerflag != 0) { dosteerEX_2P(); } if (ev008flag > 0 && wheelflag > 0) { dowheel3x_2P(); } colorchange(); ser6Draw(); colorchange(); } } GL.PopMatrix(); //SERB GL.PushMatrix(); { if (controllerON == 0) { finalrotate(); mouseA(); } else if (controllerON == 1) { controllerangle(); } else { controllerangle1P(); } if (leg4flag > 0) { doleg4x(); } if (wheelflag > 0) { dowheel4x(); } serBDraw(); } GL.PopMatrix(); GL.PushMatrix(); { if (controllerON == 2) { controllerangle2P(); if (leg4flag > 0) { doleg4x_2P(); } if (wheelflag > 0) { dowheel4x_2P(); } colorchange(); serBDraw(); colorchange(); } } GL.PopMatrix(); //shadow lighting if (controllerON == 1 && tracemode == 0) { float shadow = 0.03f; col1R = shadow; col1G = shadow; col1B = shadow; col2R = shadow; col2G = shadow; col2B = shadow; col3R = shadow; col3G = shadow; col3B = shadow; col4R = shadow; col4G = shadow; col4B = shadow; col5R = shadow; col5G = shadow; col5B = shadow; col6R = shadow; col6G = shadow; col6B = shadow; col7R = shadow; col7G = shadow; col7B = shadow; col1alpha = col1alpha / 4; col2alpha = col2alpha / 4; col3alpha = col3alpha / 4; col4alpha = col4alpha / 4; col5alpha = col5alpha / 4; col6alpha = col6alpha / 4; col7alpha = col7alpha / 4; //SER2 SHADOW GL.PushMatrix(); { finalrotate(); controllerangle_shadow(); if (killerflag > 0 && steerflag > 0) { dosteerAX(); } ser1Draw(); ser2Draw(); } GL.PopMatrix(); col1alpha = col1alpha_ref; col2alpha = col2alpha_ref; col3alpha = col3alpha_ref; col4alpha = col4alpha_ref; col5alpha = col5alpha_ref; col6alpha = col6alpha_ref; col7alpha = col7alpha_ref; col1R = col1R_ref; col1G = col1G_ref; col1B = col1B_ref; col2R = col2R_ref; col2G = col2G_ref; col2B = col2B_ref; col3R = col3R_ref; col3G = col3G_ref; col3B = col3B_ref; col4R = col4R_ref; col4G = col4G_ref; col4B = col4B_ref; col5R = col5R_ref; col5G = col5G_ref; col5B = col5B_ref; col6R = col6R_ref; col6G = col6G_ref; col6B = col6B_ref; col7R = col7R_ref; col7G = col7G_ref; col7B = col7B_ref; } } GL.PopMatrix(); } GL_Monitor.SwapBuffers(); } //switch paracycle <> normal cycle private void button30_Click(object sender, EventArgs e) { if (normalcycleflag == 0) { normalcycleflag = 1; if (paraflag == 1) { ser3flag = 1; serAflag = 1; ser2flag = 0; serBflag = 0; } if (ovalflag == 1) { ser3flag = 1; ser4flag = 1; ser2flag = 0; serAflag = 0; serBflag = 0; } button30.BackColor = Color.Red; } else { if (paraflag == 1) { ser3flag = 0; serAflag = 0; ser2flag = 1; serBflag = 1; } if (ovalflag == 1) { ser4flag = 0; ser3flag = 1; ser2flag = 1; serAflag = 1; serBflag = 1; } normalcycleflag = 0; button30.BackColor = Color.LightGray; } } // 360 round view switch on/off private void button31_Click(object sender, EventArgs e) { if (finalrotateflag == 0) { finalrotateflag = 1; } else { finalrotateflag = 0; } } //360 round public void finalrotate() { if (persemode > 0) { GL.Translate(0, 0, (double)numericUpDown41.Value * 100); GL.Rotate(180, 0.0, 1.0, 0.0); } if (finalrotateflag > 0) { double finalangle = ((double)prevtime % 50000.0) * 360.0 / 50000.0; if (leg1flag == 0 && killerflag == 0) { GL.Translate(150.0f * orb.scaleVal * scaling, 0.0f, 100.0f * orb.scaleVal * scaling); GL.Rotate(finalangle, 0.0, 1.0, 0.0); GL.Translate(-150.0f * orb.scaleVal * scaling, 0.0f, -100.0f * orb.scaleVal * scaling); } else if (killerflag > 0) { GL.Translate(50.0f * orb.scaleVal * scaling, 0.0f, 100.0f * orb.scaleVal * scaling); GL.Rotate(finalangle, 0.0, 1.0, 0.0); GL.Translate(-50.0f * orb.scaleVal * scaling, 0.0f, -100.0f * orb.scaleVal * scaling); } else { GL.Translate(2.0f * orb.scaleVal * scaling, 0.0f, 100.0f * orb.scaleVal * scaling); GL.Rotate(finalangle, 0.0, 1.0, 0.0); GL.Translate(-2.0f * orb.scaleVal * scaling, 0.0f, -100.0f * orb.scaleVal * scaling); } } } //directional or controller ON public void controllerangle() { if (persemode > 0) { GL.Translate(0, 0, (double)numericUpDown41.Value * 100); GL.Rotate(180, 0.0, 1.0, 0.0); } float scale2 = 1.4f; float XXX = +(traceX - 320) * 0.5f * orb.scaleVal * 2; float YYY = -(traceY - 240) * 0.5f * orb.scaleVal * 2; if (texturedispflag == 0) { GL.Translate(0, -500, 0); } if (paraflag > 0 || ovalflag > 0) { scale2 = 0.7f; } if (killerflag > 0) { scale2 = 1.0f; } if (leg1flag > 0) { scale2 = 0.9f; } if (texturedispflag > 0) { if (tracemode == 0) { GL.Translate(0, 0, -9000); GL.Scale(orb.scaleVal * scaling * 0.9, orb.scaleVal * scaling * 0.9, orb.scaleVal * scaling * 0.9); GL.Translate(offXX, offYY, offZZ); GL.Rotate(offa, offx, offy, offz); GL.Rotate(180, 0, 10, 0); GL.Rotate(58, -241, 127, 70); GL.Translate(-1000, -300, -1000); GL.Translate(-1000, 00, -1000); GL.Rotate(joyangle, 2, 10, 5); GL.Translate(-joyangle * 37, +joyangle * 7, 0); } else { GL.Translate(0, -500, 0); GL.Translate(-620, 270, 0); if (tracemode > 0) { GL.Translate(XXX * 5, YYY * 5, 0); } GL.Scale(orb.scaleVal * scaling, orb.scaleVal * scaling, orb.scaleVal * scaling); GL.Translate(497, 526, 0); GL.Translate(-890, 556, 0); GL.Rotate(offa, offx, offy, offz); GL.Rotate(128, 2, 7, 5); GL.Rotate(joyangle, 2, 8, 5); } } else { if (ev008flag > 0) { GL.Scale(orb.scaleVal * scaling * scale2 * 0.8f, orb.scaleVal * scaling * scale2 * 0.8f, orb.scaleVal * scaling * scale2 * 0.8f); } else { GL.Scale(orb.scaleVal * scaling * scale2, orb.scaleVal * scaling * scale2, orb.scaleVal * scaling * scale2); } GL.Rotate(96.0, 0.1, 0.0, 0.0); GL.Rotate(180.0, 0, 0.1, 0.0); if (ovalflag > 0 || paraflag > 0) { GL.Rotate(joyangle / 2, 0.0, 1.0, 0.0); } if (leg1flag > 0) { GL.Rotate(joyangle * 2, 0.0, 1.0, 0.0); } if (ev008flag > 0 && willey > 1.0f) { //WILLEY GL.Translate(-steerDXX * 2.360f, -steerDYY * 2.360f, -steerDZZ * 2.360f); GL.Rotate(-(willey - 1.0f) * 18.0f, 1, 0, 0); ; GL.Translate(+steerDXX * 2.360f, +steerDYY * 2.360f, +steerDZZ * 2.360f); } GL.Rotate(joyangle, 0, 0, 0.1); } if (tracemode != 0 && texturedispflag == 0) { if (ovalflag > 0 || paraflag > 0) { GL.Translate(-XXX * 10, 0, YYY * 10); GL.Translate(0, 0, 720); } else if (deformflag > 0) { GL.Translate(-XXX * 6, 0, YYY * 6); GL.Translate(50, 0, 200); } else if (killerflag > 0) { GL.Translate(-XXX, 0, YYY); GL.Translate(0, 0, 20); } else if (dummyflag > 0) { GL.Translate(-XXX*0.2*3.2/(double)scalf1, 0, YYY*0.2*3.2/(double)scalf1); } else if (evflag > 0) { GL.Translate(-XXX * 7.5, 0, YYY * 7.5); GL.Translate(0, 0, 122); } else if (leg1flag > 0) { GL.Translate(-XXX * 0.18, 0, YYY * 0.18); GL.Translate(0, 0, -102); } else if (leg1flag > 0) { GL.Translate(-XXX * 0.18, 0, YYY * 0.18); GL.Translate(0, 0, -102); } else if (ev008flag > 0) { GL.Translate(-XXX * 3.5, 0, YYY * 3.5); GL.Translate(0, 0, 122); } else { GL.Translate(-XXX * 5, 0, YYY * 5); GL.Translate(0, 0, 232); } GL.Translate(0, 0, 232); GL.Rotate(180.0, 0, 0, 0.1); } } public void controllerangle2P() { if (persemode > 0) { GL.Translate(0, 0, (double)numericUpDown41.Value * 100); GL.Rotate(180, 0.0, 1.0, 0.0); } GL.Translate(-wheel2XX * 2.360f, -wheel2YY * 2.360f, -wheel2ZZ * 2.360f); GL.Rotate(righty2 /800,1,0,0); GL.Translate(+wheel2XX * 2.360f, +wheel2YY * 2.360f, +wheel2ZZ * 2.360f); GL.Translate((float)posx2, (float)posy2, (float)posz2); GL.Rotate((double)-roty2, 1, 0, 0); GL.Rotate((double)-rotx2, 0, 0, 1); GL.Rotate((double)-rightx2/1000, 0, 1, 0); GL.Scale((double)scale_2P * (lefty2 + 40000) / 30000, (double)scale_2P * (lefty2 + 40000) / 30000, (double)scale_2P*1.3); } public void controllerangle1P() { if (persemode > 0) { GL.Translate(0, 0, (double)numericUpDown41.Value * 100); GL.Rotate(180, 0.0, 1.0, 0.0); } GL.Translate(-wheel2XX * 2.360f, -wheel2YY * 2.360f, -wheel2ZZ * 2.360f); GL.Rotate(righty1/ 800, 1, 0, 0); GL.Translate(+wheel2XX * 2.360f, +wheel2YY * 2.360f, +wheel2ZZ * 2.360f); GL.Translate((float)posx1, (float)posy1, (float)posz1); GL.Rotate((double)-roty1, 1, 0, 0); GL.Rotate((double)-rotx1, 0, 0, 1); GL.Rotate((double)-rightx1 / 1000, 0, 1, 0); GL.Scale((double)scale_1P * (lefty1 + 40000) / 30000, (double)scale_1P * (lefty1 + 40000) / 30000, (double)scale_1P * 1.3); } //directional for shadowing public void controllerangle_shadow() { if (persemode > 0) { GL.Translate(0, 0, (double)numericUpDown41.Value * 100); GL.Rotate(180, 0.0, 1.0, 0.0); } GL.Translate(0, -550, 0); float scale2 = 1.4f; if (paraflag > 0 || ovalflag > 0) { scale2 = 0.7f; } if (killerflag > 0) { scale2 = 1.0f; } if (leg1flag > 0) { scale2 = 0.9f; } if (texturedispflag > 0) { GL.Scale(orb.scaleVal * 1.2f, orb.scaleVal * scaling * 1.2f / 3, orb.scaleVal * scaling * 1.2f); GL.Translate(1055.0f, 1900.0f, 0.0f); GL.Rotate(joyangle / 2 + 175, 0, 10.0, 0); GL.Rotate(146.0f, -0.05f, 0.88f, 0.37f); GL.Rotate(80.0f, 7.05f, 15.88f, 9.37f); GL.Translate(-1300.0, -1000.0, 0.0); //GL.Rotate((float)numericUpDown16.Value, (float)numericUpDown17.Value, (float)numericUpDown18.Value, (float)numericUpDown19.Value); } else { GL.Scale(orb.scaleVal * scaling * scale2 * 1.2, orb.scaleVal * scaling * 1.2f / 3, orb.scaleVal * scaling * scale2 * 1.2); GL.Rotate(36.0, 0.1, 0.0, 0.0); GL.Rotate(180.0, 0, 0.1, 0.0); if (ovalflag > 0 || paraflag > 0) { GL.Rotate(joyangle / 2, 0.0, 1.0, 0.0); } if (leg1flag > 0) { GL.Rotate(joyangle * 2, 0.0, 1.0, 0.0); } GL.Rotate(joyangle, 0, 0, 0.1); } } /// read STL by MANUAL /// read STL by MANUAL ///// read STL by MANUAL // read STLfiles private void disp_items(bool check) { this.ControlBox = check; button1.ForeColor = frontcolor; button3.ForeColor = frontcolor; button4.ForeColor = frontcolor; button5.ForeColor = frontcolor; button6.ForeColor = frontcolor; button7.ForeColor = frontcolor; button8.ForeColor = frontcolor; button9.ForeColor = frontcolor; button10.ForeColor = frontcolor; button30.ForeColor = frontcolor; button31.ForeColor = frontcolor; button32.ForeColor = frontcolor; button33.ForeColor = frontcolor; button34.ForeColor = frontcolor; button36.ForeColor = frontcolor; button38.ForeColor = frontcolor; button39.ForeColor = frontcolor; button40.ForeColor = frontcolor; button67.ForeColor = frontcolor; button68.ForeColor = frontcolor; button69.ForeColor = frontcolor; button70.ForeColor = frontcolor; button87.ForeColor = frontcolor; button88.ForeColor = frontcolor; button11.ForeColor = frontcolor; button1.BackColor = butcolor; button2.BackColor = butcolor; button3.BackColor = butcolor; button4.BackColor = butcolor; button5.BackColor = butcolor; button6.BackColor = butcolor; button7.BackColor = butcolor; button8.BackColor = butcolor; button9.BackColor = butcolor; button10.BackColor = butcolor; button30.BackColor = butcolor; button31.BackColor = butcolor; button32.BackColor = butcolor; button33.BackColor = butcolor; button34.BackColor = butcolor; button36.BackColor = butcolor; button38.BackColor = butcolor; button39.BackColor = butcolor; button40.BackColor = butcolor; button67.BackColor = butcolor; button68.BackColor = butcolor; button69.BackColor = butcolor; button70.BackColor = butcolor; button87.BackColor = butcolor; button88.BackColor = butcolor; button11.ForeColor = frontcolor; button1.Visible = check; button2.Visible = check; button3.Visible = check; button4.Visible = check; button5.Visible = check; button6.Visible = check; button7.Visible = check; button8.Visible = check; button9.Visible = check; button10.Visible = check; button30.Visible = check; button31.Visible = check; button32.Visible = check; button33.Visible = check; button34.Visible = check; button36.Visible = check; button38.Visible = check; button39.Visible = check; button40.Visible = check; button67.Visible = check; button68.Visible = check; button69.Visible = check; button70.Visible = check; button87.Visible = check; button88.Visible = check; button11.Visible = check; label38.Visible = check; label74.Visible = check; label75.Visible = check; label83.Visible = check; label84.Visible = check; label86.Visible = check; if (vocalflag == 0) { textBox2.Visible = check; } else { textBox2.Visible = true; } GL_Monitor.Visible = true; /////////////////////// /// INTO STLload MODE /// /////////////////////// ///display & erase numericUpDown1.Visible = check; numericUpDown2.Visible = check; numericUpDown3.Visible = check; numericUpDown16.Visible = check; numericUpDown17.Visible = check; numericUpDown34.Visible = check; numericUpDown38.Visible = check; numericUpDown40.Visible = check; numericUpDown41.Visible = check; } /////////////////ALL in 1 //////////////// // ALL INE ONE MODE private void allinone() { // picture box back color = black pictureBox20.Visible = false; pictureBox21.Visible = false; GL_Monitor.Visible = true; /////////////////////// /// INTO VIEWER MODE /// /////////////////////// /// pictureBox14.Visible = false; /// kill STL panel BUTTON, slider button3.Visible = true; //texturebutton numericUpDown2.Visible = false; numericUpDown3.Visible = false; /// control for pics move /// pictureBox8.Visible = false; pictureBox14.Visible = false; } //////////////////COMP CALLforeach models //////////////// //////////////////COMP CALLforeach models //////////////// //////////////////COMP CALLforeach models //////////////// /// //////////////////COMP CALLforeach models //////////////// /// //model number select private void button67_Click(object sender, EventArgs e) { if (compnum != 0) { compname(); compcall(); } button67.BackColor = Color.Red; } private void button69_Click(object sender, EventArgs e) { compser++; if (compser > compcallmax) { compser = 0; } compname(); button67.BackColor = Color.LightGray; } private void button68_Click(object sender, EventArgs e) { compser--; if (compser < 0) { compser = compcallmax; } compname(); button67.BackColor = Color.LightGray; } //display model name public void compname() { if (compser == 0) { compnum = 2; button67.Text = "EV-003"; } else if (compser == 1) { compnum = 3; button67.Text = "EV-005"; } else if (compser == 2) { compnum = 13; button67.Text = "EV-008"; } else if (compser == 3) { compnum = 17; button67.Text = "EV-009"; } else if (compser == 4) { compnum = 18; button67.Text = "EV-011"; } else if (compser == 5) { compnum = 20; button67.Text = "EV-012"; } else if (compser == 6) { compnum = 4; button67.Text = "Ikakkun"; } else if (compser == 7) { compnum = 6; button67.Text = "Robin"; } else if (compser == 8) { compnum = 19; button67.Text = "WC-04"; } else if (compser == 9) { compnum = 10; button67.Text = "WC-05"; } else if (compser == 10) { compnum = 5; button67.Text = "NV200"; } else if (compser == 11) { compnum = 8; button67.Text = "snow"; } else if (compser == 12) { compnum = 7; button67.Text = "Paracycle"; } else if (compser == 13) { compnum = 9; button67.Text = "OvalGear"; } else if (compser == 14) { compnum = 1; button67.Text = "Mickey"; } else if (compser == 15) { compnum = 12; button67.Text = "dummy"; } //{ } / compnum = 11; button67.Text = "headMRI"; else if (compser == 16) { compnum = 12; button67.Text = "dummy"; } else if (compser == 17) { compnum = 12; button67.Text = "dummy"; } else if (compser == 18) { compnum = 12; button67.Text = "dummy"; } else if (compser == 19) { compnum = 12; button67.Text = "dummy"; } else if (compser == 20) { compnum = 14; button67.Text = "TimeSeq1"; } else { button67.Text = "NA"; } } //load EACH models private void compcall() { ReleaseallArray(); button67.Visible = false; textureflag = 0; texturedispflag = 0; rotateflag3 = 0; deformflag = 0; ovalflag = 0; paraflag = 0; dummyflag = 0; evflag = 0; finalrotateflag = 0; titleflag = 0; ev003flag = 0; ev005flag = 0; ev008flag = 0; ev013flag = 0; ev014flag = 0; killerflag = 0; seqflag = 0; seqnow = 0; seqmax = -1; //normal cycle button button30.Visible = false; //mouse position reset orb.Reset_All(); // reset stl fileflag for (int i = 0; i < 13; i++) { for (int j = 0; j < 8; j++) { fileflag[i, j] = 0; } } for (int i = 0; i < 26; i++) { for (int j = 0; j < 3; j++) { seqfileflag[i, j] = 0; } } // waiting sign label39.Visible = true; label39.Refresh(); //OpenGLclear GL.Clear(ClearBufferMask.ColorBufferBit); // MICKEY // if (compnum == 1) { filepath = @"d:\STLdata\model101\"; //miceky's arm offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 0; offYY = -120; offZZ = 0; numericUpDown2.Value = 27; rotateflag = 0; steerflag = 0; wheelflag = 0; killerflag = 0; textureflag = 0; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; scalf1 = 1.6f; scalf2 = 1.6f; titleflag = 1; col1R = 35; col1G = 35; col1B = 45; col1alpha = 0.9; // color tables col2R = 18; col2G = 16; col2B = 16; col2alpha = 0.9; col3R = 02; col3G = 02; col3B = 68; col3alpha = 0.5; col4R = 25; col4G = 20; col4B = 45; col4alpha = 1.0; } // MODEL 003 evwc else if (compnum == 2) { filepath = @"d:\STLdata\model003\"; // each component exlain ev003flag = 1; //series button button51.Text = "Handles"; button52.Text = "Main"; button53.Text = "none"; button54.Text = "none"; button55.Text = "none"; button56.Text = "none"; button57.Text = "none"; button58.Text = "Front"; button59.Text = "RearL"; button60.Text = "none"; button61.Text = "RearR"; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 200; offYY = -400; offZZ = 0; scalf1 = 0.5f; scalf2 = 0.5f; numericUpDown2.Value = 40; // illumination PanX_obj = 0; PanY_obj = 0; PanZ_obj = 0; OrbAngle_obj = 0.0f; OrbX_obj = -0.0f; OrbY_obj = -0.0f; OrbZ_obj = -0.00f; scalf1_obj = 0.18f; scalf2_obj = 0.18f; illum_obj = 40; evflag = 1; PanX_obj = 2805; PanY_obj = 502; PanZ_obj = 0; OrbAngle_obj = 62.0f; OrbX_obj = -0.020f; OrbY_obj = 0.44f; OrbZ_obj = 0.29f; scalf1_obj = 0.22f; scalf2_obj = 0.22f; illum_obj = 44; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 1; killerflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; numericUpDown2.Value = 24; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 25.0f; steerAZ = 13.0f; // steering factor steerAXX = 0.0f; steerAYY = 176.0f; steerAZZ = -137.0f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.02f; wheel1XX = -0.0f; wheel1YY = +317.2f; wheel1ZZ = -106.0f; wheel3A = 0.0f; wheel3AX = 1.0f; wheel3AY = 0.0f; wheel3AZ = 0.0f; wheel3XX = -0.0f; wheel3YY = -312.0f; wheel3ZZ = -106.0f; wheel4A = 0.0f; wheel4AX = 1.0f; wheel4AY = 0.0f; wheel4AZ = 0.0f; wheel4XX = -0.0f; wheel4YY = -312.0f; wheel4ZZ = -106.0f; col1R = 245; col1G = 15; col1B = 15; col1alpha = 1.0; // color tables col2R = 18; col2G = 16; col2B = 16; col2alpha = 0.9; col3R = 52; col3G = 12; col3B = 08; col3alpha = 1.0; col4R = 35; col4G = 20; col4B = 15; col4alpha = 1.0; col5R = 28; col5G = 28; col5B = 28; col5alpha = 0.8; col6R = 9; col6G = 11; col6B = 9; col6alpha = 0.9; col7R = 25; col7G = 25; col7B = 22; col7alpha = 1.0; } // MODEL 005 evwc else if (compnum == 3) { /////// model 005 filepath = @"d:\STLdata\model005\"; //series button button51.Text = "Handles"; button52.Text = "Main"; button53.Text = "none"; button54.Text = "none"; button55.Text = "none"; button56.Text = "none"; button57.Text = "none"; button58.Text = "Front"; button59.Text = "RearL"; button60.Text = "none"; button61.Text = "RearR"; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 200; offYY = -300; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; PanX_obj = 1200; PanY_obj = 800; PanZ_obj = 0; OrbAngle_obj = 97.0f; OrbX_obj = -0.31f; OrbY_obj = +0.46f; OrbZ_obj = +0.49f; scalf1_obj = 0.3f; scalf2_obj = 0.3f; illum_obj = 27; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 1; killerflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; evflag = 1; numericUpDown2.Value = 24; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 7.0f; steerAZ = 3.0f; // steering factor steerAXX = 0.0f; steerAYY = 73.0f; steerAZZ = -140.0f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.02f; wheel1XX = -0.0f; wheel1YY = +220.0f; wheel1ZZ = -101.2f; wheel3A = 0.0f; wheel3AX = 100.0f; wheel3AY = 0.0f; wheel3AZ = +12.0f; wheel3XX = -94.0f; wheel3YY = -162.0f; wheel3ZZ = -76.0f; wheel4A = 0.0f; wheel4AX = 100.0f; wheel4AY = 0.0f; wheel4AZ = -12.0f; wheel4XX = +94.0f; wheel4YY = -162.0f; wheel4ZZ = -76.0f; col1R = 35; col1G = 35; col1B = 45; col1alpha = 0.9; // color tables col2R = 18; col2G = 16; col2B = 16; col2alpha = 0.9; col3R = 12; col3G = 12; col3B = 48; col3alpha = 1.0; col4R = 25; col4G = 20; col4B = 45; col4alpha = 1.0; col5R = 8; col5G = 8; col5B = 8; col5alpha = 0.9; col6R = 35; col6G = 35; col6B = 42; col6alpha = 1.0; col7R = 205; col7G = 5; col7B = 5; col7alpha = 1.0; } // MODEL 011 evwc else if (compnum == 18) { /////// model 005 filepath = @"d:\STLdata\model011\"; //series button button51.Text = "Handles"; button52.Text = "Main"; button53.Text = "none"; button54.Text = "none"; button55.Text = "none"; button56.Text = "none"; button57.Text = "none"; button58.Text = "Front"; button59.Text = "Rear"; button60.Text = "none"; button61.Text = "none"; offa = 80.0f; offx = -0.4f; offy = -0.18f; offz = -0.46f; offXX = 30; offYY = -450; offZZ = 0;//primary view points scalf1 = 0.55f; scalf2 = 0.55f; PanX_obj = 1200; PanY_obj = 800; PanZ_obj = 0; OrbAngle_obj = 97.0f; OrbX_obj = -0.31f; OrbY_obj = +0.46f; OrbZ_obj = +0.49f; scalf1_obj = 0.3f; scalf2_obj = 0.3f; illum_obj = 27; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 1; killerflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; evflag = 1; numericUpDown2.Value = 24; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 1.0f; steerAZ = 2.0f; // steering factor steerAXX = 0.0f; steerAYY = 129.9f; steerAZZ = -266.4f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX =0.38f; wheel1YY = +214.8f; wheel1ZZ = -107.2f; wheel3A = 0.00f; wheel3AX = 100.0f; wheel3AY = 0.0f; wheel3AZ = +0.0f; wheel3XX = -0.254f; wheel3YY = -235.2f; wheel3ZZ = -125.0f; col1R = 15; col1G = 15; col1B = 15; col1alpha = 0.7; // color tables col2R = 28; col2G = 26; col2B = 26; col2alpha = 0.9; col3R = 42; col3G = 12; col3B = 18; col3alpha = 1.0; col4R = 45; col4G = 20; col4B = 25; col4alpha = 1.0; col5R = 8; col5G = 8; col5B = 8; col5alpha = 0.9; col6R = 35; col6G = 35; col6B = 42; col6alpha = 1.0; col7R = 205; col7G = 5; col7B = 5; col7alpha = 1.0; } // MODEL 013, Ikakkun else if (compnum == 4) { filepath = @"d:\STLdata\model013\"; ev013flag = 1; //series button button51.Text = "UpBody"; button52.Text = "LowBody"; button53.Text = "Rear-L"; button54.Text = "Front-L"; button55.Text = "Rear-R"; button56.Text = "Front-R"; button57.Text = "Ax-Body"; button58.Text = "ReLew"; button59.Text = "FrLew"; button60.Text = "ReRiw"; button61.Text = "FrRiw"; offXX = 30; offYY = -50; offZZ = 0; //primary view points offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; scalf1 = 4.6f; scalf2 = 4.6f; rotateflag = 1; steerflag = 1; wheelflag = 1; // to be rotated?? leg1flag = 1; leg2flag = 1; leg3flag = 1; leg4flag = 1; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; steerflagB = 1; steerflagC = 1; steerflagD = 1; steerflagE = 1; steerflagF = 2; steerflagG = 1; steerflagD2 = 1; steerflagE2 = 1; steerflagF2 = 2; steerflagG2 = 1; numericUpDown2.Value = 29; // illumination steerA = 0.0f; // steering factor steerAX = 0.0f; steerAY = 56.0f; steerAZ = 100.0f; steerAXX = 0.0f; steerAYY = 10.0f; steerAZZ = -0.0f; leg1A = 0; // leg moves leg1AX = 1.0f; leg1AY = 0.0f; leg1AZ = 0.0f; leg1XX = 0.0f; leg1YY = -0.0f; leg1ZZ = -20.0f; leg2A = 0; leg2AX = 1.0f; leg2AY = 0.0f; leg2AZ = 0.0f; leg2XX = 0.0f; leg2YY = 0.0f; leg2ZZ = -20.0f; leg3A = 0; leg3AX = 1.0f; leg3AY = 0.0f; leg3AZ = 0.0f; leg3XX = 0.0f; leg3YY = 0.3f; leg3ZZ = -18.0f; leg4A = 0; leg4AX = 1.0f; leg4AY = 0.0f; leg4AZ = 0.0f; leg4XX = 0.0f; leg4YY = 0.3f; leg4ZZ = -18.0f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.0f; // wheel moves wheel1XX = -0.0f; wheel1YY = -28.2f; wheel1ZZ = -6.27f; wheel2A = 0.0f; wheel2AX = 1.0f; wheel2AY = 0.0f; wheel2AZ = 0.0f; wheel2XX = -0.0f; wheel2YY = -28.2f; wheel2ZZ = -6.27f; wheel3A = 0.0f; wheel3AX = 1.0f; wheel3AY = 0.0f; wheel3AZ = 0.0f; wheel3XX = -0.0f; wheel3YY = +26.0f; wheel3ZZ = -6.3f; wheel4A = 0.0f; wheel4AX = 1.0f; wheel4AY = 0.0f; wheel4AZ = 0.0f; wheel4XX = -0.0f; wheel4YY = +26.0f; wheel4ZZ = -6.3f; col1R = 35; col1G = 35; col1B = 35; col1alpha = 0.9; // color tables col2R = 18; col2G = 16; col2B = 16; col2alpha = 1.0; col3R = 02; col3G = 02; col3B = 38; col3alpha = 1.0; col4R = 25; col4G = 20; col4B = 35; col4alpha = 1.0; col5R = 35; col5G = 15; col5B = 15; col5alpha = 1.0; col6R = 35; col6G = 35; col6B = 42; col6alpha = 0.7; col7R = 125; col7G = 18; col7B = 2; col7alpha = 1.0; } // MODEL NV200 vanett else if (compnum == 5) { filepath = @"d:\STLdata\NV200\"; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 0; steerflag = 0; wheelflag = 0; killerflag = 0; offXX = 316; offYY = 31; offZZ = 00; //primary view points offa = 201.0f; offx = -1.0f; offy = -9.0f; offz = -1.3f; ///primary view points PanX_obj = 860; PanY_obj = -230; PanZ_obj =0; OrbAngle_obj = -171.0f; OrbX_obj = 18.0f; OrbY_obj = 194.0f; OrbZ_obj = +53.0f; scalf1_obj = 0.6f; scalf2_obj = 0.6f; illum_obj = 45; scalf1 = 1.2f; scalf2 = 1.2f; numericUpDown2.Value = 42; // illumination col1R = 1; col1G = 1; col1B = 1; col1alpha = 0.7; // color tables texturedispflag = 1; titleflag = 1; } // MODEL killer machine else if (compnum == 6) { filepath = @"d:\STLdata\killerM\"; button51.Text = "Upper"; button52.Text = "LowBody"; button53.Text = "RL"; button54.Text = "FL"; button55.Text = "RR"; button56.Text = "FR"; button57.Text = "light"; button58.Text = "RL-W"; button59.Text = "FL-W"; button60.Text = "RR-W"; button61.Text = "FR-Ww"; textureflag = 0; titleflag = 1; rotateflag = 1; steerflag = 1; wheelflag = 0; steerflagB = 1; steerflagC = 1; steerflagD = 1; steerflagE = 1; steerflagF = 2; steerflagG = 1; steerflagD2 = 1; steerflagE2 = 1; steerflagF2 = 2; steerflagG2 = 1; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; offXX = 30; //primary view points offYY = -100; offZZ = 0; offa = 80.0f; offx = -6.0f; offy = 0.9f; offz = 0.9f; scalf1 = 1.90f; scalf2 = 1.90f; numericUpDown2.Value = 27; // illumination killerflag = 1; steerA = 0.0f; // steering factor steerAX = 0.0f; steerAY = 0.0f; steerAZ = 1.0f; steerAXX = 2.0f; steerAYY = 12.0f; steerAZZ = -0.0f; steerB = 0.0f; // steering factor steerBX = 17.0f; steerBY = 0.0f; steerBZ = -10.0f; steerBXX = -115.0f; steerBYY = 10.0f; steerBZZ = -9.0f; steerC = 0.0f; // steering factor steerCX = -17.0f; steerCY = 0.0f; steerCZ = -10.0f; steerCXX = 115.0f; steerCYY = 10.0f; steerCZZ = -9.0f; steerD = 0.0f; // steering factor steerDX = 3.0f; steerDY = -3.0f; steerDZ = -1.0f; steerDXX = 0f; steerDYY = 14.0f; steerDZZ = -25.0f; steerE = 0.0f; // steering factor steerEX = -3.0f; steerEY = -3.0f; steerEZ = -1.0f; steerEXX = 0f; steerEYY = 14.0f; steerEZZ = -25.0f; steerF = 0.0f; // steering factor steerFX = 3.0f; steerFY = -3.0f; steerFZ = -1.0f; steerFXX = 3.0f; steerFYY = 6.0f; steerFZZ = -27.0f; steerG = 0.0f; // steering factor steerGX = -3.0f; steerGY = -3.0f; steerGZ = -1.0f; steerGXX = -3.0f; steerGYY = -6.0f; steerGZZ = -27.0f; //Agreen for exterior ] //wh, red, green, blue, pink yellow col1R = 25; col1G = 25; col1B = 35; col1alpha = 1.0; // color tables col2R = 18; col2G = 16; col2B = 66; col2alpha = 0.7; col3R = 22; col3G = 32; col3B = 28; col3alpha = 0.7; col4R = 75; col4G = 10; col4B = 05; col4alpha = 0.9; col5R = 25; col5G = 15; col5B = 95; col5alpha = 0.9; col6R = 65; col6G = 55; col6B = 22; col6alpha = 0.9; col7R = 35; col7G = 48; col7B = 32; col7alpha = 0.9; } // MODEL paracycle else if (compnum == 7) { /////// model 03 filepath = @"d:\STLdata\model03\"; //series button button51.Text = "Handles"; button52.Text = "Main"; button53.Text = "none"; button54.Text = "none"; button55.Text = "none"; button56.Text = "none"; button57.Text = "none"; button58.Text = "Front"; button59.Text = "Rear"; button60.Text = "none"; button61.Text = "Gear"; offa = 136.0f; offx = -7.0f; offy = 9.0f; offz = 9.0f; offXX = 200; offYY = -400; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 2; killerflag = 0; //1120 steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; paraflag = 1; normalcycleflag = 0; titleflag = 1; numericUpDown2.Value = 24; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 6.0f; steerAZ = 23.0f; // steering factor steerAXX = 0.0f; steerAYY = 231.0f; steerAZZ = 4.0f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = -0.0f; wheel1YY = +212.0f; wheel1ZZ = -105.0f; wheel3A = 0.0f; wheel3AX = 1.0f; wheel3AY = 0.0f; wheel3AZ = 0.0f; wheel3XX = 0.0f; wheel3YY = -161.0f; wheel3ZZ = -105.0f; wheel4A = 0.0f; wheel4AX = 1.0f; wheel4AY = 0.0f; wheel4AZ = 0.0f; wheel4XX = -0.0f; wheel4YY = 8.0f; wheel4ZZ = -86.0f; col1R = 35; col1G = 35; col1B = 45; col1alpha = 0.9; // color tables col2R = 18; col2G = 16; col2B = 16; col2alpha = 0.9; col3R = 02; col3G = 02; col3B = 48; col3alpha = 1.0; col4R = 25; col4G = 20; col4B = 45; col4alpha = 1.0; col5R = 8; col5G = 8; col5B = 8; col5alpha = 0.9; col6R = 95; col6G = 15; col6B = 22; col6alpha = 0.7; col7R = 55; col7G = 25; col7B = 42; col7alpha = 1.0; button30.Visible = true; } // MODEL Ovalgear else if (compnum == 9) { /////// model 14 filepath = @"d:\STLdata\model14\"; //series button button51.Text = "Handles"; button52.Text = "Main"; button53.Text = "none"; button54.Text = "none"; button55.Text = "none"; button56.Text = "none"; button57.Text = "none"; button58.Text = "Front"; button59.Text = "Rear"; button60.Text = "none"; button61.Text = "Gear"; offa = 136.0f; offx = -7.0f; offy = 9.0f; offz = 9.0f; offXX = 200; offYY = -400; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 2; killerflag = 0; //1120 steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; ovalflag = 1; titleflag = 1; numericUpDown2.Value = 24; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 5.0f; steerAZ = 21.0f; // steering factor steerAXX = 0.0f; steerAYY = 224.0f; steerAZZ = -296.0f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = -0.0f; wheel1YY = +296.0f; wheel1ZZ = -113.0f; //Fr wheel3A = 0.0f; wheel3AX = 1.0f; wheel3AY = 0.0f; wheel3AZ = 0.0f; wheel3XX = 0.0f; wheel3YY = -127.0f; wheel3ZZ = -113.0f; //Rea wheel4A = 0.0f; wheel4AX = 1.0f; wheel4AY = 0.0f; wheel4AZ = 0.0f; // oval1st wheel4XX = 24.0f; wheel4YY = 42.0f; wheel4ZZ = -103.0f; wheel2A = 0.0f; wheel2AX = 1.0f; wheel2AY = 0.0f; wheel2AZ = 0.0f; // oval2nd wheel2XX = 24.0f; wheel2YY = 54.0f; wheel2ZZ = -157.0f; col1R = 9; col1G = 9; col1B = 9; col1alpha = 0.9; // color tables col2R = 18; col2G = 16; col2B = 16; col2alpha = 0.9; col3R = 42; col3G = 42; col3B = 42; col3alpha = 0.7; col4R = 15; col4G = 15; col4B = 15; col4alpha = 1.0; col5R = 15; col5G = 15; col5B = 18; col5alpha = 0.9; col6R = 95; col6G = 15; col6B = 22; col6alpha = 1.0; col7R = 25; col7G = 25; col7B = 22; col7alpha = 0.4; button30.Visible = true; } // MODEL 014 snowboard else if (compnum == 8) { /////// model 014 filepath = @"d:\STLdata\model014\"; ev014flag = 1; //series button button51.Text = "Folke"; button52.Text = "Board"; button53.Text = "none"; button54.Text = "none"; button55.Text = "none"; button56.Text = "none"; button57.Text = "none"; button58.Text = "Front"; button59.Text = "RearR"; button60.Text = "none"; button61.Text = "RearL"; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 240; offYY = -140; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 1; killerflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; deformflag = 1; textureflag = 0; titleflag = 1; numericUpDown2.Value = 27; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 33.0f; steerAZ = 100.0f; // steering factor steerAXX = -60.0f; steerAYY = 214.0f; steerAZZ = -110.0f; wheel1A = 0.0f; wheel1AX = 100.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = -62.0f; wheel1YY = +213.0f; wheel1ZZ = -42.0f; wheel3A = 0.0f; wheel3AX = 100.0f; wheel3AY = 0.0f; wheel3AZ = +0.0f; wheel3XX = -125.0f; wheel3YY = -141.0f; wheel3ZZ = -30.0f; wheel4A = 0.0f; wheel4AX = 100.0f; wheel4AY = 0.0f; wheel4AZ = -0.0f; wheel4XX = -0.0f; wheel4YY = -141.0f; wheel4ZZ = -30.0f; col1R = 12; col1G = 8; col1B = 5; col1alpha = 1.0; // color tables col2R = 68; col2G = 3; col2B = 2; col2alpha = 0.7; col3R = 35; col3G = 12; col3B = 12; col3alpha = 1.0; col4R = 56; col4G = 12; col4B = 20; col4alpha = 1.0; col5R = 12; col5G = 12; col5B = 12; col5alpha = 1.0; col6R = 12; col6G = 12; col6B = 12; col6alpha = 1.0; col7R = 55; col7G = 25; col7B = 42; col7alpha = 0.9; } // MODEL 05 wc else if (compnum == 10) { /////// model 014 filepath = @"d:\STLdata\model05\"; //series button button51.Text = "FL-Fork"; button52.Text = "Body"; button53.Text = "FR-Fork"; button54.Text = "Lbrake"; button55.Text = "none"; button56.Text = "Rbrake"; button57.Text = "none"; button58.Text = "FL-W"; button59.Text = "RL"; button60.Text = "FR-W"; button61.Text = "RR"; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 240; offYY = -140; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag2 = 0; steerflag = 1; wheelflag = 1; killerflag = 0; deformflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; paraflag = 0; ovalflag = 0; rotateflag3 = 1; numericUpDown2.Value = 27; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 0.0f; steerAZ = 100.0f; // steering factor steerAXX = -176.0f / 2.36f; steerAYY = +458.0f / 2.36f; steerAZZ = 39.82f / 2.36f; steerB = 0.0f; steerBX = 0.0f; steerBY = 0.0f; steerBZ = 100.0f; // steering factor steerBXX = +235.0f / 2.36f; steerBYY = +458.0f / 2.36f; steerBZZ = 39.82f / 2.36f; wheel1A = 0.0f; wheel1AX = 100.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = -176.0f / 2.36f; wheel1YY = +458.0f / 2.36f; wheel1ZZ = -39.0f / 2.36f; wheel2A = 0.0f; wheel2AX = 100.0f; wheel2AY = 0.0f; wheel2AZ = 0.00f; wheel2XX = +235.3f / 2.36f; wheel2YY = +458.0f / 2.36f; wheel2ZZ = -39.0f / 2.36f; wheel3A = 0.0f; wheel3AX = 100.0f; wheel3AY = 0.0f; wheel3AZ = +0.0f; wheel3XX = -200.3f / 2.36f; wheel3YY = +30.3f / 2.36f; wheel3ZZ = -250.3f / 2.36f; wheel4A = 0.0f; wheel4AX = 100.0f; wheel4AY = 0.0f; wheel4AZ = -0.0f; wheel4XX = +261.3f / 2.36f; wheel4YY = +28.9f / 2.36f; wheel4ZZ = -250.3f / 2.36f; col1R = 12; col1G = 8; col1B = 5; col1alpha = 1.0; // color tables col2R = 8; col2G = 3; col2B = 62; col2alpha = 0.7; col3R = 45; col3G = 52; col3B = 42; col3alpha = 1.0; col4R = 16; col4G = 12; col4B = 30; col4alpha = 1.0; col5R = 12; col5G = 12; col5B = 22; col5alpha = 0.9; col6R = 12; col6G = 12; col6B = 12; col6alpha = 0.9; col7R = 25; col7G = 35; col7B = 52; col7alpha = 1.0; } // MODEL 04 wc else if (compnum == 19) { /////// model 014 filepath = @"d:\STLdata\model04\"; //series button button51.Text = "RFork"; button52.Text = "Body"; button53.Text = "LFork"; button54.Text = "none"; button55.Text = "none"; button56.Text = "none"; button57.Text = "none"; button58.Text = "FrontR"; button59.Text = "RearR"; button60.Text = "FroneL"; button61.Text = "RearL"; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 340; offYY = -380; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag2 = 1; steerflag = 1; wheelflag = 1; killerflag = 0; deformflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 0; paraflag = 0; ovalflag = 0; rotateflag3 = 1; numericUpDown2.Value = 27; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 0.0f; steerAZ = 100.0f; // steering factor steerAXX = 101.6f; steerAYY = 167.4f; steerAZZ = -181.6f; steerB = 0.0f; steerBX = 0.0f; steerBY = 0.0f; steerBZ = 100.0f; // steering factor steerBXX = -101.6f; steerBYY = 167.4f; steerBZZ = -181.6f; wheel1A = 0.0f; wheel1AX = 100.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = -101.7f; wheel1YY = 127.1f; wheel1ZZ = -72.0f; wheel2A = 0.0f; wheel2AX = 100.0f; wheel2AY = 0.0f; wheel2AZ = 0.00f; wheel2XX = 101.7f; wheel2YY = 127.1f; wheel2ZZ = -72.0f; wheel3A = 0.0f; wheel3AX = 17.0f; wheel3AY = 0.0f; wheel3AZ = -3.0f; wheel3XX = -56.0f; wheel3YY = -127.1f; wheel3ZZ = -96.0f; wheel4A = 0.0f; wheel4AX = 17.0f; wheel4AY = 0.0f; wheel4AZ = 3.0f; wheel4XX = 56.0f; wheel4YY = -127.1f; wheel4ZZ = -96.0f; col1R = 32; col1G = 8; col1B = 5; col1alpha = 1.0; // color tables col2R = 48; col2G = 3; col2B = 2; col2alpha = 0.7; col3R = 45; col3G = 22; col3B = 12; col3alpha = 1.0; col4R = 16; col4G = 12; col4B = 10; col4alpha = 1.0; col5R = 22; col5G = 12; col5B = 15; col5alpha = 0.9; col6R = 22; col6G = 12; col6B = 12; col6alpha = 0.9; col7R = 25; col7G = 35; col7B = 22; col7alpha = 0.7; } //MODEL head by MRI else if (compnum == 11) { /////// model head (29%Z) filepath = @"d:\STLdata\modelhead\"; offa = 212.0f; offx = -1.0f; offy = -6.2f; offz = 6.2f; offXX = 222; offYY = 487; offZZ = 0;//primary view points scalf1 = 0.8f; scalf2 = 0.8f; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag2 = 0; steerflag = 0; wheelflag = 0; killerflag = 0; deformflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 0; paraflag = 0; ovalflag = 0; rotateflag3 = 0; numericUpDown2.Value = 23; // illumination col1R = 8; col1G = 1; col1B = 0; col1alpha = 0.2; // color tables col2R = 82; col2G = 3; col2B = 102; col2alpha = 0.9; col3R = 45; col3G = 52; col3B = 22; col3alpha = 0.2; col4R = 16; col4G = 12; col4B = 30; col4alpha = 0.2; col5R = 12; col5G = 12; col5B = 22; col5alpha = 0.4; col6R = 12; col6G = 12; col6B = 12; col6alpha = 0.4; col7R = 25; col7G = 35; col7B = 52; col7alpha = 0.4; } //DUmmy scan else if (compnum == 12) //dummy { filepath = ""; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag2 = 0; steerflag = 0; wheelflag = 0; killerflag = 0; deformflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 0; paraflag = 0; ovalflag = 0; rotateflag3 = 0;dummyflag = 1; offa = 0.0f; offx =0.0f; offy = 0.0f; offz = 0.0f; offXX = 0; offYY = 0; offZZ = 0;//primary view points scalf1 = 0.3f; scalf2 = 0.3f; numericUpDown2.Value = 23; // illumination col1R = 12; col1G = 12; col1B = 12; col1alpha = 0.1; // color tables col2R = 68; col2G = 3; col2B = 0; col2alpha = 0.3; col3R = 5; col3G = 82; col3B = 12; col3alpha = 0.3; col4R = 6; col4G = 2; col4B = 90; col4alpha = 0.3; col5R = 12; col5G = 12; col5B = 22; col5alpha = 0.4; col6R = 12; col6G = 12; col6B = 12; col6alpha = 0.4; col7R = 25; col7G = 35; col7B = 52; col7alpha = 0.4; } //EVWC-008 else if (compnum == 13) //EVWC-008 { /////// model 008 filepath = @"d:\STLdata\model008\"; ev008flag = 1; //series button button51.Text = "steering"; button52.Text = "MainBody"; button53.Text = "FR"; button54.Text = "Rea-L"; button55.Text = "FL"; button56.Text = "Rea-R"; button57.Text = "light"; button58.Text = "FR-w"; button59.Text = ""; button60.Text = "FL-w"; button61.Text = "Wiley"; offa = 79.0f; offx = -3.8f; offy = -0.8f; offz = -1.2f; offXX = 200; offYY = -400; offZZ = 0;//primary view points scalf1 = 0.55f; scalf2 = 0.55f; PanX_obj = 1500; PanY_obj = 1900; PanZ_obj = 0; OrbAngle_obj = 97.0f; OrbX_obj = -0.31f; OrbY_obj = +0.46f; OrbZ_obj = +0.49f; scalf1_obj = 0.3f; scalf2_obj = 0.3f; illum_obj = 27; ev008flag = 1; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 1; killerflag = 0; steerflagB = 1; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; evflag = 1; numericUpDown2.Value = 24; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 1.0f; steerAZ = 6.0f; // steering factor steerAXX = 0.0f; steerAYY = -441.0f / -2.60f; steerAZZ = 438.0f / -2.60f; steerB = 0.0f; steerBX = 0.0f; steerBY = 0.0f; steerBZ = 6.0f; // steering factor steerBXX = 137.0f; steerBYY = 214.0f; steerBZZ = 288.0f / -2.60f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = -335.8f / -2.60f; wheel1YY = -498.0f / -2.60f; wheel1ZZ = 110.67f / -2.60f; steerC = 0.0f; steerCX = 0.0f; steerCY = 0.0f; steerCZ = 6.0f; // steering factor steerCXX = -138.0f; steerCYY = 214.0f; steerCZZ = 367.0f / -2.60f; wheel2A = 0.0f; wheel2AX = 1.0f; wheel2AY = 0.0f; wheel2AZ = 0.00f; wheel2XX = +335.8f / -2.60f; wheel2YY = -498.0f / -2.60f; wheel2ZZ = 110.67f / -2.60f; wheel3A = 0.0f; wheel3AX = 100.0f; wheel3AY = 0.0f; wheel3AZ = 0.0f; //3rd, 4th wheel wheel3XX = -414.6f / -2.60f; wheel3YY = -124.0f; wheel3ZZ = -43.0f; wheel4A = 0.0f; wheel4AX = 100.0f; wheel4AY = 0.0f; wheel4AZ = 0.0f; //5h wheel wheel4XX = -8.90f / -2.60f; wheel4YY = -399.00f; wheel4ZZ = -191.0f; steerD = 0.0f; steerDX = 100.0f; steerDY = 0.0f; steerDZ = 6.0f; // for Willey steerDXX = -414.6f / -2.60f; steerDYY = -124.0f; steerDZZ = -43.0f; numericUpDown2.Value = 23; // illumination col1R = 12; col1G = 8; col1B = 5; col1alpha = 0.7; // color tables col2R = 62; col2G = 23; col2B = 22; col2alpha = 0.8; col3R = 25; col3G = 22; col3B = 22; col3alpha = 0.8; col4R = 46; col4G = 12; col4B = 10; col4alpha = 0.8; col5R = 22; col5G = 2; col5B = 22; col5alpha = 0.7; col6R = 202; col6G = 2; col6B = 2; col6alpha = 1.0; col7R = 155; col7G = 135; col7B = 142; col7alpha = 1.0; } //EVWC-012 else if (compnum == 20) //EVWC-012 { /////// model 008 filepath = @"d:\STLdata\model012\"; ev008flag = 1; //series button button51.Text = "steering"; button52.Text = "MainBody"; button53.Text = "FR"; button54.Text = "Rea-L"; button55.Text = "FL"; button56.Text = "Rea-R"; button57.Text = "light"; button58.Text = "FR-w"; button59.Text = ""; button60.Text = "FL-w"; button61.Text = ""; offa = 79.0f; offx = -3.8f; offy = -0.8f; offz = -1.2f; offXX = 200; offYY = -400; offZZ = 0;//primary view points scalf1 = 0.55f; scalf2 = 0.55f; PanX_obj = 1500; PanY_obj = 1900; PanZ_obj = 0; OrbAngle_obj = 97.0f; OrbX_obj = -0.31f; OrbY_obj = +0.46f; OrbZ_obj = +0.49f; scalf1_obj = 0.3f; scalf2_obj = 0.3f; illum_obj = 27; //ev008flag = 1; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag = 1; steerflag = 1; wheelflag = 1; killerflag = 0; steerflagB = 1; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; evflag = 1; numericUpDown2.Value = 24; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 0.0f; steerAZ = 6.0f; // steering factor steerAXX = 0.0f; steerAYY = -69.499f; steerAZZ = -40.753f; steerB = 0.0f; steerBX = 0.0f; steerBY = 0.0f; steerBZ = 6.0f; // steering factor steerBXX = 0.0f; steerBYY = -69.499f; steerBZZ = -40.753f; steerC = 0.0f; steerCX = 0.0f; steerCY = 0.0f; steerCZ = 6.0f; // steering factor steerCXX = 0.0f; steerCYY = -69.499f; steerCZZ = -40.753f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = -54.0f; wheel1YY = -0.01f; wheel1ZZ = 0.22f; wheel3A = 0.0f; wheel3AX = 1.0f; wheel3AY = 0.0f; wheel3AZ = 0.00f; wheel3XX = -146.2f; wheel3YY = -297.9f; wheel3ZZ = -8.5f; wheel2A = 0.0f; wheel2AX = 1.0f; wheel2AY = 0.0f; wheel2AZ = 0.0f; //3rd, 4th wheel wheel2XX = 62.2f; wheel2YY = -0.02f; wheel2ZZ = 0.22f; wheel4A = 0.0f; wheel4AX = 100.0f; wheel4AY = 0.0f; wheel4AZ = 0.0f; //5h wheel wheel4XX = 152.5f; wheel4YY = -297.9f; wheel4ZZ = -8.5f; numericUpDown2.Value = 23; // illumination col1R = 12; col1G = 8; col1B = 5; col1alpha = 0.7; // color tables col2R = 32; col2G = 33; col2B = 62; col2alpha = 0.8; col3R = 25; col3G = 22; col3B = 22; col3alpha = 0.8; col4R = 16; col4G = 16; col4B = 30; col4alpha = 0.8; col5R = 22; col5G = 22; col5B = 42; col5alpha = 0.7; col6R = 22; col6G = 12; col6B = 92; col6alpha = 1.0; col7R = 155; col7G = 5; col7B = 2; col7alpha = 1.0; } //timeseq else if (compnum == 14) //timeseq { filepath = @"d:\STLdata\timeseq001\"; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag2 = 0; steerflag = 0; wheelflag = 0; killerflag = 0; deformflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 0; paraflag = 0; ovalflag = 0; rotateflag3 = 0; seqflag = 1; seqnow = -1; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 240; offYY = -140; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; numericUpDown2.Value = 23; // illumination col1R = 0; col1G = 18; col1B = 0; col1alpha = 0.2; // color tables col2R = 0; col2G = 0; col2B = 62; col2alpha = 0.5; col3R = 25; col3G = 0; col3B = 0; col3alpha = 0.2; col4R = 16; col4G = 12; col4B = 30; col4alpha = 0.5; col5R = 12; col5G = 12; col5B = 22; col5alpha = 0.4; col6R = 12; col6G = 12; col6B = 12; col6alpha = 0.4; col7R = 25; col7G = 35; col7B = 52; col7alpha = 0.4; } //timeseq else if (compnum == 15) //timeseq { filepath = @"d:\STLdata\timeseq002\"; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag2 = 0; steerflag = 0; wheelflag = 0; killerflag = 0; deformflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 0; paraflag = 0; ovalflag = 0; rotateflag3 = 0; seqflag = 1; seqnow = -1; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 240; offYY = -140; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; numericUpDown2.Value = 23; // illumination col1R = 0; col1G = 18; col1B = 0; col1alpha = 0.2; // color tables col2R = 0; col2G = 0; col2B = 62; col2alpha = 0.5; col3R = 25; col3G = 0; col3B = 0; col3alpha = 0.2; col4R = 16; col4G = 12; col4B = 30; col4alpha = 0.5; col5R = 12; col5G = 12; col5B = 22; col5alpha = 0.4; col6R = 12; col6G = 12; col6B = 12; col6alpha = 0.4; col7R = 25; col7G = 35; col7B = 52; col7alpha = 0.4; } //timeseq else if (compnum == 16) //timeseq { filepath = @"d:\STLdata\timeseq003\"; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag2 = 0; steerflag = 0; wheelflag = 0; killerflag = 0; deformflag = 0; steerflagB = 0; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 0; paraflag = 0; ovalflag = 0; rotateflag3 = 0; seqflag = 1; seqnow = -1; offa = 79.0f; offx = -1.2f; offy = -1.2f; offz = -1.2f; offXX = 240; offYY = -140; offZZ = 0;//primary view points scalf1 = 0.6f; scalf2 = 0.6f; numericUpDown2.Value = 23; // illumination col1R = 0; col1G = 18; col1B = 0; col1alpha = 0.2; // color tables col2R = 0; col2G = 0; col2B = 62; col2alpha = 0.5; col3R = 25; col3G = 0; col3B = 0; col3alpha = 0.2; col4R = 16; col4G = 12; col4B = 30; col4alpha = 0.5; col5R = 12; col5G = 12; col5B = 22; col5alpha = 0.4; col6R = 12; col6G = 12; col6B = 12; col6alpha = 0.4; col7R = 25; col7G = 35; col7B = 52; col7alpha = 0.4; } //mode 009 rollerman else if (compnum==17) // mdoel 009 { /////// model 009 filepath = @"d:\STLdata\model009\"; //series button button51.Text = "steering"; button52.Text = "MainBody"; button53.Text = "FR"; button54.Text = "Rea-L"; button55.Text = "FL"; button56.Text = "Rea-R"; button57.Text = "light"; button58.Text = "FR-w"; button59.Text = ""; button60.Text = "FL-w"; button61.Text = "Wiley"; offa = 79.0f; offx = -3.2f; offy = -1.2f; offz = -1.2f; offXX = 240; offYY = -240; offZZ = 0;//primary view points scalf1 = 0.7f; scalf2 = 0.7f; ev008flag = 1; leg1flag = 0; leg2flag = 0; leg3flag = 0; leg4flag = 0; rotateflag= 1; steerflag = 1; wheelflag = 1; killerflag = 0; steerflagB = 1; steerflagC = 0; steerflagD = 0; steerflagE = 0; steerflagF = 0; steerflagG = 0; textureflag = 0; titleflag = 1; evflag = 1; numericUpDown2.Value = 27; // illumination steerA = 0.0f; steerAX = 0.0f; steerAY = 0.0f; steerAZ = 6.0f; // steering factor steerAXX = 0.0f; steerAYY = -441.0f / -2.60f; steerAZZ = 438.0f / -2.60f; steerB = 0.0f; steerBX = 0.0f; steerBY = 0.0f; steerBZ = 1.0f; // steering factor steerBXX = 112.0f; steerBYY = 149.0f; steerBZZ = -61.0f; wheel1A = 0.0f; wheel1AX = 1.0f; wheel1AY = 0.0f; wheel1AZ = 0.00f; wheel1XX = 112.8f; wheel1YY =142.8f; wheel1ZZ = -26.4f; steerC = 0.0f; steerCX = 0.0f; steerCY = 0.0f; steerCZ =1.0f; // steering factor steerCXX = -112.0f; steerCYY = 149.0f; steerCZZ = -61.0f; wheel2A = 0.0f; wheel2AX = 1.0f; wheel2AY = 0.0f; wheel2AZ = 0.00f; wheel2XX =-111.8f; wheel2YY = 142.8f; wheel2ZZ = -26.4f; wheel3A = 0.0f; wheel3AX = 14.0f; wheel3AY = 0.0f; wheel3AZ = 0.0f; //3rd, 4th wheel wheel3XX = -123.0f; wheel3YY = -0.8f; wheel3ZZ = -43.0f; wheel4A = 0.0f; wheel4AX = 100.0f; wheel4AY = 0.0f; wheel4AZ = 0.0f; //5h wheel wheel4XX = 0.0f; wheel4YY = -166.8f; wheel4ZZ = -84.8f; steerD = 0.0f; steerDX = 100.0f; steerDY = 0.0f; steerDZ = 0.0f; // for Willey steerDXX = 0.0f; steerDYY = -0.8f; steerDZZ = -43.0f; col1R = 12; col1G = 12; col1B = 12; col1alpha = 0.5; // color tables col2R = 22; col2G = 23; col2B = 22; col2alpha = 0.8; col3R = 5; col3G = 5; col3B = 5; col3alpha = 0.8; col4R = 66; col4G = 22; col4B = 30; col4alpha = 0.8; col5R = 12; col5G = 11; col5B = 22; col5alpha = 0.5; col6R = 82; col6G = 32; col6B = 42; col6alpha = 0.4; col7R = 205; col7G = 1; col7B = 1; col7alpha = 1.0; } else { filepath = ""; } // adjust default size orb.scaleVal = scalf1; // read for STL arrays stlreadarray(); // para.oval cycle, gear type if (paraflag > 0) { ser3flag = 0; serAflag = 0; } if (ovalflag > 0) { ser4flag = 0; ser3flag = 1; ser2flag = 1; serAflag = 1; serBflag = 1; } // adjust size for NV200 vanett if (compnum == 5 && fileflag[1, 1] > 0) { for (int i = 0; i < norm_ser1_ch1.Length; i++) { norm_ser1_ch1[i] = norm_ser1_ch1[i] * 100.0f; } for (int i = 0; i < para_ser1_ch1.Length; i++) { para_ser1_ch1[i] = para_ser1_ch1[i] * 100.0f; } } // display mesh num //label7.Text = (meshnum / 3).ToString() + "meshes" + filemeshnum.ToString() + "file"; scale_1P = scalf1; scale_2P = scalf1; OrbAngle_norm = offa; OrbX_norm = offx; OrbY_norm = offy; OrbZ_norm = offz; PanX_norm = offXX; PanY_norm = offYY; PanZ_norm = offZZ; scalf1_norm = scalf1; scalf2_norm = scalf2; illum_norm = (int)numericUpDown2.Value; wheel1AX_ref = wheel1AX; wheel1AY_ref = wheel1AY; wheel1AZ_ref = wheel1AZ; wheel1XX_ref = wheel1XX; wheel1YY_ref = wheel1YY; wheel1ZZ_ref = wheel1ZZ; wheel2AX_ref = wheel2AX; wheel2AY_ref = wheel2AY; wheel2AZ_ref = wheel2AZ; wheel2XX_ref = wheel2XX; wheel2YY_ref = wheel2YY; wheel2ZZ_ref = wheel2ZZ; wheel3AX_ref = wheel3AX; wheel3AY_ref = wheel3AY; wheel3AZ_ref = wheel3AZ; wheel3XX_ref = wheel3XX; wheel3YY_ref = wheel3YY; wheel3ZZ_ref = wheel3ZZ; wheel4AX_ref = wheel4AX; wheel4AY_ref = wheel4AY; wheel4AZ_ref = wheel4AZ; wheel4XX_ref = wheel4XX; wheel4YY_ref = wheel4YY; wheel4ZZ_ref = wheel4ZZ; steerAX_ref = steerAX; steerAY_ref = steerAY; steerAZ_ref = steerAZ; steerAXX_ref = steerAXX; steerAYY_ref = steerAYY; steerAZZ_ref = steerAZZ; ///////////////// // RTF,MP4, PDF files ///////////////// /// rtfFile = filepath + "doc.rtf"; mp4File = filepath + "playmp4.mp4"; pdffile = filepath + "3d.pdf"; objfile = filepath + "model.obj"; texfile = filepath + "model.jpg"; /////////////// // check for A_, B_ STL series i old version ////////////// string whFile = filepath + "Awhite.stl"; string reFile = filepath + "Ared.stl"; string grFile = filepath + "Agreen.stl"; string blFile = filepath + "Ablue.stl"; string piFile = filepath + "Apink.stl"; string yeFile = filepath + "Ayellow.stl"; string whFile2 = filepath + "Bwhite.stl"; string reFile2 = filepath + "Bred.stl"; string grFile2 = filepath + "Bgreen.stl"; string blFile2 = filepath + "Bblue.stl"; string piFile2 = filepath + "Bpink.stl"; string yeFile2 = filepath + "Byellow.stl"; // START from ALL in 1 one mode allinone(); //wait message erase label39.Visible = false; label39.Refresh(); // clone para & norm array to _ref array if (deformflag > 0) { if (fileflag[1, 1] > 0) { para_ser1_ch1_ref = (float[])para_ser1_ch1.Clone(); } if (fileflag[1, 2] > 0) { para_ser1_ch2_ref = (float[])para_ser1_ch2.Clone(); } if (fileflag[1, 3] > 0) { para_ser1_ch3_ref = (float[])para_ser1_ch3.Clone(); } if (fileflag[1, 4] > 0) { para_ser1_ch4_ref = (float[])para_ser1_ch4.Clone(); } if (fileflag[1, 5] > 0) { para_ser1_ch5_ref = (float[])para_ser1_ch5.Clone(); } if (fileflag[1, 6] > 0) { para_ser1_ch6_ref = (float[])para_ser1_ch6.Clone(); } if (fileflag[1, 7] > 0) { para_ser1_ch7_ref = (float[])para_ser1_ch7.Clone(); } if (fileflag[2, 1] > 0) { para_ser2_ch1_ref = (float[])para_ser2_ch1.Clone(); } if (fileflag[2, 2] > 0) { para_ser2_ch2_ref = (float[])para_ser2_ch2.Clone(); } if (fileflag[2, 3] > 0) { para_ser2_ch3_ref = (float[])para_ser2_ch3.Clone(); } if (fileflag[2, 4] > 0) { para_ser2_ch4_ref = (float[])para_ser2_ch4.Clone(); } if (fileflag[2, 5] > 0) { para_ser2_ch5_ref = (float[])para_ser2_ch5.Clone(); } if (fileflag[2, 6] > 0) { para_ser2_ch6_ref = (float[])para_ser2_ch6.Clone(); } if (fileflag[2, 7] > 0) { para_ser2_ch7_ref = (float[])para_ser2_ch7.Clone(); } if (fileflag[3, 1] > 0) { para_ser3_ch1_ref = (float[])para_ser3_ch1.Clone(); } if (fileflag[3, 2] > 0) { para_ser3_ch2_ref = (float[])para_ser3_ch2.Clone(); } if (fileflag[3, 3] > 0) { para_ser3_ch3_ref = (float[])para_ser3_ch3.Clone(); } if (fileflag[3, 4] > 0) { para_ser3_ch4_ref = (float[])para_ser3_ch4.Clone(); } if (fileflag[3, 5] > 0) { para_ser3_ch5_ref = (float[])para_ser3_ch5.Clone(); } if (fileflag[3, 6] > 0) { para_ser3_ch6_ref = (float[])para_ser3_ch6.Clone(); } if (fileflag[3, 7] > 0) { para_ser3_ch7_ref = (float[])para_ser3_ch7.Clone(); } if (fileflag[4, 1] > 0) { para_ser4_ch1_ref = (float[])para_ser4_ch1.Clone(); } if (fileflag[4, 2] > 0) { para_ser4_ch2_ref = (float[])para_ser4_ch2.Clone(); } if (fileflag[4, 3] > 0) { para_ser4_ch3_ref = (float[])para_ser4_ch3.Clone(); } if (fileflag[4, 4] > 0) { para_ser4_ch4_ref = (float[])para_ser4_ch4.Clone(); } if (fileflag[4, 5] > 0) { para_ser4_ch5_ref = (float[])para_ser4_ch5.Clone(); } if (fileflag[4, 6] > 0) { para_ser4_ch6_ref = (float[])para_ser4_ch6.Clone(); } if (fileflag[4, 7] > 0) { para_ser4_ch7_ref = (float[])para_ser4_ch7.Clone(); } if (fileflag[5, 1] > 0) { para_ser5_ch1_ref = (float[])para_ser5_ch1.Clone(); } if (fileflag[5, 2] > 0) { para_ser5_ch2_ref = (float[])para_ser5_ch2.Clone(); } if (fileflag[5, 3] > 0) { para_ser5_ch3_ref = (float[])para_ser5_ch3.Clone(); } if (fileflag[5, 4] > 0) { para_ser5_ch4_ref = (float[])para_ser5_ch4.Clone(); } if (fileflag[5, 5] > 0) { para_ser5_ch5_ref = (float[])para_ser5_ch5.Clone(); } if (fileflag[5, 6] > 0) { para_ser5_ch6_ref = (float[])para_ser5_ch6.Clone(); } if (fileflag[5, 7] > 0) { para_ser5_ch7_ref = (float[])para_ser5_ch7.Clone(); } if (fileflag[6, 1] > 0) { para_ser6_ch1_ref = (float[])para_ser6_ch1.Clone(); } if (fileflag[6, 2] > 0) { para_ser6_ch2_ref = (float[])para_ser6_ch2.Clone(); } if (fileflag[6, 3] > 0) { para_ser6_ch3_ref = (float[])para_ser6_ch3.Clone(); } if (fileflag[6, 4] > 0) { para_ser6_ch4_ref = (float[])para_ser6_ch4.Clone(); } if (fileflag[6, 5] > 0) { para_ser6_ch5_ref = (float[])para_ser6_ch5.Clone(); } if (fileflag[6, 6] > 0) { para_ser6_ch6_ref = (float[])para_ser6_ch6.Clone(); } if (fileflag[6, 7] > 0) { para_ser6_ch7_ref = (float[])para_ser6_ch7.Clone(); } if (fileflag[7, 1] > 0) { para_ser7_ch1_ref = (float[])para_ser7_ch1.Clone(); } if (fileflag[7, 2] > 0) { para_ser7_ch2_ref = (float[])para_ser7_ch2.Clone(); } if (fileflag[7, 3] > 0) { para_ser7_ch3_ref = (float[])para_ser7_ch3.Clone(); } if (fileflag[7, 4] > 0) { para_ser7_ch4_ref = (float[])para_ser7_ch4.Clone(); } if (fileflag[7, 5] > 0) { para_ser7_ch5_ref = (float[])para_ser7_ch5.Clone(); } if (fileflag[7, 6] > 0) { para_ser7_ch6_ref = (float[])para_ser7_ch6.Clone(); } if (fileflag[7, 7] > 0) { para_ser7_ch7_ref = (float[])para_ser7_ch7.Clone(); } if (fileflag[8, 1] > 0) { para_ser8_ch1_ref = (float[])para_ser8_ch1.Clone(); } if (fileflag[8, 2] > 0) { para_ser8_ch2_ref = (float[])para_ser8_ch2.Clone(); } if (fileflag[8, 3] > 0) { para_ser8_ch3_ref = (float[])para_ser8_ch3.Clone(); } if (fileflag[8, 4] > 0) { para_ser8_ch4_ref = (float[])para_ser8_ch4.Clone(); } if (fileflag[8, 5] > 0) { para_ser8_ch5_ref = (float[])para_ser8_ch5.Clone(); } if (fileflag[8, 6] > 0) { para_ser8_ch6_ref = (float[])para_ser8_ch6.Clone(); } if (fileflag[8, 7] > 0) { para_ser8_ch7_ref = (float[])para_ser8_ch7.Clone(); } if (fileflag[9, 1] > 0) { para_ser9_ch1_ref = (float[])para_ser9_ch1.Clone(); } if (fileflag[9, 2] > 0) { para_ser9_ch2_ref = (float[])para_ser9_ch2.Clone(); } if (fileflag[9, 3] > 0) { para_ser9_ch3_ref = (float[])para_ser9_ch3.Clone(); } if (fileflag[9, 4] > 0) { para_ser9_ch4_ref = (float[])para_ser9_ch4.Clone(); } if (fileflag[9, 5] > 0) { para_ser9_ch5_ref = (float[])para_ser9_ch5.Clone(); } if (fileflag[9, 6] > 0) { para_ser9_ch6_ref = (float[])para_ser9_ch6.Clone(); } if (fileflag[9, 7] > 0) { para_ser9_ch7_ref = (float[])para_ser9_ch7.Clone(); } if (fileflag[10, 1] > 0) { para_serA_ch1_ref = (float[])para_serA_ch1.Clone(); } if (fileflag[10, 2] > 0) { para_serA_ch2_ref = (float[])para_serA_ch2.Clone(); } if (fileflag[10, 3] > 0) { para_serA_ch3_ref = (float[])para_serA_ch3.Clone(); } if (fileflag[10, 4] > 0) { para_serA_ch4_ref = (float[])para_serA_ch4.Clone(); } if (fileflag[10, 5] > 0) { para_serA_ch5_ref = (float[])para_serA_ch5.Clone(); } if (fileflag[10, 6] > 0) { para_serA_ch6_ref = (float[])para_serA_ch6.Clone(); } if (fileflag[10, 7] > 0) { para_serA_ch7_ref = (float[])para_serA_ch7.Clone(); } if (fileflag[11, 1] > 0) { para_serB_ch1_ref = (float[])para_serB_ch1.Clone(); } if (fileflag[11, 2] > 0) { para_serB_ch2_ref = (float[])para_serB_ch2.Clone(); } if (fileflag[11, 3] > 0) { para_serB_ch3_ref = (float[])para_serB_ch3.Clone(); } if (fileflag[11, 4] > 0) { para_serB_ch4_ref = (float[])para_serB_ch4.Clone(); } if (fileflag[11, 5] > 0) { para_serB_ch5_ref = (float[])para_serB_ch5.Clone(); } if (fileflag[11, 6] > 0) { para_serB_ch6_ref = (float[])para_serB_ch6.Clone(); } if (fileflag[11, 7] > 0) { para_serB_ch7_ref = (float[])para_serB_ch7.Clone(); } if (fileflag[1, 1] > 0) { norm_ser1_ch1_ref = (float[])norm_ser1_ch1.Clone(); } if (fileflag[1, 2] > 0) { norm_ser1_ch2_ref = (float[])norm_ser1_ch2.Clone(); } if (fileflag[1, 3] > 0) { norm_ser1_ch3_ref = (float[])norm_ser1_ch3.Clone(); } if (fileflag[1, 4] > 0) { norm_ser1_ch4_ref = (float[])norm_ser1_ch4.Clone(); } if (fileflag[1, 5] > 0) { norm_ser1_ch5_ref = (float[])norm_ser1_ch5.Clone(); } if (fileflag[1, 6] > 0) { norm_ser1_ch6_ref = (float[])norm_ser1_ch6.Clone(); } if (fileflag[1, 7] > 0) { norm_ser1_ch7_ref = (float[])norm_ser1_ch7.Clone(); } if (fileflag[2, 1] > 0) { norm_ser2_ch1_ref = (float[])norm_ser2_ch1.Clone(); } if (fileflag[2, 2] > 0) { norm_ser2_ch2_ref = (float[])norm_ser2_ch2.Clone(); } if (fileflag[2, 3] > 0) { norm_ser2_ch3_ref = (float[])norm_ser2_ch3.Clone(); } if (fileflag[2, 4] > 0) { norm_ser2_ch4_ref = (float[])norm_ser2_ch4.Clone(); } if (fileflag[2, 5] > 0) { norm_ser2_ch5_ref = (float[])norm_ser2_ch5.Clone(); } if (fileflag[2, 6] > 0) { norm_ser2_ch6_ref = (float[])norm_ser2_ch6.Clone(); } if (fileflag[2, 7] > 0) { norm_ser2_ch7_ref = (float[])norm_ser2_ch7.Clone(); } if (fileflag[3, 1] > 0) { norm_ser3_ch1_ref = (float[])norm_ser3_ch1.Clone(); } if (fileflag[3, 2] > 0) { norm_ser3_ch2_ref = (float[])norm_ser3_ch2.Clone(); } if (fileflag[3, 3] > 0) { norm_ser3_ch3_ref = (float[])norm_ser3_ch3.Clone(); } if (fileflag[3, 4] > 0) { norm_ser3_ch4_ref = (float[])norm_ser3_ch4.Clone(); } if (fileflag[3, 5] > 0) { norm_ser3_ch5_ref = (float[])norm_ser3_ch5.Clone(); } if (fileflag[3, 6] > 0) { norm_ser3_ch6_ref = (float[])norm_ser3_ch6.Clone(); } if (fileflag[3, 7] > 0) { norm_ser3_ch7_ref = (float[])norm_ser3_ch7.Clone(); } if (fileflag[4, 1] > 0) { norm_ser4_ch1_ref = (float[])norm_ser4_ch1.Clone(); } if (fileflag[4, 2] > 0) { norm_ser4_ch2_ref = (float[])norm_ser4_ch2.Clone(); } if (fileflag[4, 3] > 0) { norm_ser4_ch3_ref = (float[])norm_ser4_ch3.Clone(); } if (fileflag[4, 4] > 0) { norm_ser4_ch4_ref = (float[])norm_ser4_ch4.Clone(); } if (fileflag[4, 5] > 0) { norm_ser4_ch5_ref = (float[])norm_ser4_ch5.Clone(); } if (fileflag[4, 6] > 0) { norm_ser4_ch6_ref = (float[])norm_ser4_ch6.Clone(); } if (fileflag[4, 7] > 0) { norm_ser4_ch7_ref = (float[])norm_ser4_ch7.Clone(); } if (fileflag[5, 1] > 0) { norm_ser5_ch1_ref = (float[])norm_ser5_ch1.Clone(); } if (fileflag[5, 2] > 0) { norm_ser5_ch2_ref = (float[])norm_ser5_ch2.Clone(); } if (fileflag[5, 3] > 0) { norm_ser5_ch3_ref = (float[])norm_ser5_ch3.Clone(); } if (fileflag[5, 4] > 0) { norm_ser5_ch4_ref = (float[])norm_ser5_ch4.Clone(); } if (fileflag[5, 5] > 0) { norm_ser5_ch5_ref = (float[])norm_ser5_ch5.Clone(); } if (fileflag[5, 6] > 0) { norm_ser5_ch6_ref = (float[])norm_ser5_ch6.Clone(); } if (fileflag[5, 7] > 0) { norm_ser5_ch7_ref = (float[])norm_ser5_ch7.Clone(); } if (fileflag[6, 1] > 0) { norm_ser6_ch1_ref = (float[])norm_ser6_ch1.Clone(); } if (fileflag[6, 2] > 0) { norm_ser6_ch2_ref = (float[])norm_ser6_ch2.Clone(); } if (fileflag[6, 3] > 0) { norm_ser6_ch3_ref = (float[])norm_ser6_ch3.Clone(); } if (fileflag[6, 4] > 0) { norm_ser6_ch4_ref = (float[])norm_ser6_ch4.Clone(); } if (fileflag[6, 5] > 0) { norm_ser6_ch5_ref = (float[])norm_ser6_ch5.Clone(); } if (fileflag[6, 6] > 0) { norm_ser6_ch6_ref = (float[])norm_ser6_ch6.Clone(); } if (fileflag[6, 7] > 0) { norm_ser6_ch7_ref = (float[])norm_ser6_ch7.Clone(); } if (fileflag[7, 1] > 0) { norm_ser7_ch1_ref = (float[])norm_ser7_ch1.Clone(); } if (fileflag[7, 2] > 0) { norm_ser7_ch2_ref = (float[])norm_ser7_ch2.Clone(); } if (fileflag[7, 3] > 0) { norm_ser7_ch3_ref = (float[])norm_ser7_ch3.Clone(); } if (fileflag[7, 4] > 0) { norm_ser7_ch4_ref = (float[])norm_ser7_ch4.Clone(); } if (fileflag[7, 5] > 0) { norm_ser7_ch5_ref = (float[])norm_ser7_ch5.Clone(); } if (fileflag[7, 6] > 0) { norm_ser7_ch6_ref = (float[])norm_ser7_ch6.Clone(); } if (fileflag[7, 7] > 0) { norm_ser7_ch7_ref = (float[])norm_ser7_ch7.Clone(); } if (fileflag[8, 1] > 0) { norm_ser8_ch1_ref = (float[])norm_ser8_ch1.Clone(); } if (fileflag[8, 2] > 0) { norm_ser8_ch2_ref = (float[])norm_ser8_ch2.Clone(); } if (fileflag[8, 3] > 0) { norm_ser8_ch3_ref = (float[])norm_ser8_ch3.Clone(); } if (fileflag[8, 4] > 0) { norm_ser8_ch4_ref = (float[])norm_ser8_ch4.Clone(); } if (fileflag[8, 5] > 0) { norm_ser8_ch5_ref = (float[])norm_ser8_ch5.Clone(); } if (fileflag[8, 6] > 0) { norm_ser8_ch6_ref = (float[])norm_ser8_ch6.Clone(); } if (fileflag[8, 7] > 0) { norm_ser8_ch7_ref = (float[])norm_ser8_ch7.Clone(); } if (fileflag[9, 1] > 0) { norm_ser9_ch1_ref = (float[])norm_ser9_ch1.Clone(); } if (fileflag[9, 2] > 0) { norm_ser9_ch2_ref = (float[])norm_ser9_ch2.Clone(); } if (fileflag[9, 3] > 0) { norm_ser9_ch3_ref = (float[])norm_ser9_ch3.Clone(); } if (fileflag[9, 4] > 0) { norm_ser9_ch4_ref = (float[])norm_ser9_ch4.Clone(); } if (fileflag[9, 5] > 0) { norm_ser9_ch5_ref = (float[])norm_ser9_ch5.Clone(); } if (fileflag[9, 6] > 0) { norm_ser9_ch6_ref = (float[])norm_ser9_ch6.Clone(); } if (fileflag[9, 7] > 0) { norm_ser9_ch7_ref = (float[])norm_ser9_ch7.Clone(); } if (fileflag[10, 1] > 0) { norm_serA_ch1_ref = (float[])norm_serA_ch1.Clone(); } if (fileflag[10, 2] > 0) { norm_serA_ch2_ref = (float[])norm_serA_ch2.Clone(); } if (fileflag[10, 3] > 0) { norm_serA_ch3_ref = (float[])norm_serA_ch3.Clone(); } if (fileflag[10, 4] > 0) { norm_serA_ch4_ref = (float[])norm_serA_ch4.Clone(); } if (fileflag[10, 5] > 0) { norm_serA_ch5_ref = (float[])norm_serA_ch5.Clone(); } if (fileflag[10, 6] > 0) { norm_serA_ch6_ref = (float[])norm_serA_ch6.Clone(); } if (fileflag[10, 7] > 0) { norm_serA_ch7_ref = (float[])norm_serA_ch7.Clone(); } if (fileflag[11, 1] > 0) { norm_serB_ch1_ref = (float[])norm_serB_ch1.Clone(); } if (fileflag[11, 2] > 0) { norm_serB_ch2_ref = (float[])norm_serB_ch2.Clone(); } if (fileflag[11, 3] > 0) { norm_serB_ch3_ref = (float[])norm_serB_ch3.Clone(); } if (fileflag[11, 4] > 0) { norm_serB_ch4_ref = (float[])norm_serB_ch4.Clone(); } if (fileflag[11, 5] > 0) { norm_serB_ch5_ref = (float[])norm_serB_ch5.Clone(); } if (fileflag[11, 6] > 0) { norm_serB_ch6_ref = (float[])norm_serB_ch6.Clone(); } if (fileflag[11, 7] > 0) { norm_serB_ch7_ref = (float[])norm_serB_ch7.Clone(); } } texturedispflag = 0; col1R_ref = col1R; col1G_ref = col1G; col1B_ref = col1B; col2R_ref = col2R; col2G_ref = col2G; col2B_ref = col2B; col3R_ref = col3R; col3G_ref = col3G; col3B_ref = col3B; col4R_ref = col4R; col4G_ref = col4G; col4B_ref = col4B; col5R_ref = col5R; col5G_ref = col5G; col5B_ref = col5B; col6R_ref = col6R; col6G_ref = col6G; col6B_ref = col6B; col7R_ref = col7R; col7G_ref = col7G; col7B_ref = col7B; col1alpha_ref = col1alpha; col2alpha_ref = col2alpha; col3alpha_ref = col3alpha; col4alpha_ref = col4alpha; col5alpha_ref = col5alpha; col6alpha_ref = col6alpha; col7alpha_ref = col7alpha; button67.Visible = true; } //release STL array, clear private void ReleaseallArray() { Array.Resize(ref para_ser1_ch1, 0); Array.Resize(ref para_ser1_ch2, 0); Array.Resize(ref para_ser1_ch3, 0); Array.Resize(ref para_ser1_ch4, 0); Array.Resize(ref para_ser1_ch5, 0); Array.Resize(ref para_ser1_ch6, 0); Array.Resize(ref para_ser1_ch7, 0); Array.Resize(ref para_ser2_ch1, 0); Array.Resize(ref para_ser2_ch2, 0); Array.Resize(ref para_ser2_ch3, 0); Array.Resize(ref para_ser2_ch4, 0); Array.Resize(ref para_ser2_ch5, 0); Array.Resize(ref para_ser2_ch6, 0); Array.Resize(ref para_ser2_ch7, 0); Array.Resize(ref para_ser3_ch1, 0); Array.Resize(ref para_ser3_ch2, 0); Array.Resize(ref para_ser3_ch3, 0); Array.Resize(ref para_ser3_ch4, 0); Array.Resize(ref para_ser3_ch5, 0); Array.Resize(ref para_ser3_ch6, 0); Array.Resize(ref para_ser3_ch7, 0); Array.Resize(ref para_ser4_ch1, 0); Array.Resize(ref para_ser4_ch2, 0); Array.Resize(ref para_ser4_ch3, 0); Array.Resize(ref para_ser4_ch4, 0); Array.Resize(ref para_ser4_ch5, 0); Array.Resize(ref para_ser4_ch6, 0); Array.Resize(ref para_ser4_ch7, 0); Array.Resize(ref para_ser5_ch1, 0); Array.Resize(ref para_ser5_ch2, 0); Array.Resize(ref para_ser5_ch3, 0); Array.Resize(ref para_ser5_ch4, 0); Array.Resize(ref para_ser5_ch5, 0); Array.Resize(ref para_ser5_ch6, 0); Array.Resize(ref para_ser5_ch7, 0); Array.Resize(ref para_ser6_ch1, 0); Array.Resize(ref para_ser6_ch2, 0); Array.Resize(ref para_ser6_ch3, 0); Array.Resize(ref para_ser6_ch4, 0); Array.Resize(ref para_ser6_ch5, 0); Array.Resize(ref para_ser6_ch6, 0); Array.Resize(ref para_ser6_ch7, 0); Array.Resize(ref para_ser7_ch1, 0); Array.Resize(ref para_ser7_ch2, 0); Array.Resize(ref para_ser7_ch3, 0); Array.Resize(ref para_ser7_ch4, 0); Array.Resize(ref para_ser7_ch5, 0); Array.Resize(ref para_ser7_ch6, 0); Array.Resize(ref para_ser7_ch7, 0); Array.Resize(ref para_ser8_ch1, 0); Array.Resize(ref para_ser8_ch2, 0); Array.Resize(ref para_ser8_ch3, 0); Array.Resize(ref para_ser8_ch4, 0); Array.Resize(ref para_ser8_ch5, 0); Array.Resize(ref para_ser8_ch6, 0); Array.Resize(ref para_ser8_ch7, 0); Array.Resize(ref para_ser9_ch1, 0); Array.Resize(ref para_ser9_ch2, 0); Array.Resize(ref para_ser9_ch3, 0); Array.Resize(ref para_ser9_ch4, 0); Array.Resize(ref para_ser9_ch5, 0); Array.Resize(ref para_ser9_ch6, 0); Array.Resize(ref para_ser9_ch7, 0); Array.Resize(ref para_serA_ch1, 0); Array.Resize(ref para_serA_ch2, 0); Array.Resize(ref para_serA_ch3, 0); Array.Resize(ref para_serA_ch4, 0); Array.Resize(ref para_serA_ch5, 0); Array.Resize(ref para_serA_ch6, 0); Array.Resize(ref para_serA_ch7, 0); Array.Resize(ref para_serB_ch1, 0); Array.Resize(ref para_serB_ch2, 0); Array.Resize(ref para_serB_ch3, 0); Array.Resize(ref para_serB_ch4, 0); Array.Resize(ref para_serB_ch5, 0); Array.Resize(ref para_serB_ch6, 0); Array.Resize(ref para_serB_ch7, 0); Array.Resize(ref norm_ser1_ch1, 0); Array.Resize(ref norm_ser1_ch2, 0); Array.Resize(ref norm_ser1_ch3, 0); Array.Resize(ref norm_ser1_ch4, 0); Array.Resize(ref norm_ser1_ch5, 0); Array.Resize(ref norm_ser1_ch6, 0); Array.Resize(ref norm_ser1_ch7, 0); Array.Resize(ref norm_ser2_ch1, 0); Array.Resize(ref norm_ser2_ch2, 0); Array.Resize(ref norm_ser2_ch3, 0); Array.Resize(ref norm_ser2_ch4, 0); Array.Resize(ref norm_ser2_ch5, 0); Array.Resize(ref norm_ser2_ch6, 0); Array.Resize(ref norm_ser2_ch7, 0); Array.Resize(ref norm_ser3_ch1, 0); Array.Resize(ref norm_ser3_ch2, 0); Array.Resize(ref norm_ser3_ch3, 0); Array.Resize(ref norm_ser3_ch4, 0); Array.Resize(ref norm_ser3_ch5, 0); Array.Resize(ref norm_ser3_ch6, 0); Array.Resize(ref norm_ser3_ch7, 0); Array.Resize(ref norm_ser4_ch1, 0); Array.Resize(ref norm_ser4_ch2, 0); Array.Resize(ref norm_ser4_ch3, 0); Array.Resize(ref norm_ser4_ch4, 0); Array.Resize(ref norm_ser4_ch5, 0); Array.Resize(ref norm_ser4_ch6, 0); Array.Resize(ref norm_ser4_ch7, 0); Array.Resize(ref norm_ser5_ch1, 0); Array.Resize(ref norm_ser5_ch2, 0); Array.Resize(ref norm_ser5_ch3, 0); Array.Resize(ref norm_ser5_ch4, 0); Array.Resize(ref norm_ser5_ch5, 0); Array.Resize(ref norm_ser5_ch6, 0); Array.Resize(ref norm_ser5_ch7, 0); Array.Resize(ref norm_ser6_ch1, 0); Array.Resize(ref norm_ser6_ch2, 0); Array.Resize(ref norm_ser6_ch3, 0); Array.Resize(ref norm_ser6_ch4, 0); Array.Resize(ref norm_ser6_ch5, 0); Array.Resize(ref norm_ser6_ch6, 0); Array.Resize(ref norm_ser6_ch7, 0); Array.Resize(ref norm_ser7_ch1, 0); Array.Resize(ref norm_ser7_ch2, 0); Array.Resize(ref norm_ser7_ch3, 0); Array.Resize(ref norm_ser7_ch4, 0); Array.Resize(ref norm_ser7_ch5, 0); Array.Resize(ref norm_ser7_ch6, 0); Array.Resize(ref norm_ser7_ch7, 0); Array.Resize(ref norm_ser8_ch1, 0); Array.Resize(ref norm_ser8_ch2, 0); Array.Resize(ref norm_ser8_ch3, 0); Array.Resize(ref norm_ser8_ch4, 0); Array.Resize(ref norm_ser8_ch5, 0); Array.Resize(ref norm_ser8_ch6, 0); Array.Resize(ref norm_ser8_ch7, 0); Array.Resize(ref norm_ser9_ch1, 0); Array.Resize(ref norm_ser9_ch2, 0); Array.Resize(ref norm_ser9_ch3, 0); Array.Resize(ref norm_ser9_ch4, 0); Array.Resize(ref norm_ser9_ch5, 0); Array.Resize(ref norm_ser9_ch6, 0); Array.Resize(ref norm_ser9_ch7, 0); Array.Resize(ref norm_serA_ch1, 0); Array.Resize(ref norm_serA_ch2, 0); Array.Resize(ref norm_serA_ch3, 0); Array.Resize(ref norm_serA_ch4, 0); Array.Resize(ref norm_serA_ch5, 0); Array.Resize(ref norm_serA_ch6, 0); Array.Resize(ref norm_serA_ch7, 0); Array.Resize(ref norm_serB_ch1, 0); Array.Resize(ref norm_serB_ch2, 0); Array.Resize(ref norm_serB_ch3, 0); Array.Resize(ref norm_serB_ch4, 0); Array.Resize(ref norm_serB_ch5, 0); Array.Resize(ref norm_serB_ch6, 0); Array.Resize(ref norm_serB_ch7, 0); Array.Resize(ref para_ser1_ch1_ref, 0); Array.Resize(ref para_ser1_ch2_ref, 0); Array.Resize(ref para_ser1_ch3_ref, 0); Array.Resize(ref para_ser1_ch4_ref, 0); Array.Resize(ref para_ser1_ch5_ref, 0); Array.Resize(ref para_ser1_ch6_ref, 0); Array.Resize(ref para_ser1_ch7_ref, 0); Array.Resize(ref para_ser2_ch1_ref, 0); Array.Resize(ref para_ser2_ch2_ref, 0); Array.Resize(ref para_ser2_ch3_ref, 0); Array.Resize(ref para_ser2_ch4_ref, 0); Array.Resize(ref para_ser2_ch5_ref, 0); Array.Resize(ref para_ser2_ch6_ref, 0); Array.Resize(ref para_ser2_ch7_ref, 0); Array.Resize(ref para_ser3_ch1_ref, 0); Array.Resize(ref para_ser3_ch2_ref, 0); Array.Resize(ref para_ser3_ch3_ref, 0); Array.Resize(ref para_ser3_ch4_ref, 0); Array.Resize(ref para_ser3_ch5_ref, 0); Array.Resize(ref para_ser3_ch6_ref, 0); Array.Resize(ref para_ser3_ch7_ref, 0); Array.Resize(ref para_ser4_ch1_ref, 0); Array.Resize(ref para_ser4_ch2_ref, 0); Array.Resize(ref para_ser4_ch3_ref, 0); Array.Resize(ref para_ser4_ch4_ref, 0); Array.Resize(ref para_ser4_ch5_ref, 0); Array.Resize(ref para_ser4_ch6_ref, 0); Array.Resize(ref para_ser4_ch7_ref, 0); Array.Resize(ref para_ser5_ch1_ref, 0); Array.Resize(ref para_ser5_ch2_ref, 0); Array.Resize(ref para_ser5_ch3_ref, 0); Array.Resize(ref para_ser5_ch4_ref, 0); Array.Resize(ref para_ser5_ch5_ref, 0); Array.Resize(ref para_ser5_ch6_ref, 0); Array.Resize(ref para_ser5_ch7_ref, 0); Array.Resize(ref para_ser6_ch1_ref, 0); Array.Resize(ref para_ser6_ch2_ref, 0); Array.Resize(ref para_ser6_ch3_ref, 0); Array.Resize(ref para_ser6_ch4_ref, 0); Array.Resize(ref para_ser6_ch5_ref, 0); Array.Resize(ref para_ser6_ch6_ref, 0); Array.Resize(ref para_ser6_ch7_ref, 0); Array.Resize(ref para_ser7_ch1_ref, 0); Array.Resize(ref para_ser7_ch2_ref, 0); Array.Resize(ref para_ser7_ch3_ref, 0); Array.Resize(ref para_ser7_ch4_ref, 0); Array.Resize(ref para_ser7_ch5_ref, 0); Array.Resize(ref para_ser7_ch6_ref, 0); Array.Resize(ref para_ser7_ch7_ref, 0); Array.Resize(ref para_ser8_ch1_ref, 0); Array.Resize(ref para_ser8_ch2_ref, 0); Array.Resize(ref para_ser8_ch3_ref, 0); Array.Resize(ref para_ser8_ch4_ref, 0); Array.Resize(ref para_ser8_ch5_ref, 0); Array.Resize(ref para_ser8_ch6_ref, 0); Array.Resize(ref para_ser8_ch7_ref, 0); Array.Resize(ref para_ser9_ch1_ref, 0); Array.Resize(ref para_ser9_ch2_ref, 0); Array.Resize(ref para_ser9_ch3_ref, 0); Array.Resize(ref para_ser9_ch4_ref, 0); Array.Resize(ref para_ser9_ch5_ref, 0); Array.Resize(ref para_ser9_ch6_ref, 0); Array.Resize(ref para_ser9_ch7_ref, 0); Array.Resize(ref para_serA_ch1_ref, 0); Array.Resize(ref para_serA_ch2_ref, 0); Array.Resize(ref para_serA_ch3_ref, 0); Array.Resize(ref para_serA_ch4_ref, 0); Array.Resize(ref para_serA_ch5_ref, 0); Array.Resize(ref para_serA_ch6_ref, 0); Array.Resize(ref para_serA_ch7_ref, 0); Array.Resize(ref para_serB_ch1_ref, 0); Array.Resize(ref para_serB_ch2_ref, 0); Array.Resize(ref para_serB_ch3_ref, 0); Array.Resize(ref para_serB_ch4_ref, 0); Array.Resize(ref para_serB_ch5_ref, 0); Array.Resize(ref para_serB_ch6_ref, 0); Array.Resize(ref para_serB_ch7_ref, 0); Array.Resize(ref norm_ser1_ch1_ref, 0); Array.Resize(ref norm_ser1_ch2_ref, 0); Array.Resize(ref norm_ser1_ch3_ref, 0); Array.Resize(ref norm_ser1_ch4_ref, 0); Array.Resize(ref norm_ser1_ch5_ref, 0); Array.Resize(ref norm_ser1_ch6_ref, 0); Array.Resize(ref norm_ser1_ch7_ref, 0); Array.Resize(ref norm_ser2_ch1_ref, 0); Array.Resize(ref norm_ser2_ch2_ref, 0); Array.Resize(ref norm_ser2_ch3_ref, 0); Array.Resize(ref norm_ser2_ch4_ref, 0); Array.Resize(ref norm_ser2_ch5_ref, 0); Array.Resize(ref norm_ser2_ch6_ref, 0); Array.Resize(ref norm_ser2_ch7_ref, 0); Array.Resize(ref norm_ser3_ch1_ref, 0); Array.Resize(ref norm_ser3_ch2_ref, 0); Array.Resize(ref norm_ser3_ch3_ref, 0); Array.Resize(ref norm_ser3_ch4_ref, 0); Array.Resize(ref norm_ser3_ch5_ref, 0); Array.Resize(ref norm_ser3_ch6_ref, 0); Array.Resize(ref norm_ser3_ch7_ref, 0); Array.Resize(ref norm_ser4_ch1_ref, 0); Array.Resize(ref norm_ser4_ch2_ref, 0); Array.Resize(ref norm_ser4_ch3_ref, 0); Array.Resize(ref norm_ser4_ch4_ref, 0); Array.Resize(ref norm_ser4_ch5_ref, 0); Array.Resize(ref norm_ser4_ch6_ref, 0); Array.Resize(ref norm_ser4_ch7_ref, 0); Array.Resize(ref norm_ser5_ch1_ref, 0); Array.Resize(ref norm_ser5_ch2_ref, 0); Array.Resize(ref norm_ser5_ch3_ref, 0); Array.Resize(ref norm_ser5_ch4_ref, 0); Array.Resize(ref norm_ser5_ch5_ref, 0); Array.Resize(ref norm_ser5_ch6_ref, 0); Array.Resize(ref norm_ser5_ch7_ref, 0); Array.Resize(ref norm_ser6_ch1_ref, 0); Array.Resize(ref norm_ser6_ch2_ref, 0); Array.Resize(ref norm_ser6_ch3_ref, 0); Array.Resize(ref norm_ser6_ch4_ref, 0); Array.Resize(ref norm_ser6_ch5_ref, 0); Array.Resize(ref norm_ser6_ch6_ref, 0); Array.Resize(ref norm_ser6_ch7_ref, 0); Array.Resize(ref norm_ser7_ch1_ref, 0); Array.Resize(ref norm_ser7_ch2_ref, 0); Array.Resize(ref norm_ser7_ch3_ref, 0); Array.Resize(ref norm_ser7_ch4_ref, 0); Array.Resize(ref norm_ser7_ch5_ref, 0); Array.Resize(ref norm_ser7_ch6_ref, 0); Array.Resize(ref norm_ser7_ch7_ref, 0); Array.Resize(ref norm_ser8_ch1_ref, 0); Array.Resize(ref norm_ser8_ch2_ref, 0); Array.Resize(ref norm_ser8_ch3_ref, 0); Array.Resize(ref norm_ser8_ch4_ref, 0); Array.Resize(ref norm_ser8_ch5_ref, 0); Array.Resize(ref norm_ser8_ch6_ref, 0); Array.Resize(ref norm_ser8_ch7_ref, 0); Array.Resize(ref norm_ser9_ch1_ref, 0); Array.Resize(ref norm_ser9_ch2_ref, 0); Array.Resize(ref norm_ser9_ch3_ref, 0); Array.Resize(ref norm_ser9_ch4_ref, 0); Array.Resize(ref norm_ser9_ch5_ref, 0); Array.Resize(ref norm_ser9_ch6_ref, 0); Array.Resize(ref norm_ser9_ch7_ref, 0); Array.Resize(ref norm_serA_ch1_ref, 0); Array.Resize(ref norm_serA_ch2_ref, 0); Array.Resize(ref norm_serA_ch3_ref, 0); Array.Resize(ref norm_serA_ch4_ref, 0); Array.Resize(ref norm_serA_ch5_ref, 0); Array.Resize(ref norm_serA_ch6_ref, 0); Array.Resize(ref norm_serA_ch7_ref, 0); Array.Resize(ref norm_serB_ch1_ref, 0); Array.Resize(ref norm_serB_ch2_ref, 0); Array.Resize(ref norm_serB_ch3_ref, 0); Array.Resize(ref norm_serB_ch4_ref, 0); Array.Resize(ref norm_serB_ch5_ref, 0); Array.Resize(ref norm_serB_ch6_ref, 0); Array.Resize(ref norm_serB_ch7_ref, 0); for (int i = 0; i < 13; i++) { for (int j = 0; j < 8; j++) { fileflag[i, j] = 0; } } Array.Resize(ref textureArray, 0); Array.Resize(ref texture_parameterArray, 0); Array.Resize(ref texture_normalArray, 0); Array.Resize(ref parameterArray_frame, 0); Array.Resize(ref parameterArray_frame_ref, 0); Array.Resize(ref normalArray_frame, 0); Array.Resize(ref normalArray_frame_ref, 0); } // NO USE for GL private void GL_Monitor_DragDrop(object sender, DragEventArgs e) { var data = e.Data.GetData(DataFormats.FileDrop); if (data != null) { string[] fileNames = data as string[]; string ext = System.IO.Path.GetExtension(fileNames[0]); } } // NO USE for GL private void GL_Monitor_DragEnter(object sender, DragEventArgs e) { // if the extension is not *.txt or *.stl change drag drop effect symbol var data = e.Data.GetData(DataFormats.FileDrop); if (data != null) { string[] fileNames = data as string[]; string ext = System.IO.Path.GetExtension(fileNames[0]); if (ext == ".stl" || ext == ".STL" || ext == ".txt" || ext == ".TXT") { e.Effect = DragDropEffects.Copy; } else { e.Effect = DragDropEffects.None; } } } private void label39_Click(object sender, EventArgs e) { } ///////////// dance mode ///////// private void button87_Click(object sender, EventArgs e) { numericUpDown38.Visible = true; //timer set DateTime dt = DateTime.Now; dancetimeprev = ((dt.Minute * 60 + dt.Second) * 1000 + dt.Millisecond); controllerON = 2; danceflag = 1; button40.BackColor = Color.Pink; timer6.Interval = 5; timer6.Enabled = true; timer4.Enabled = false; player = new System.Media.SoundPlayer(soundfile); player.Play(); return; } ///////////////////// dance counts \\\\\\\\\\\\\\\\\\\\\\\\\\ private void timer6_Tick(object sender, EventArgs e) { DateTime dt = DateTime.Now; int dancetimenow = ((dt.Minute * 60 + dt.Second) * 1000 + dt.Millisecond); int onecount = dancetimer; int dancetimeell = dancetimenow - dancetimeprev + onecount + (int)numericUpDown38.Value; int dancecount = dancetimeell / onecount; dancebar = dancecount / 4; dancebeat = dancecount % 4; danceperc = (dancetimeell % onecount) * 100 / onecount; barperc = (dancetimeell % (onecount * 4)) * 100 / (onecount * 4); if (false) { if (dancebar > 33) { player.Stop(); timer6.Enabled = false; return; } } scale_1P = scalf1 / 2; scale_2P = scalf1 / 2; if (dancebeat == 0) { button87.BackColor = Color.Red; } else { button87.BackColor = Color.DarkGray; } button87.Text = dancebar.ToString() + "/" + dancebeat.ToString() + "/" + danceperc.ToString(); ; //heart beat if (danceperc < 10) { lefty1 = danceperc * 100; lefty2 = danceperc * 100; } else if (danceperc < 20) { lefty1 = (20 - danceperc) * 100; lefty2 = (20 - danceperc) * 100; } else { lefty1 = 0; lefty2 = 0; } dancebar = dancebar % 20; if (dancebar == 1) { rotx1 = (int)(barperc * 3.6) - 30; rotx2 = -(int)(barperc * 3.6) + 30; roty1 = 60; roty2 = 60; if (barperc < 10) { steerA = -barperc; steerA2 = -steerA; } else if (barperc < 90) { steerA = -10; steerA2 = 10; } else { steerA = -(100 - barperc); steerA2 = -steerA; } acc_1P = 3; acc_2P = 3; } else if (dancebar == 2) { if (danceperc < 10) { steerA = -danceperc; steerA2 = -steerA; } else if (danceperc < 90) { steerA = -10; steerA2 = 10; } else { steerA = -(100 - danceperc); steerA2 = -steerA; } acc_1P = 0; acc_2P = 0; } else if (dancebar == 3) { rotx1 = -(int)(barperc * 3.6) - 30; rotx2 = +(int)(barperc * 3.6) + 30; roty1 = 60; roty2 = 60; acc_1P = 3; acc_2P = 3; } else if (dancebar == 4) { if (barperc < 0) { steerB = barperc * 5; steerB2 = steerB; steerC = steerB; steerC2 = -steerB; } else if (barperc < 90) { steerB = 50; steerB2 = 50; steerC = steerB; steerC2 = -steerB; } else { steerB = (100 - barperc) * 5; steerB2 = steerB; steerC = steerB; steerC2 = -steerB; } acc_1P = 0; acc_2P = 0; } else if (dancebar == 5) { rotx1 = -30; rotx2 = +30; roty1 = (int)(barperc * 3.6) + 60; roty2 = roty1; if (barperc < 50) { steerB = barperc * 1; steerB2 = -steerB; steerC = steerB; steerC2 = -steerB; } else { steerB = (100 - barperc) * 1; steerB2 = -steerB; steerC = steerB; steerC2 = -steerB; } leg2A = steerB; leg2A2 = steerB; acc_1P = 1; acc_2P = 1; } else if (dancebar == 7) { rotx1 = -30; rotx2 = +30; roty1 = -(int)(barperc * 3.6) + 60; roty2 = roty1; } else if (dancebar == 9 || dancebar == 11) { if (barperc < 10) { roty1 = -barperc * 12 + 60; } else if (barperc < 90) { roty1 = -120 + 60; } else { roty1 = -(100 - barperc) * 12 + 60; } acc_1P = 1; acc_2P = 1; } else if (dancebar == 10 || dancebar == 12) { if (barperc < 10) { roty2 = -barperc * 12 + 60; } else if (barperc < 90) { roty2 = -120 + 60; } else { roty2 = -(100 - barperc) * 12 + 60; } acc_1P = 0; acc_2P = 0; } else if (dancebar == 13 || dancebar == 14) { if (barperc < 50) { steerB = barperc * 1; steerB2 = -steerB; steerC = steerB; steerC2 = steerB; } else { steerB = (100 - barperc) * 1; steerB2 = -steerB; steerC = steerB; steerC2 = steerB; } if (danceperc < 50) { Random r1 = new System.Random(); Random r2 = new System.Random(); posx1 = -200 + r1.Next(-10, 10); posx2 = 200 + r2.Next(-10, 10); posy1 = 50; posy2 = -80; } else if (danceperc < 90) { Random r1 = new System.Random(); Random r2 = new System.Random(); posx1 = -200; posx2 = 200; posy1 = 50 + r1.Next(-10, 10); posy2 = -80 + r2.Next(-10, 10); } acc_1P = 5; acc_2P = 5; } else if (dancebar == 15 || dancebar == 16) { if (barperc < 50) { lefty1 = barperc * 1000; lefty2 = -barperc * 1000; } else { lefty1 = (100 - barperc) * 1000; lefty2 = -(100 - barperc) * 1000; } acc_1P = 1; acc_2P = 1; } else { rotx1 = -30; rotx2 = 30; roty1 = 60; roty2 = 60; rightx1 = 0; rightx2 = 0; steerA = 0; steerA2 = 0; posy1 = 50; posy2 = -80; posx1 = -200; posx2 = 200; acc_1P = 0; acc_2P = 0; } } /////TRACE MODE for object private void button70_Click(object sender, EventArgs e) { tracemode++; if (tracemode > 3) { tracemode = 0; } if (tracemode == 0) { button70.BackColor = Color.Gray; } else if (tracemode == 1) { button70.BackColor = Color.Orange; } else if (tracemode == 2) { button70.BackColor = Color.Purple; } else if (tracemode == 3) { button70.BackColor = Color.Yellow; } else { } trac_eon = 0; } //tracecheck private void tracecheck() { int Rmin = 0, Rmax = 0, Gmin = 0, Gmax = 0, Bmin = 0, Bmax = 0; if (tracemode == 1) //orage { Rmin = 240 - (int)numericUpDown16.Value; Rmax = 240 + (int)numericUpDown16.Value; Gmin = 100 - (int)numericUpDown16.Value; Gmax = 100 + (int)numericUpDown16.Value; Bmin = 45 - (int)numericUpDown16.Value; Bmax = 45 + (int)numericUpDown16.Value; } else if (tracemode == 2) // purple { Rmin = 80 - (int)numericUpDown16.Value; Rmax = 80 + (int)numericUpDown16.Value; Gmin = 80 - (int)numericUpDown16.Value; Gmax = 80 + (int)numericUpDown16.Value; Bmin = 160 - (int)numericUpDown16.Value; Bmax = 160 + (int)numericUpDown16.Value; } else if (tracemode == 3) // yellow { Rmin = 210 - (int)numericUpDown16.Value; Rmax = 210 + (int)numericUpDown16.Value; Gmin = 210 - (int)numericUpDown16.Value; Gmax = 210 + (int)numericUpDown16.Value; Bmin = 120 - (int)numericUpDown16.Value; Bmax = 120 + (int)numericUpDown16.Value; } else { } int indexR, indexG, indexB; int pixR, pixG, pixB; for (int xx = 0; xx < 640; xx++) { for (int yy = 0; yy < 480; yy++) { indexR = (xx + yy * 640) * 3 + 2; //r indexG = (xx + yy * 640) * 3 + 1; //g indexB = (xx + yy * 640) * 3 + 0; //b pixR = importData[indexR]; pixG = importData[indexG]; pixB = importData[indexB]; tracearray[xx, yy] = 0; if (pixR < Rmax && pixR > Rmin) { if (pixG < Gmax && pixG > Gmin) { if (pixB < Bmax && pixB > Bmin) { tracearray[xx, yy] = 1; } } } } } int xfin = 0, yfin = 0, fincount = 0; for (int xx = 2; xx < 638; xx++) { for (int yy = 2; yy < 478; yy++) { if (tracearray[xx, yy] == 1) { int tracecount = 0; for (int xoff = -2; xoff < 3; xoff++) { for (int yoff = -2; yoff < 3; yoff++) { if (tracearray[xx + xoff, yy + yoff] > 0) { tracecount++; } } } if (tracecount > (int)numericUpDown17.Value) { indexR = (xx + yy * 640) * 3 + 2; //r indexG = (xx + yy * 640) * 3 + 1; //g indexB = (xx + yy * 640) * 3 + 0; //b importData[indexR] = (byte)(importData[indexR] / 3); importData[indexG] = (byte)(importData[indexG] / 3); importData[indexB] = (byte)(importData[indexB] / 3); xfin = xfin + xx; yfin = yfin + yy; fincount++; } } } } traceX = xfin; traceY = yfin; if (fincount > 2) { xfin = xfin / fincount; yfin = yfin / fincount; if (((traceX - xfin) * (traceX - xfin) + (traceY - yfin) * (traceY - yfin)) < 150) { traceX = xfin; traceY = yfin; } if (trac_eon == 0) { traceX = xfin; traceY = yfin; } } } /// for Video streaming // for TRACE //select camera channel private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { try { videoDevice = new VideoCaptureDevice(videoDevices[comboBox1.SelectedIndex].MonikerString); videoCapabilities = videoDevice.VideoCapabilities; comboBox2.Items.Clear(); int selected_idx = 0; int idx_dsp = 0; int area_max = 0; foreach (VideoCapabilities capabilty in videoCapabilities) { int r_w = capabilty.FrameSize.Width; int r_h = capabilty.FrameSize.Height; int area_tmp = r_w * r_h; if (area_tmp > area_max) { area_max = area_tmp; idx_dsp = selected_idx; } comboBox2.Items.Add(string.Format("{0}x{1}", r_w, r_h)); selected_idx++; } comboBox2.SelectedIndex = idx_dsp; button34.BackColor = Color.Gray; } catch (Exception error) { button34.BackColor = Color.Black; } } // select camera resolution private void comboBox2_SelectedIndexChanged(object sender, EventArgs e) { videoDevice.VideoResolution = videoCapabilities[comboBox2.SelectedIndex]; if (comboBox2.SelectedItem.ToString() == "640x480") { button34.BackColor = Color.Blue; } } //Start video streaming private void button34_Click(object sender, EventArgs e) { button70.Visible = true; numericUpDown16.Visible = true; numericUpDown17.Visible = true; label74.Visible = true; label75.Visible = true; if (camflag == 0 && button34.BackColor == Color.Blue) { countertimer = 1; button34.BackColor = Color.Red; videoDevice.NewFrame += new NewFrameEventHandler(videoDevice_NewFrame); videoDevice.Start(); // camera pick up timer? camflag++; GL.GenTextures(1, out texnum2); GL.BindTexture(TextureTarget.Texture2D, texnum2); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Nearest); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMinFilter.Nearest); countertimer = 0; } else { } } // camera tick void videoDevice_NewFrame(object sender, NewFrameEventArgs eventArgs) { skipflag++; if (countertimer == 0 && skipflag % 2 == 1u) { countertimer = 1; //camerainto array canvasCAM = (Bitmap)eventArgs.Frame.Clone(); //into canvas System.Drawing.Imaging.BitmapData bmpData = canvasCAM.LockBits(new Rectangle(0, 0, 640, 480), System.Drawing.Imaging.ImageLockMode.ReadWrite, canvasCAM.PixelFormat); System.Runtime.InteropServices.Marshal.Copy(bmpData.Scan0, importData, 0, importData.Length); // center darker //into bmp System.Runtime.InteropServices.Marshal.Copy(importData, 0, bmpData.Scan0, importData.Length); canvasCAM.UnlockBits(bmpData); countertimer = 0; } } //camera stop private void button39_Click(object sender, EventArgs e) { if (videoDevice.IsRunning) { videoDevice.SignalToStop(); videoDevice.WaitForStop(); videoDevice.NewFrame -= videoDevice_NewFrame; } camflag = 0; button34.BackColor = Color.Gray; } //camera display ON private void button32_Click(object sender, EventArgs e) { comboBox1.Visible = true; comboBox2.Visible = true; button34.Visible = true; button39.Visible = true; } /// JOYSTICK //for GAMING /// JOYSTICK //for GAMING /// JOYSTICK //for GAMING //find joystick private void button40_Click(object sender, EventArgs e) { acc_1P = 0; acc_2P = 0; //jorpoyt1 if (XInput.GetState(0, out var keystate2)) { button40.Text = "0ON"; joyport = 0; timer4.Enabled = true; } else if (XInput.GetState(1, out var keystate1)) { button40.Text = "1ON"; joyport = 1; } else if (XInput.GetState(2, out var keystate5)) { button40.Text = "2ON"; joyport = 2; } else { joyport = -1; button40.Text = "no joyport"; } if (joyport != -1) { timer4.Enabled = true; timer4.Interval = 30; button40.BackColor = Color.Red; } else { timer4.Enabled = false; button40.BackColor = Color.Gray; } //joyport2 if (XInput.GetState(1, out var keystate4)) { joyport2 = 1; } else { joyport2 = -1; } if (joyport == 0 && joyport2==1) { button40.BackColor = Color.Purple; controllerON = 2; } if(joyport!=0 && controllerON == 1) { controllerON = 2; } } //tick for joystick private void timer4_Tick(object sender, EventArgs e) { // //1Right,2UP,4Left,8Down //2Xquads, 4Btri, 8Abatsu, 1Ymaru, start32, select 16 pushbutton = 0; direction = 0; brakeflag = 0; /////////////////////GAMING//////// if (joyport != -1 && controllerON == 1) { if (XInput.GetState(joyport, out var keystate)) { button40.Text = "Joy:"; if (0 < (keystate.Gamepad.Buttons & GamepadButtons.X)) { // button40.Text = button40.Text + "X"; pushbutton = pushbutton + 2; brakeflag = 1; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.A)) { // button40.Text = button40.Text + "A"; pushbutton = pushbutton + 8; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.Y)) { // button40.Text = button40.Text + "Y"; pushbutton = pushbutton + 1; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.B)) { // button40.Text = button40.Text + "B"; pushbutton = pushbutton + 4; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.LeftShoulder)) { // button40.Text = button40.Text + "Lshoul"; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.LeftThumb)) { // button40.Text = button40.Text + "Lth"; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.Start)) { // button40.Text = button40.Text + "Start"; pushbutton = pushbutton + 32; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.Back)) { // button40.Text = button40.Text + "SEL"; pushbutton = pushbutton + 16; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadUp)) { // button40.Text = button40.Text + " UP"; direction = direction + 2; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadLeft)) { // button40.Text = button40.Text + " Left"; direction = direction + 4; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadDown)) { // button40.Text = button40.Text + " Down"; direction = direction + 8; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadRight)) { // button40.Text = button40.Text + " Right"; direction = direction + 1; } } button40.Text = direction.ToString() + " " + pushbutton.ToString(); } /////////////HAND MODE/////////////////// if (controllerON == 2) { if (XInput.GetState(joyport, out var keystate)) { leftx1 = keystate.Gamepad.LeftThumbX; steerA = leftx1/2000; steerB = rightx1 / 2000 + righty1/2000; steerC = rightx1 / 2000 - +righty1 / 2000; lefty1 = keystate.Gamepad.LeftThumbY; rightx1 = keystate.Gamepad.RightThumbX; righty1 = keystate.Gamepad.RightThumbY; if(0< (keystate.Gamepad.Buttons & GamepadButtons.LeftThumb)) { acc_1P++; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.RightThumb)) { acc_1P = 0; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.LeftShoulder) ) { if (joy_1pL == 0) { scale_1P = scale_1P * 1.25f; } joy_1pL = 1; } else { joy_1pL = 0; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.RightShoulder) ) { if (joy_1pR == 0) { scale_1P = scale_1P * 0.8f; } joy_1pR = 1; } else { joy_1pR = 0; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadLeft)) { posx1 = posx1 - 10; if (posx1 < -2000) { posx1 = -2000; } } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadRight)) { posx1 = posx1 + 10; if (posx1 > 2000) { posx1 = 2000; } } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadDown)) { posy1 = posy1 - 10; if (posy1 < -600) { posy1 = -600; } } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.DPadUp)) { posy1 = posy1 + 10; if (posy1 > 600) posy1 = 600; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.Start)) { posz1 = posz1 + 10; if (posz1 > 600) posz1 = 600; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.Back)) { posz1 = posz1 - 10; if (posz1 < -600) posz1 = -600; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.X)) { rotx1 = rotx1 + 2; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.B)) { rotx1 = rotx1 - 2; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.Y)) { roty1 = roty1 + 2; } if (0 < (keystate.Gamepad.Buttons & GamepadButtons.A)) { roty1 = roty1 - 2; } } if (XInput.GetState(joyport2, out var keystate2)) { leftx2 = keystate2.Gamepad.LeftThumbX; steerA2 = leftx2/ 2000; steerB2 = rightx2 / 2000 + righty2 / 2000; steerC2 = rightx2 / 2000 - +righty2 / 2000; ; lefty2 = keystate2.Gamepad.LeftThumbY; rightx2 = keystate2.Gamepad.RightThumbX; righty2 = keystate2.Gamepad.RightThumbY; if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.LeftThumb)) { acc_2P++; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.RightThumb)) { acc_2P = 0; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.LeftShoulder)) { if (joy_2pL == 0) { scale_2P = scale_2P * 1.25f; } joy_2pL = 1; } else { joy_2pL = 0; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.RightShoulder)) { if (joy_2pR == 0) { scale_2P = scale_2P * 0.8f; } joy_2pR = 1; } else { joy_2pR = 0; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.DPadLeft)) { posx2 = posx2 - 10; if (posx2 < -2000) { posx2 = -2000; } } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.DPadRight)) { posx2 = posx2 + 10; if (posx2 > 2000) { posx2 = 2000; } } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.DPadDown)) { posy2 = posy2 - 10; if (posy2 < -600) { posy2 = -600; } } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.DPadUp)) { posy2 = posy2 + 10; if (posy2 > 600) posy2 = 600; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.Start)) { posz2 = posz2 + 10; if (posz2 > 600) posz2 = 600; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.Back)) { posz2 = posz2 - 10; if (posz2 < -600) posz2 = -600; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.X)) { rotx2 = rotx2 + 2; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.B)) { rotx2 = rotx2 - 2; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.Y)) { roty2 = roty2 + 2; } if (0 < (keystate2.Gamepad.Buttons & GamepadButtons.A)) { roty2 = roty2 - 2; } } } } // seriese visibility changes by button private void button51_Click(object sender, EventArgs e) { int kflag = 0; if (ser1flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[1, k]; } if (kflag > 0) { ser1flag = 1; button51.BackColor = Color.LightGray; } } else { ser1flag = 0; button51.BackColor = Color.DarkGray; } } private void button52_Click(object sender, EventArgs e) { int kflag = 0; if (ser2flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[2, k]; } if (kflag > 0) { ser2flag = 1; button52.BackColor = Color.LightGray; } } else { ser2flag = 0; button52.BackColor = Color.DarkGray; } } private void button53_Click(object sender, EventArgs e) { int kflag = 0; if (ser3flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[3, k]; } if (kflag > 0) { ser3flag = 1; button53.BackColor = Color.LightGray; } } else { ser3flag = 0; button53.BackColor = Color.DarkGray; } } private void button54_Click(object sender, EventArgs e) { int kflag = 0; if (ser4flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[4, k]; } if (kflag > 0) { ser4flag = 1; button54.BackColor = Color.LightGray; } } else { ser4flag = 0; button54.BackColor = Color.DarkGray; } } private void button55_Click(object sender, EventArgs e) { int kflag = 0; if (ser5flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[5, k]; } if (kflag > 0) { ser5flag = 1; button55.BackColor = Color.LightGray; } } else { ser5flag = 0; button55.BackColor = Color.DarkGray; } } private void button56_Click(object sender, EventArgs e) { int kflag = 0; if (ser6flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[6, k]; } if (kflag > 0) { ser6flag = 1; button56.BackColor = Color.LightGray; } } else { ser6flag = 0; button56.BackColor = Color.DarkGray; } } private void button57_Click(object sender, EventArgs e) { int kflag = 0; if (ser7flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[7, k]; } if (kflag > 0) { ser7flag = 1; button57.BackColor = Color.LightGray; } } else { ser7flag = 0; button57.BackColor = Color.DarkGray; } } private void button58_Click(object sender, EventArgs e) { int kflag = 0; if (ser8flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[8, k]; } if (kflag > 0) { ser8flag = 1; button58.BackColor = Color.LightGray; } } else { ser8flag = 0; button58.BackColor = Color.DarkGray; } } private void button59_Click(object sender, EventArgs e) { int kflag = 0; if (ser9flag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[9, k]; } if (kflag > 0) { ser9flag = 1; button59.BackColor = Color.LightGray; } } else { ser9flag = 0; button59.BackColor = Color.DarkGray; } } private void button60_Click(object sender, EventArgs e) { int kflag = 0; if (serAflag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[10, k]; } if (kflag > 0) { serAflag = 1; button60.BackColor = Color.LightGray; } } else { serAflag = 0; button60.BackColor = Color.DarkGray; } } private void button61_Click(object sender, EventArgs e) { int kflag = 0; if (serBflag == 0) { for (int k = 1; k < 8; k++) { kflag = kflag + fileflag[11, k]; } if (kflag > 0) { serBflag = 1; button61.BackColor = Color.LightGray; } } else { serBflag = 0; button61.BackColor = Color.DarkGray; } } // channel visibility changes by button private void button41_Click(object sender, EventArgs e) { int kflag = 0; if (ch1flag == 0) { for (int k = 1; k < 13; k++) { kflag = kflag + fileflag[k, 1]; } if (kflag > 0) { ch1flag = 1; button41.BackColor = Color.LightGray; } } else { ch1flag = 0; button41.BackColor = Color.DarkGray; } } private void button42_Click(object sender, EventArgs e) { int kflag = 0; if (ch2flag == 0) { for (int k = 1; k < 13; k++) { kflag = kflag + fileflag[k, 2]; } if (kflag > 0) { ch2flag = 1; button42.BackColor = Color.LightGray; } } else { ch2flag = 0; button42.BackColor = Color.DarkGray; } } private void button43_Click(object sender, EventArgs e) { int kflag = 0; if (ch3flag == 0) { for (int k = 1; k < 13; k++) { kflag = kflag + fileflag[k, 3]; } if (kflag > 0) { ch3flag = 1; button43.BackColor = Color.LightGray; } } else { ch3flag = 0; button43.BackColor = Color.DarkGray; } } private void button44_Click(object sender, EventArgs e) { int kflag = 0; if (ch4flag == 0) { for (int k = 1; k < 13; k++) { kflag = kflag + fileflag[k, 4]; } if (kflag > 0) { ch4flag = 1; button44.BackColor = Color.LightGray; } } else { ch4flag = 0; button44.BackColor = Color.DarkGray; } } private void button45_Click(object sender, EventArgs e) { int kflag = 0; if (ch5flag == 0) { for (int k = 1; k < 13; k++) { kflag = kflag + fileflag[k, 5]; } if (kflag > 0) { ch5flag = 1; button45.BackColor = Color.LightGray; } } else { ch5flag = 0; button45.BackColor = Color.DarkGray; } } private void button46_Click(object sender, EventArgs e) { int kflag = 0; if (ch6flag == 0) { for (int k = 1; k < 13; k++) { kflag = kflag + fileflag[k, 6]; } if (kflag > 0) { ch6flag = 1; button46.BackColor = Color.LightGray; } } else { ch6flag = 0; button46.BackColor = Color.DarkGray; } } private void button47_Click(object sender, EventArgs e) { int kflag = 0; if (ch7flag == 0) { for (int k = 1; k < 13; k++) { kflag = kflag + fileflag[k, 7]; } if (kflag > 0) { ch7flag = 1; button47.BackColor = Color.LightGray; } } else { ch7flag = 0; button47.BackColor = Color.DarkGray; } } private void numericUpDown34_ValueChanged(object sender, EventArgs e) { } public int uptimer = 0; // timer for memory check /// private void timer7_Tick(object sender, EventArgs e) { memorycheck(); uptimer++; if (uptimer > 10) { this.TopMost = true; this.Focus(); this.BringToFront(); uptimer = 0; if (label86.ForeColor == Color.White) { label86.ForeColor = Color.DarkBlue; } else { label86.ForeColor = Color.White; } } } private void memorycheck() { label86.Text = ((int)(GC.GetTotalMemory(false) / 1024 / 1024)).ToString() + "MB"; } } }