本文整理汇总了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);
}