Esempio n. 1
0
        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);
        }
Esempio n. 4
0
        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);
        }
Esempio n. 5
0
        /// <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;
        }
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
 /// <summary>
 /// Clean up any resources being used.
 /// </summary>
 protected override void PerformDispose( )
 {
     cylinderMesh.Dispose( );
     model = null;
 }
Esempio n. 8
0
        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");
        }