Esempio n. 1
0
 protected void SelectAction(bool isHit, RaycastHit hitInfo)
 {
     if (isHit == true) {
         hitTr = hitInfo.transform;
         if (isExtruding == false) {
             if (selectionState == SelectionState.Vertex) {
                 hitPoint = hitTr.GetComponent<Point>();
                 if (hitPoint != null) {
                     hitPoint.SetPointEnabled(true);
                 }
             }
             if (selectionState == SelectionState.Face) {
                 hitPrimitiveObject = hitTr.GetComponent<PrimitiveObject>();
                 if (hitPrimitiveObject != null && hitPrimitiveObject.IsSelected == false) {
                     hitPrimitiveObject.SetColor(Color.red);
                 }
             } else if (selectionState == SelectionState.Object) {
                 hitPrimitiveObject = hitTr.GetComponent<PrimitiveObject>();
                 if (hitPrimitiveObject != null && hitPrimitiveObject.IsSelected == false) {
                     hitPrimitiveObject.GetCompound().SetColor(Color.red);
                 }
             }
         }
     }
 }
 //used to make a pick collidable primitives from an existing PrimitiveObject (i.e. the type returned by the PrimitiveFactory
 public PickupCollidablePrimitiveObject(PrimitiveObject primitiveObject, ICollisionPrimitive collisionPrimitive,
                                        ObjectManager objectManager, PickupParameters pickupParameters, EventDispatcher eventDispatcher)
     : base(primitiveObject, collisionPrimitive, objectManager, eventDispatcher)
 {
     this.eventDispatcher  = eventDispatcher;
     this.pickupParameters = pickupParameters;
 }
Esempio n. 3
0
        public void GetObject(PrimitiveObject pro)
        {
            int i = CurrObj;

            for (int ii = 0; ii < TypesAndFields.Count; ii++)
            {
                Type      type       = IdentityType.Instance[TypesAndFields[ii][0]];
                string    name       = TypesAndFields[ii][1];
                NGISpread currspread = Spreads[name];
                currspread.SliceCount = FInput.SliceCount;
                NGISpread currvalues = (NGISpread)currspread[i];

                if (pro.Fields.ContainsKey(name))
                {
                    List <object> objl = pro[name];
                    currvalues.SliceCount = objl.Count;

                    for (int j = 0; j < currvalues.SliceCount; j++)
                    {
                        currvalues[j] = objl[j];
                    }
                }
                else
                {
                    currvalues.SliceCount = 0;
                }
            }
        }
Esempio n. 4
0
        public void SetObject(PrimitiveObject pro)
        {
            int i = CurrObj;

            for (int ii = 0; ii < Spreads.Count; ii++)
            {
                string    name       = TypesAndFields[ii][1];
                NGISpread currspread = (NGISpread)Spreads[name][i];

                List <object> objl = pro[name];
                if (currspread.SliceCount != objl.Count)
                {
                    objl.Clear();
                    for (int j = 0; j < currspread.SliceCount; j++)
                    {
                        objl.Add(currspread[j]);
                    }
                }
                else
                {
                    for (int j = 0; j < currspread.SliceCount; j++)
                    {
                        objl[j] = currspread[j];
                    }
                }
            }
        }
 public ChildObject()
 {
     _Title   = TestRandomizer.GetString();
     _Private = new PrimitiveObject();
     Public   = new PrimitiveObject();
     _Null    = null;
 }
Esempio n. 6
0
    public void ExtrudeFace(PrimitiveObject face, float magnitude, bool isContinous)
    {
        Vector3 normal  = face.GetNormal;
        Vector3 normEps = normal * eps;

        Vector3[] verticesFace = face.PrimMeshFilter.mesh.vertices;

        int[] indiceSequence = new int[] { 0, 1, 3, 2, 0 };

        if (extrFacesList == null)
        {
            extrFacesList = new List <PrimitiveObject>();

            face.initPos = face.transform.position;

            for (int i = 0; i < verticesFace.Length; i++)
            {
                Vector3[] vs1 = new Vector3[4] {
                    verticesFace[indiceSequence[i]] - normEps,
                    verticesFace[indiceSequence[i + 1]] - normEps,
                    verticesFace[indiceSequence[i]] + normEps,
                    verticesFace[indiceSequence[i + 1]] + normEps
                };

                PrimitiveObject newPo = PrimitiveObject.MakeRectangle(transform, vs1, (face.transform.position + face.initPos) * 0.5f + (verticesFace[indiceSequence[i]] + verticesFace[indiceSequence[i + 1]]) * 0.5f, true);
                primObjectList.Add(newPo);
                extrFacesList.Add(newPo);
            }
        }

        if (extrFacesList != null)
        {
            face.MoveFaceTowardsNormal(magnitude, isContinous);
            for (int i = 0; i < extrFacesList.Count; i++)
            {
                PrimitiveObject extrPo = extrFacesList[i];

                extrPo.transform.position = (face.transform.position + face.initPos) * 0.5f + (verticesFace[indiceSequence[i]] + verticesFace[indiceSequence[i + 1]]) * 0.5f;

                Vector3[] vertices = extrPo.PrimMeshFilter.mesh.vertices;

                vertices[0] = face.initPos + verticesFace[indiceSequence[i]] - extrPo.transform.position - normEps;
                vertices[1] = face.initPos + verticesFace[indiceSequence[i + 1]] - extrPo.transform.position - normEps;
                vertices[2] = face.transform.position + verticesFace[indiceSequence[i]] - extrPo.transform.position + normEps;
                vertices[3] = face.transform.position + verticesFace[indiceSequence[i + 1]] - extrPo.transform.position + normEps;

                extrPo.PrimMeshFilter.mesh.vertices = vertices;
                extrPo.PrimMeshFilter.mesh.RecalculateBounds();

                for (int j = 0; j < vertices.Length; j++)
                {
                    extrPo.PointList[j].transform.position = vertices[j] + extrPo.transform.position;
                }

                MeshCollider col = extrPo.GetComponent <MeshCollider>();
                col.sharedMesh = extrPo.PrimMeshFilter.mesh;
            }
        }
    }
Esempio n. 7
0
 public void CreateArray(int num)
 {
     objectArray = new PrimitiveObject[num];
     for (int i = 0; i < num; i++)
     {
         objectArray[i] = new PrimitiveObject(i, i.ToString(), (float)i, i % 2 == 0 ? true : false);
     }
 }
 private void ComparePrimitiveObject(PrimitiveObject oa, PrimitiveObject ob)
 {
     Assert.AreEqual(oa.Int, ob.Int);
     Assert.AreEqual(oa.Long, ob.Long);
     Assert.AreEqual(oa.Short, ob.Short);
     Assert.AreEqual(oa.Bool, ob.Bool);
     Assert.AreEqual(oa.String, ob.String);
 }
        public void TestSerializeFlat()
        {
            PrimitiveObject oo  = new PrimitiveObject();
            string          xml = xstream.ToXml(oo);
            PrimitiveObject ob  = xstream.FromXml(xml) as PrimitiveObject;

            Assert.IsNotNull(ob);
            ComparePrimitiveObject(oo, ob);
        }
Esempio n. 10
0
    public void SetColor(Color c)
    {
        for (int i = 0; i < primObjectList.Count; i++)
        {
            PrimitiveObject po = primObjectList[i];

            po.SetColor(c);
        }
    }
Esempio n. 11
0
    public void RestoreColor()
    {
        for (int i = 0; i < primObjectList.Count; i++)
        {
            PrimitiveObject po = primObjectList[i];

            po.RestoreColor();
        }
    }
    public void spawnCylinder()
    {
        PrimitiveObject myCylinder = myObjFactory.getObject("Cylinder");

        if (myObject)
        {
            dropObject();
        }
        myObject = myCylinder.getPrimitiveObj();
    }
    //// Spawn new primitive objects with preset properties and place in hand \\\\
    public void spawnCube()
    {
        PrimitiveObject myCube = myObjFactory.getObject("Cube");

        if (myObject)
        {
            dropObject();
        }
        myObject = myCube.getPrimitiveObj();
    }
    public void spawnSphere()
    {
        PrimitiveObject mySphere = myObjFactory.getObject("Sphere");

        if (myObject)
        {
            dropObject();
        }
        myObject = mySphere.getPrimitiveObj();
    }
    public void spawnCapsule()
    {
        PrimitiveObject myCapsule = myObjFactory.getObject("Capsule");

        if (myObject)
        {
            dropObject();
        }
        myObject = myCapsule.getPrimitiveObj();
    }
Esempio n. 16
0
    public void SelectAll(bool select)
    {
        IsSelected = select;

        for (int i = 0; i < primObjectList.Count; i++)
        {
            PrimitiveObject po = primObjectList[i];

            po.IsSelected = select;
        }
    }
Esempio n. 17
0
    public void UpdateUniformlyCompoundbject(float magnitude)
    {
        float magnScale = 2f;

        Magnitute = primObjectList[0].Magnitute;

        for (int i = 0; i < primObjectList.Count; i++)
        {
            PrimitiveObject po = primObjectList[i];
            po.UpdateUniformlyPrimitiveObject(magnScale * magnitude, initialShape == InitialShape.Cube);
        }
    }
Esempio n. 18
0
    public static PrimitiveObject MakeQuad(Transform parent, float size, Vector3 pos, QuadOrientation qo = QuadOrientation.up, bool hasCollider = true)
    {
        float halfSize = 0.5f * size;

        Vector3[] vertices = new Vector3[4];
        if (qo == QuadOrientation.up)
        {
            vertices[0] = new Vector3(-halfSize, 0, -halfSize);
            vertices[1] = new Vector3(halfSize, 0, -halfSize);
            vertices[2] = new Vector3(-halfSize, 0, halfSize);
            vertices[3] = new Vector3(halfSize, 0, halfSize);
        }
        else if (qo == QuadOrientation.down)
        {
            vertices[0] = new Vector3(-halfSize, 0, -halfSize);
            vertices[1] = new Vector3(-halfSize, 0, halfSize);
            vertices[2] = new Vector3(halfSize, 0, -halfSize);
            vertices[3] = new Vector3(halfSize, 0, halfSize);
        }
        else if (qo == QuadOrientation.left)
        {
            vertices[0] = new Vector3(0, -halfSize, -halfSize);
            vertices[1] = new Vector3(0, halfSize, -halfSize);
            vertices[2] = new Vector3(0, -halfSize, halfSize);
            vertices[3] = new Vector3(0, halfSize, halfSize);
        }
        else if (qo == QuadOrientation.right)
        {
            vertices[0] = new Vector3(0, -halfSize, -halfSize);
            vertices[1] = new Vector3(0, -halfSize, halfSize);
            vertices[2] = new Vector3(0, halfSize, -halfSize);
            vertices[3] = new Vector3(0, halfSize, halfSize);
        }
        else if (qo == QuadOrientation.front)
        {
            vertices[0] = new Vector3(-halfSize, -halfSize, 0);
            vertices[1] = new Vector3(-halfSize, halfSize, 0);
            vertices[2] = new Vector3(halfSize, -halfSize, 0);
            vertices[3] = new Vector3(halfSize, halfSize, 0);
        }
        else if (qo == QuadOrientation.back)
        {
            vertices[0] = new Vector3(-halfSize, -halfSize, 0);
            vertices[1] = new Vector3(halfSize, -halfSize, 0);
            vertices[2] = new Vector3(-halfSize, halfSize, 0);
            vertices[3] = new Vector3(halfSize, halfSize, 0);
        }

        PrimitiveObject po = MakeRectangle(parent, vertices, pos, hasCollider);

        return(po);
    }
Esempio n. 19
0
    public static PrimitiveObject MakeZStripe(Transform parent, float length, float width, Vector3 pos, bool hasCollider)
    {
        Vector3[] lineVertices = new Vector3[4];
        lineVertices[0] = new Vector3(-width, 0, -length);
        lineVertices[1] = new Vector3(-width, 0, length);
        lineVertices[2] = new Vector3(width, 0, -length);
        lineVertices[3] = new Vector3(width, 0, length);

        PrimitiveObject po = MakeRectangle(parent, lineVertices, pos, hasCollider);

        po.SetPointsActive(false);
        return(po);
    }
Esempio n. 20
0
    private void Start()
    {
        //CompoundObject.MakeCube(ModelParent, 2f);

        Transform gridTr = GameObject.Find("Grid").transform;
        float stripeWidth = 0.01f;
        int numOfStripes = 20;
        float stripeLength = numOfStripes * 0.5f;
        for (int i = 0; i < numOfStripes; i++) {
            PrimitiveObject.MakeXStripe(gridTr, stripeLength, stripeWidth, new Vector3(0, 0, i - 0.5f * numOfStripes), false);
            PrimitiveObject po = PrimitiveObject.MakeXStripe(gridTr, stripeLength, stripeWidth, new Vector3(i - 0.5f * numOfStripes, 0, 0), false);
            po.transform.Rotate(Vector3.up, 90f);
        }
    }
Esempio n. 21
0
        public override void OnEval()
        {
            this.SetSliceCount();

            if (FAutoClear[0])
            {
                bool clear = false;
                for (int i = 0; i < this.SliceCount; i++)
                {
                    if (FConstruct[i])
                    {
                        clear = true;
                    }
                }
                if (clear)
                {
                    fc = 0;
                }
            }
            if (fc == 0)
            {
                FOutput.SliceCount = 0;
            }
            fc++;

            bool empty = FOutput.SliceCount == 0;

            for (int i = 0; i < this.SliceCount; i++)
            {
                this.CurrObj = i;
                if (FConstruct[i] || (FSet[i] && empty))
                {
                    PrimitiveObject ro = ConstructObject();
                    if (ro != null)
                    {
                        FOutput.Add(ro);
                    }
                }
            }
            for (int i = 0; i < FOutput.SliceCount; i++)
            {
                this.CurrObj = i;
                if (FSet[i])
                {
                    SetObject(FOutput[i] as PrimitiveObject);
                }
            }
        }
Esempio n. 22
0
        internal static void SelectReleaseFromAvailableBundles()
        {
            Logger.Log(String.Format(CultureInfo.InvariantCulture, "Select command started."), Logger.MessageLevel.Verbose, AppName);
            MsgRelease = PrimitiveObject.GetReleases;

            Console.WriteLine(PrintReleaseInfo());
            Console.WriteLine("Select which releases you would like to target for uninstall. No action will be taken yet. This is only selection.\r\n");
            Console.Write("Use a comma separated list if you want to target multiple releases.  For a bundle to be uninstalled, it must be installed and in the package cache. ");
            Console.Write("You can choose to uninstall a release you no longer have installed, but only MSIs associated will be uninstalled.  The bundle uninstall will not be available.\r\n");
            Console.WriteLine("i.e. 1, 2, 14, 8");
            Console.Write("> ");
            var userselect = Console.ReadLine();

            PrimitiveObject.SelectedReleases(userselect);
            PrimitiveObject.ReleaseOutput = PrimitiveObject.GetReleases;
            Logger.Log(String.Format(CultureInfo.InvariantCulture, "Select command ended."), Logger.MessageLevel.Verbose, AppName);
        }
Esempio n. 23
0
        public void SetObject(PrimitiveObject pro)
        {
            int i = CurrObj;

            for (int ii = 0; ii < Spreads.Count; ii++)
            {
                Type      type       = IdentityType.Instance[TypesAndFields[ii][0]];
                string    name       = TypesAndFields[ii][1];
                NGISpread currspread = (NGISpread)Spreads[name][i];

                if (pro.Fields.ContainsKey(name))
                {
                    List <object> objl = pro[name];
                    if (currspread.SliceCount != objl.Count)
                    {
                        objl.Clear();
                        for (int j = 0; j < currspread.SliceCount; j++)
                        {
                            objl.Add(currspread[j]);
                        }
                    }
                    else
                    {
                        for (int j = 0; j < currspread.SliceCount; j++)
                        {
                            objl[j] = currspread[j];
                        }
                    }
                }
                else
                {
                    if (FNotExist[0] == ManageNotExisting.Create)
                    {
                        List <object> objl = new List <object>();
                        for (int j = 0; j < currspread.SliceCount; j++)
                        {
                            objl.Add(currspread[j]);
                        }
                        pro.Add(name, objl);
                    }
                }
            }
        }
        static internal void SetupPrimitivesValues(bool debug, bool donotprocess)
        {
            // uti.bDebug = op.Debug; ip.DebugReporting = op.Debug;
            PrimitiveObject.MachineArchitectureConfiguration = SystemSettings.Is64() ? ArchitectureConfiguration.x64 : ArchitectureConfiguration.x86;
            PrimitiveObject.MachineOSVersion = SystemSettings.Version();

            PrimitiveObject.Filters.Clear();
            PrimitiveObject.UninstallActions.Clear();

            VisualStudioSpecific.VSFilters(PrimitiveObject);
            VisualStudioSpecific.VSUninstallActions(PrimitiveObject);

            PrimitiveObject.DataFilesPath       = path;
            PrimitiveObject.DoNotExecuteProcess = donotprocess;
            PrimitiveObject.DebugReporting      = debug;

            //Initialize
            PrimitiveObject.Initialize();
        }
Esempio n. 25
0
    public static CompoundObject MakeQuad(Transform parent, float size, string name = "")
    {
        GameObject go = new GameObject("Quad");

        if (name != "")
        {
            go.name = name;
        }
        go.transform.SetParent(parent);

        go.AddComponent <CompoundObject>();
        CompoundObject co = go.GetComponent <CompoundObject>();

        co.initialShape = InitialShape.Quad;

        co.primObjectList.Add(PrimitiveObject.MakeQuad(go.transform, size, new Vector3(0, 0, 0), PrimitiveObject.QuadOrientation.up));
        co.primObjectList.Add(PrimitiveObject.MakeQuad(go.transform, size, new Vector3(0, 0, 0), PrimitiveObject.QuadOrientation.down));

        return(co);
    }
Esempio n. 26
0
 protected void RestoreSelectionAction()
 {
     if (selectionState == SelectionState.Vertex) {
         if (hitPoint != null) {
             hitPoint.SetPointEnabled(false);
         }
     }
     if (selectionState == SelectionState.Face) {
         if (hitPrimitiveObject != null && hitPrimitiveObject.IsSelected == false) {
             hitPrimitiveObject.RestoreColor();
         }
     } else if (selectionState == SelectionState.Object) {
         if (hitPrimitiveObject != null && hitPrimitiveObject.GetCompound().IsSelected == false) {
             hitPrimitiveObject.GetCompound().RestoreColor();
         }
     }
     hitTr = null;
     hitPrimitiveObject = null;
     hitPoint = null;
 }
Esempio n. 27
0
        public PrimitiveObject ConstructObject()
        {
            int             i   = CurrObj;
            PrimitiveObject pro = new PrimitiveObject();

            for (int ii = 0; ii < Spreads.Count; ii++)
            {
                List <object> objl       = new List <object>();
                string        type       = TypesAndFields[ii][0];
                string        name       = TypesAndFields[ii][1];
                NGISpread     currspread = (NGISpread)Spreads[name][i];
                objl.Clear();
                for (int j = 0; j < currspread.SliceCount; j++)
                {
                    objl.Add(currspread[j]);
                }
                pro.Fields.Add(TypesAndFields[ii][1], objl);
            }
            return(pro);
        }
Esempio n. 28
0
    protected ModelerState SelectionActions(ModelerState modelerState)
    {
        if (Input.GetMouseButtonDown(0)) {
            if (EventSystem.current.IsPointerOverGameObject() == false) {
                if (selectedPrimitiveObject != null) {
                    selectedPrimitiveObject.GetCompound().SelectAll(false);
                    selectedPrimitiveObject = null;
                }
            }
            switch (selectionState) {
                case SelectionState.Object:

                    if (hitPrimitiveObject != null) {
                        if (selectedPrimitiveObject != null) {
                            selectedPrimitiveObject.GetCompound().SelectAll(false);
                        }
                        selectedPrimitiveObject = hitTr.GetComponent<PrimitiveObject>();
                        selectedPrimitiveObject.GetCompound().SelectAll(true);
                    }
                    break;
                case SelectionState.Face:
                    if (hitPrimitiveObject != null) {
                        if (selectedPrimitiveObject != null) {
                            selectedPrimitiveObject.IsSelected = false;
                        }
                        selectedPrimitiveObject = hitTr.GetComponent<PrimitiveObject>();
                        selectedPrimitiveObject.IsSelected = true;
                    }
                    break;
                case SelectionState.Edge:
                    break;
                case SelectionState.Vertex:

                    break;
                default:
                    break;
            }
        }
        return modelerState;
    }
Esempio n. 29
0
        static internal void SetupPrimitivesValues(bool debug, bool donotprocess)
        {
            // uti.bDebug = op.Debug; ip.DebugReporting = op.Debug;
            PrimitiveObject.MachineArchitectureConfiguration = SystemSettings.Is64() ? ArchitectureConfiguration.x64 : ArchitectureConfiguration.x86;
            PrimitiveObject.MachineOSVersion = SystemSettings.Version();

            PrimitiveObject.Filters.Clear();
            PrimitiveObject.UninstallActions.Clear();

            VisualStudioSpecific.VSFilters(PrimitiveObject);
            VisualStudioSpecific.VSUninstallActions(PrimitiveObject);

            PrimitiveObject.DataFilesPath       = path;
            PrimitiveObject.DoNotExecuteProcess = donotprocess;
            PrimitiveObject.DebugReporting      = debug;

            //Initialize
            Console.WriteLine(Logger.Log("Set filters in Primitives object", Logger.MessageLevel.Information, AppName));
            Console.WriteLine(Logger.Log("Initializing configuration... Please wait.", Logger.MessageLevel.Information, AppName));
            Console.WriteLine(Logger.Log("-----------------------------------------------------------------------", Logger.MessageLevel.Information, AppName));
            PrimitiveObject.Initialize();
            Console.WriteLine(Logger.Log("Calling GetUsage for dialog prompt.", Logger.MessageLevel.Information, AppName));
            Console.Clear();
        }
Esempio n. 30
0
        public void Evaluate(int SpreadMax)
        {
            if (FInput.IsConnected)
            {
                FType.SliceCount     = FInput.SliceCount;
                FChildren.SliceCount = FInput.SliceCount;

                for (int i = 0; i < FInput.SliceCount; i++)
                {
                    if (FInput[i] is PrimitiveObject)
                    {
                        PrimitiveObject pro = FInput[i] as PrimitiveObject;

                        FChildren[i].SliceCount = pro.Fields.Count;
                        FType[i].SliceCount     = pro.Fields.Count;
                        List <List <object> > otpl  = pro.Fields.Values.ToList();
                        List <string>         names = pro.Fields.Keys.ToList();
                        for (int j = 0; j < pro.Fields.Count; j++)
                        {
                            FChildren[i][j] = names[j];
                            FType[i][j]     = otpl[j][0].GetType().ToString();
                        }
                    }
                    else
                    {
                        FChildren[i].SliceCount = 0;
                        FType[i].SliceCount     = 0;
                    }
                }
            }
            else
            {
                FType.SliceCount     = 0;
                FChildren.SliceCount = 0;
            }
        }