Beispiel #1
0
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            Plane    iPlane    = new Plane();
            double   iRadius   = 0;
            bool     isDynamic = true;
            Material iMaterial = PhysXManager.Physics.CreateMaterial(0.5f, 0.5f, 0.5f);

            DA.GetData(0, ref iPlane);
            DA.GetData(1, ref iRadius);
            DA.GetData(2, ref isDynamic);
            DA.GetData(3, ref iMaterial);

            PxGhRigidDynamic dynamic = new PxGhRigidDynamicSphere(iPlane, (float)iRadius, iMaterial, 1f);

            DA.SetData(0, dynamic);

            if (isDynamic)
            {
                PxGhRigidDynamic rigidDynamic = new PxGhRigidDynamicSphere(iPlane, (float)iRadius, iMaterial, 1f);
                DA.SetData(0, rigidDynamic);
            }
            else
            {
                PxGhRigidStaticSphere rigidStatic = new PxGhRigidStaticSphere(iPlane, (float)iRadius, iMaterial);
                DA.SetData(0, rigidStatic);
            }
        }
        protected override void SolveInstance(IGH_DataAccess DA)
        {
            double      iRadius   = double.NaN;
            Plane       iFrame    = Plane.Unset;
            bool        iDynamic  = true;
            Material    iMaterial = PxGhManager.DefaultMaterial;
            double      iMass     = double.NaN;
            Vector3d    iInitialLinearVelocity   = Vector3d.Unset;
            Vector3d    iInitialLAngularVelocity = Vector3d.Unset;
            double      iLinearDamping           = double.NaN;
            double      iAngularDamping          = double.NaN;
            List <Mesh> iDisplayedMeshes         = new List <Mesh>();

            DA.GetData(0, ref iRadius);
            DA.GetData(1, ref iFrame);
            DA.GetData(2, ref iDynamic);
            DA.GetData(3, ref iMaterial);
            DA.GetData(4, ref iMass);
            DA.GetData(5, ref iInitialLinearVelocity);
            DA.GetData(6, ref iInitialLAngularVelocity);
            DA.GetData(7, ref iLinearDamping);
            DA.GetData(8, ref iAngularDamping);
            DA.GetDataList(9, iDisplayedMeshes);

            if (iDynamic)
            {
                PxGhRigidDynamic rigidObject = new PxGhRigidDynamicSphere(iFrame, (float)iRadius, iMaterial, (float)iMass, iInitialLinearVelocity, iInitialLAngularVelocity);
                rigidObject.Actor.LinearDamping  = (float)iLinearDamping;
                rigidObject.Actor.AngularDamping = (float)iAngularDamping;
                DA.SetData(0, rigidObject);
            }
            else
            {
                DA.SetData(0, new PxGhRigidStaticSphere(iFrame, (float)iRadius, iMaterial));
            }
        }