public LightwaveObject[] okolica; //objekti za okolico robota public Robot(int rot1, int rot2, int rot3, int rot4, int rot5, int rot6) { rotacija1 = rot1; rotacija2 = rot2; rotacija3 = rot3; rotacija4 = rot4; rotacija5 = rot5; rotacija6 = rot6; string dir = Environment.CurrentDirectory; dir = dir.Remove(dir.IndexOf("bin")) + "ModelsLWO\\"; //pot do modelov robot_model = new LightwaveObject[10]; okolica = new LightwaveObject[10]; // od tu pa do konca catch zakomentiraj če ne dela model robota :) try { robot_model[0] = LightwaveObject.LoadObject(dir + "MH6_base.lwo"); //poizkusi naložit modele robot_model[1] = LightwaveObject.LoadObject(dir + "MH6_saxis.lwo"); robot_model[2] = LightwaveObject.LoadObject(dir + "MH6_laxis.lwo"); robot_model[3] = LightwaveObject.LoadObject(dir + "MH6_uaxis.lwo"); robot_model[4] = LightwaveObject.LoadObject(dir + "MH6_raxis.lwo"); robot_model[5] = LightwaveObject.LoadObject(dir + "MH6_baxis.lwo"); robot_model[6] = LightwaveObject.LoadObject(dir + "MH6_taxis.lwo"); robot_model[7] = LightwaveObject.LoadObject(dir + "TOOL3.lwo"); // okolica okolica[0] = LightwaveObject.LoadObject(dir + "Okolica\\Barrel_6.lwo"); okolica[1] = LightwaveObject.LoadObject(dir + "Okolica\\Aframe.lwo"); okolica[2] = LightwaveObject.LoadObject(dir + "Okolica\\floor.lwo"); modelOK = true; } catch { modelOK = false; //če so napake to definiraj s to spremenljivko } }
public void risi_model(LightwaveObject model) { for (int l = 0; l < model.Layers.Count; l++) { Layer layer = model.Layers[l]; Surface s = new Surface(); for (int i = 0; i < layer.Polygons.Count; i++) { Polygon poly = layer.Polygons[i]; GL.Begin(BeginMode.Polygon); s = poly.SurfaceReference; GL.Color3(s.color.Red, s.color.Green, s.color.Blue); for (int j = 0; j < poly.Vertices.Count; j++) { Lightwave.Point p = layer.Points[(int)poly.Vertices[j].Index]; GL.Normal3(poly.Vertices[j].normal_x, poly.Vertices[j].normal_y, poly.Vertices[j].normal_z); GL.Vertex3(p.position_x, p.position_y, p.position_z); } GL.End(); } } }