Inheritance: MonoBehaviour
            public static SimpleSurfaceGenerator Lathe(CurveGenerator original)
            {
                return((ref Vector2d input) => {
                    Vector2d plane = original(input.Y);
                    double r = input.X * Math.PI * 2, c = Math.Cos(r), s = Math.Sin(r);

                    return new Vector3d(plane.X * c, plane.X * s, plane.Y);
                });
            }
Example #2
0
 private CurveGenerator[] ExtractSrpts_fromObjs(GameObject[] objs)
 {
     CurveGenerator[] scripts = new CurveGenerator[objs.Length];
     for (int i = 0; i < objs.Length; i++)
     {
         scripts[i] = objs[i].GetComponent <CurveGenerator>();
     }
     return(scripts);
 }
Example #3
0
    private void InitPointer()
    {
        pointerCursor       = (customPointerCursor ? Instantiate(customPointerCursor) : CreateCursor());
        pointerCursor.name  = "PointerCursor";
        pointerCursor.layer = LayerMask.NameToLayer("Ignore Raycast");
        pointerCursor.SetActive(false);

        curvedBeamContainer = new GameObject("CurvedBeamContainer");
        curvedBeam          = curvedBeamContainer.gameObject.AddComponent <CurveGenerator>();
        curvedBeamContainer.SetActive(false);
        curvedBeam.transform.parent = null;
        curvedBeam.Create(pointerDensity, pointerCursorRadius, customPointerTracer, rescalePointerTracer);

        pointerCursor.SetActive(false);
    }
    protected override void InitPointer()
    {
        pointerCursor = (customPointerCursor ? Instantiate(customPointerCursor) : CreateCursor());

        pointerCursor.name = string.Format("[{0}]PlayerObject_WorldPointer_BezierPointer_PointerCursor", this.gameObject.name);
        pointerCursor.layer = 2;
        pointerCursor.SetActive(false);

        GameObject global = new GameObject(string.Format("[{0}]PlayerObject_WorldPointer_BezierPointer_CurvedBeamContainer", this.gameObject.name));
        global.SetActive(false);
        curvedBeam = global.gameObject.AddComponent<CurveGenerator>();
        curvedBeam.transform.parent = null;
        curvedBeam.Create(pointerDensity, pointerCursorRadius, customPointerTracer);
        base.InitPointer();
    }
Example #5
0
    protected override void InitPointer()
    {
        pointerCursor = (customPointerCursor ? Instantiate(customPointerCursor) : CreateCursor());

        pointerCursor.name  = string.Format("[{0}]PlayerObject_WorldPointer_BezierPointer_PointerCursor", this.gameObject.name);
        pointerCursor.layer = 2;
        pointerCursor.SetActive(false);

        GameObject global = new GameObject(string.Format("[{0}]PlayerObject_WorldPointer_BezierPointer_CurvedBeamContainer", this.gameObject.name));

        global.SetActive(false);
        curvedBeam = global.gameObject.AddComponent <CurveGenerator>();
        curvedBeam.transform.parent = null;
        curvedBeam.Create(pointerDensity, pointerCursorRadius, customPointerTracer);
        base.InitPointer();
    }
		static void CreateMapMagic () 
		{
			if (FindObjectOfType<MapMagic>() != null)
			{
				Debug.LogError("Could not create new Map Magic instance, it already exists in scene.");
				return;
			}

			GameObject go = new GameObject();
			go.name = "Map Magic";
			MapMagic.instance = go.AddComponent<MapMagic>();

			//creating new generators and new terrains (otherwise old static will be loaded)
			MapMagic.instance.UnlockAndReset();
			MapMagic.instance.gens = ScriptableObject.CreateInstance<GeneratorsAsset>(); //new MapMagic.GeneratorsList();
			MapMagic.instance.terrains = new MapMagic.TerrainGrid();
			MapMagic.instance.seed=12345; MapMagic.instance.terrainSize=1000; MapMagic.instance.terrainHeight=300; MapMagic.instance.resolution=512;
			//MapMagic.instance.terrains.maxCount = 5;

			//creating initial generators
			NoiseGenerator1 noiseGen = (NoiseGenerator1)MapMagic.instance.gens.CreateGenerator(typeof(NoiseGenerator1), new Vector2(50,50));
			noiseGen.intensity = 0.75f;

			CurveGenerator curveGen = (CurveGenerator)MapMagic.instance.gens.CreateGenerator(typeof(CurveGenerator), new Vector2(250,50));
			curveGen.curve = new AnimationCurve( new Keyframe[] { new Keyframe(0,0,0,0), new Keyframe(1,1,2.5f,1) } );

			HeightOutput heightOut = (HeightOutput)MapMagic.instance.gens.CreateGenerator(typeof(HeightOutput), new Vector2(450,50));

			curveGen.input.Link(noiseGen.output, noiseGen);
			heightOut.input.Link(curveGen.output, curveGen);

			//creating initial terrain
			MapMagic.instance.terrains.Nail(new Coord(0,0));

			//registering undo
			MapMagic.instance.gens.OnBeforeSerialize();
			Undo.RegisterCreatedObjectUndo (go, "MapMagic Create");
			EditorUtility.SetDirty(MapMagic.instance);

			/*HeightOutput heightOut =  new HeightOutput();
			heightOut.guiRect = new Rect(43,76,200,20);
			MapMagic.instance.generators.array[1] = heightOut;
			heightOut.input.Link(noiseGen.output, noiseGen);*/
			
		}
Example #7
0
    protected override void InitPointer()
    {
        pointerCursor      = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        pointerCursor.name = "PlayerObject_WorldPointer_BezierPointer_PointerCursor";
        pointerCursor.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        pointerCursor.GetComponent <MeshRenderer>().receiveShadows    = false;
        pointerCursor.transform.localScale = new Vector3(pointerCursorRaduis, 0.02f, pointerCursorRaduis);

        Destroy(pointerCursor.GetComponent <CapsuleCollider>());
        pointerCursor.layer = 2;

        GameObject global = new GameObject("PlayerObject_WorldPointer_BezierPointer_CurvedBeamContainer");

        curvedBeam = global.gameObject.AddComponent <CurveGenerator>();
        curvedBeam.transform.parent = null;
        curvedBeam.Create(pointerDensity, pointerCursorRaduis);
        base.InitPointer();
    }
        public static GeneratorsAsset Default()
        {
            GeneratorsAsset gens = ScriptableObject.CreateInstance <GeneratorsAsset>();

            //creating initial generators
            NoiseGenerator1 noiseGen = (NoiseGenerator1)gens.CreateGenerator(typeof(NoiseGenerator1), new Vector2(50, 50));

            noiseGen.intensity = 0.75f;

            CurveGenerator curveGen = (CurveGenerator)gens.CreateGenerator(typeof(CurveGenerator), new Vector2(250, 50));

            curveGen.curve = new AnimationCurve(new Keyframe[] { new Keyframe(0, 0, 0, 0), new Keyframe(1, 1, 2.5f, 1) });

            HeightOutput heightOut = (HeightOutput)gens.CreateGenerator(typeof(HeightOutput), new Vector2(450, 50));

            curveGen.input.Link(noiseGen.output, noiseGen);
            heightOut.input.Link(curveGen.output, curveGen);

            return(gens);
        }
    void InitPointer()
    {
        pointerColor = new Material(Shader.Find("Legacy Shaders/Transparent/Diffuse"));
        pointerColor.SetColor("_Color", validTargetColor);

        pointerCursor = GameObject.CreatePrimitive(PrimitiveType.Cylinder);
        pointerCursor.GetComponent <MeshRenderer>().material          = pointerColor;
        pointerCursor.GetComponent <MeshRenderer>().shadowCastingMode = UnityEngine.Rendering.ShadowCastingMode.Off;
        pointerCursor.GetComponent <MeshRenderer>().receiveShadows    = false;
        pointerCursor.transform.localScale = new Vector3(pointerCursorRaduis, 0.02f, pointerCursorRaduis);

        Destroy(pointerCursor.GetComponent <CapsuleCollider>());
        pointerCursor.layer = 2;

        GameObject global = new GameObject("CurvedBeamContainer");

        curvedBeam = global.gameObject.AddComponent <CurveGenerator>();
        curvedBeam.transform.parent = null;
        curvedBeam.Create(pointerDensity, pointerCursorRaduis);
    }
Example #10
0
        static BigInteger EcmSandbox(BigInteger n, ulong bound, ulong curveCount)
        {
            Console.WriteLine(string.Format("n={0} ({1} digits)", n, n.ToString().Length));

            CurveGenerator g     = new CurveGenerator();
            BigInteger     gcd   = 1;
            var            timer = new Stopwatch();
            ulong          b1    = bound;
            ulong          b2    = b1 * 100;
            ulong          b3    = b2 + b1 * 100;

            timer.Start();
            var        curves = new Curve[curveCount];
            BigInteger factor = 1;

            curves = curves.Select(x =>
            {
                var c = g.GenerateMontgomeryCurve(n, out gcd);
                if (gcd > 1)
                {
                    factor = gcd;
                }
                return(c);
            }).ToArray();
            if (factor > 1)
            {
                Console.WriteLine("Factor found!");
                Console.WriteLine(factor);
                timer.Stop();
                Console.WriteLine(timer.Elapsed);
                return(factor);
            }
            else
            {
                var count = 0;
                Console.Write("\r{0}/{1} curves   ", count++, curveCount);
                foreach (var curve in curves)
                {
                    var ecm = new Ecm();
                    factor = ecm.Calculate(curve, b1, b2, b3);



                    if (n % factor != 0)
                    {
                        Console.WriteLine("ERROR!");
                    }
                    else if (factor > 1)
                    {
                        Console.WriteLine();
                        Console.WriteLine("Factor found!");
                        Console.WriteLine(factor);
                        timer.Stop();
                        Console.WriteLine(timer.Elapsed);
                        break;
                    }
                    else
                    {
                        Console.Write("\r{0}/{1} curves   ", count++, curveCount);
                    }
                }
            }
            return(factor);
        }
 public ProceduralParameters StartLathe(CurveGenerator original)
 {
     return StartProcedural(SurfaceGenerators.Lathe(original));
 }
        public static SimpleSurfaceGenerator Lathe(CurveGenerator original)
        {
            return (ref Vector2d input) => {
                    Vector2d plane = original(input.Y);
                    double r = input.X * Math.PI * 2, c = Math.Cos(r), s = Math.Sin(r);

                    return new Vector3d(plane.X * c, plane.X * s, plane.Y);
                };
        }
 public ProceduralParameters StartLathe(CurveGenerator original)
 {
     return(StartProcedural(SurfaceGenerators.Lathe(original)));
 }