示例#1
0
        public int[] AllocParticles(int _count)
        {
            int[] indices = new int[_count];
            int   count   = FlexExt.AllocParticles(m_containerHandle, _count, ref indices[0]);

            if (count < _count)
            {
                Array.Resize(ref indices, count);
            }
            return(indices);
        }
    public void TestAllocateFreeParticles()
    {
        Flex.Library    lib    = Flex.Init(Flex.FLEX_VERSION, ErrorCallback);
        Flex.SolverDesc slvDsc = default(Flex.SolverDesc);
        Flex.SetSolverDescDefaults(ref slvDsc);
        slvDsc.maxParticles = 1000;
        Flex.Solver       solver    = Flex.CreateSolver(lib, ref slvDsc);
        FlexExt.Container container = FlexExt.CreateContainer(lib, solver, 1000);

        int n = 1000;

        int[] indices = new int[n];

        int m = FlexExt.AllocParticles(container, n, ref indices[0]);

        Assert.AreEqual(n, m);

        FlexExt.FreeParticles(container, n, ref indices[0]);

        FlexExt.DestroyContainer(container);
        Flex.DestroySolver(solver);
        Flex.Shutdown(lib);
    }
示例#3
0
 public int AllocParticles(int[] _indices, int _offset, int _count)
 {
     return(FlexExt.AllocParticles(m_containerHandle, _count, ref _indices[_offset]));
 }