当前位置: 首页>>代码示例>>C#>>正文


C# RigidBody.SetLinearVelocity方法代码示例

本文整理汇总了C#中RigidBody.SetLinearVelocity方法的典型用法代码示例。如果您正苦于以下问题:C# RigidBody.SetLinearVelocity方法的具体用法?C# RigidBody.SetLinearVelocity怎么用?C# RigidBody.SetLinearVelocity使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在RigidBody的用法示例。


在下文中一共展示了RigidBody.SetLinearVelocity方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: Initialize

        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        // 
        //
        ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
        private void Initialize()
        { 
            Inventor.Application InvApp = AdnInventorUtilities.InvApplication;

            if(!(InvApp.ActiveDocument is AssemblyDocument))
                return;

	        AssemblyDocument doc = InvApp.ActiveDocument as AssemblyDocument;

            _dynamicsWorld = new DynamicsWorld();

            _mapOccurrencesToBodies.Clear();

	        //create dynamic bodies

            double[] transfo = new double[16];

	        for(int idx=1; idx < doc.ComponentDefinition.Occurrences.Count; ++idx)   
	        {
                ComponentOccurrence occurrence = doc.ComponentDefinition.Occurrences[idx];

                PartComponentDefinition compDef = occurrence.Definition as PartComponentDefinition;

                if (occurrence.Grounded)
                {

                }
                else
                {
                    occurrence.Transformation.GetMatrixData(ref transfo);

                    int vertexCount;
                    int facetCount;
                    double[] vertexCoords = new double[]{};
                    double[] normals = new double[]{};
                    int[] indices = new int[]{};

                    compDef.SurfaceBodies[1].CalculateFacets(0.01, 
                        out vertexCount, 
                        out facetCount, 
                        out vertexCoords,
                        out normals, 
                        out indices);

                    RigidBody body = new RigidBody(facetCount, vertexCoords, normals, indices, occurrence.MassProperties.Mass, transfo);

                    ValueTypeEnum type;
                    int vx = 0, vy = 0, vz = 0;
                    object ovx = null, ovy = null, ovz = null;

                    if (AdnInventorUtilities.ReadAttribute((object)occurrence, "Simulation", "xVelInit", out ovx, out type))
                        vx = (int)ovx;

                    if(AdnInventorUtilities.ReadAttribute((object)occurrence, "Simulation", "yVelInit", out ovy, out type))
                        vy = (int)ovy;

                    if(AdnInventorUtilities.ReadAttribute((object)occurrence, "Simulation", "zVelInit", out ovz, out type))
                        vz = (int)ovz;

                    body.SetLinearVelocity(vx, vy, vz);

                    _mapOccurrencesToBodies.Add(occurrence, body);

                    _dynamicsWorld.AddRigidBody(body);
                }
	        }

            ComponentOccurrence groundOcc = 
                doc.ComponentDefinition.Occurrences[doc.ComponentDefinition.Occurrences.Count];

            double[] pos = new double[]
            {
                groundOcc.Transformation.Translation.X,
                groundOcc.Transformation.Translation.Y,
                groundOcc.Transformation.Translation.Z
            };

            RigidBody groundBody = new RigidBody(pos);

            _dynamicsWorld.AddRigidBody(groundBody);
        }
开发者ID:derzzle,项目名称:INV2016_TRN,代码行数:85,代码来源:DynamicSimulationControl.cs


注:本文中的RigidBody.SetLinearVelocity方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。