public override void Build() { Destination.Resize(Width, Height); var model = new CylinderModel(Source); double angle_extent = UpperAngleBound - LowerAngleBound; double height_extent = UpperHeightBound - LowerHeightBound; double xdelta = angle_extent / (double)Width; double ydelta = height_extent / (double)Height; double curr_angle = LowerAngleBound; double curr_height = LowerHeightBound; for (int y = 0; y < Height; ++y) { curr_angle = LowerAngleBound; for (int x = 0; x < Width; ++x) { double value = model[curr_angle, curr_height]; Destination[x, y] = value; curr_angle += xdelta; } curr_height += ydelta; } }
public static bool CylinderToCircle(CircleModel door, CylinderModel fridge) { bool result = false; if (fridge.Diameter < door.Diameter) { result = true; } return(result); }
public static bool CylinderToSquare(SquareModel door, CylinderModel fridge) { bool result = false; if (fridge.Diameter < door.Width && fridge.Diameter < door.Height) { result = true; } else if (fridge.Diameter < door.Width && fridge.Height < door.Height) { result = true; } else if (fridge.Diameter < door.Height && fridge.Height < door.Width) { result = true; } return(result); }
public override GEMS.Designer.Models.GeometryModels.GeometryModel CreateSourceGeometryModel() { CylinderModel cylinder = new CylinderModel(); float height = this.height.ChangeUnit(Parent.Parent.Environment.DefaultLengthUnit); float radius1 = this.radius.ChangeUnit(Parent.Parent.Environment.DefaultLengthUnit); cylinder.Height = Math.Abs(height); cylinder.Radius = radius1; //Compute the center vector3 Vector3 centerVector3 = this.center.GetDirectXVector(Parent.Parent.Environment.DefaultLengthUnit); Matrix worldMatrix = Matrix.Identity; //Set the matrix switch (this.alineAxis) { case Axis.X: centerVector3.Add(new Vector3(height / 2.0f, 0, 0)); worldMatrix = Matrix.RotationY(-(float)Math.PI / 2.0f) * Matrix.Translation(centerVector3); break; case Axis.Y: centerVector3.Add(new Vector3(0, height / 2.0f, 0)); worldMatrix = Matrix.RotationX((float)Math.PI / 2.0f) * Matrix.Translation(centerVector3); break; case Axis.Z: centerVector3.Add(new Vector3(0, 0, height / 2.0f)); worldMatrix = Matrix.Translation(centerVector3); break; } cylinder.AlineAxis = this.alineAxis; cylinder.WorldMatrix = worldMatrix; cylinder.CenterVector3 = centerVector3; return(cylinder); }
/// <summary> /// Create the primitives to be drawed /// Z ---- length /// </summary> public override void Initialize( ) { if (cylinderMesh != null) { cylinderMesh.Dispose(); } model = source as CylinderModel; //Create the mesh cylinderMesh = new AutoMesh(d3d, Mesh.Cylinder(d3d.Dx, model.Radius, model.Radius, model.Height , Direct3dRender.DefaultSlices, Direct3dRender.DefaultStacks)); //Get the bounding box cylinderMesh.BoundingBox(out minVector3, out maxVector3); minVector3.TransformCoordinate(model.WorldMatrix); maxVector3.TransformCoordinate(model.WorldMatrix); model.MinVector3 = minVector3; model.MaxVector3 = maxVector3; }
static void Main(string[] args) { { Console.WriteLine("sphere"); var sphere = new Sphere(1, 40, 80); var filename = "sphere.obj_"; sphere.DumpObjFile(filename, "sphere"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "sphere"); } } { Console.WriteLine("prismoid"); var prismoid = new PrismoidModel(5, 5, 6, 6, 2); var filename = "prismoid.obj_"; prismoid.DumpObjFile(filename, "prismoid"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "prismoid"); } } { Console.WriteLine("cylinder"); var cylinder = new CylinderModel(0.25f, 6, 17); var filename = "cylinder.obj_"; cylinder.DumpObjFile(filename, "cylinder"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "cylinder"); } } { Console.WriteLine("annulus"); var annulus = new AnnulusModel(0.5f + 0.4f, 0.3f, 17, 17); var filename = "annulus.obj_"; annulus.DumpObjFile(filename, "annulus"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "annulus"); } } { Console.WriteLine("disk"); var disk = new DiskModel(0.5f + 0.4f, 0.3f, 0.3f, 17, 17); var filename = "disk.obj_"; disk.DumpObjFile(filename, "disk"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "disk"); } } { Console.WriteLine("hanoiTower"); var list = HanoiTower.GetDataSource(); uint nextIndex = 0; var positionList = new List <vec3>(); var indexList = new List <uint>(); foreach (var item in list) { vec3[] positions = item.model.GetPositions(); uint[] indexes = item.model.GetIndexes(); for (int i = 0; i < positions.Length; i++) { positionList.Add(positions[i] + item.position); } for (int i = 0; i < indexes.Length; i++) { indexList.Add(indexes[i] + nextIndex); } nextIndex += (uint)positions.Length; } var hanoiTower = new TmpModel(positionList.ToArray(), indexList.ToArray()); var filename = "HanoiTower.obj_"; hanoiTower.DumpObjFile(filename, "hanoiTower"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "hanoiTower"); } } Console.WriteLine("done"); }
/// <summary> /// Clean up any resources being used. /// </summary> protected override void PerformDispose( ) { cylinderMesh.Dispose( ); model = null; }
static void Main(string[] args) { { Console.WriteLine("prismoid"); var prismoid = new PrismoidModel(5, 5, 6, 6, 2); var filename = "prismoid.obj"; prismoid.DumpObjFile(filename, "prismoid"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "prismoid"); } } { Console.WriteLine("cylinder"); var cylinder = new CylinderModel(0.25f, 6, 17); var filename = "cylinder.obj"; cylinder.DumpObjFile(filename, "cylinder"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "cylinder"); } } { Console.WriteLine("annulus"); var annulus = new AnnulusModel(0.5f + 0.4f, 0.3f, 17, 17); var filename = "annulus.obj"; annulus.DumpObjFile(filename, "annulus"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "annulus"); } } { Console.WriteLine("disk"); var disk = new DiskModel(0.5f + 0.4f, 0.3f, 0.3f, 17, 17); var filename = "disk.obj"; disk.DumpObjFile(filename, "disk"); var parser = new ObjVNFParser(false); ObjVNFResult result = parser.Parse(filename); if (result.Error != null) { Console.WriteLine("Error: {0}", result.Error); } else { ObjVNFMesh mesh = result.Mesh; var model = new ObjVNF(mesh); model.DumpObjFile("vnf" + filename, "disk"); } } Console.WriteLine("done"); }