/// <summary>
 /// Construct given elementary constraint, row in the elementary constraint and (optional)
 /// a native instance to copy default values from.
 /// </summary>
 /// <param name="elementaryConstraint">Elementary constraint this row data belongs to.</param>
 /// <param name="row">Row index in the elementary constraint.</param>
 /// <param name="tmpEc">Temporary native instance to copy default values from.</param>
 public ElementaryConstraintRowData(ElementaryConstraint elementaryConstraint, int row, agx.ElementaryConstraint tmpEc = null)
 {
     m_elementaryConstraint = elementaryConstraint;
     m_row = row;
     if (tmpEc != null)
     {
         m_compliance = Convert.ToSingle(tmpEc.getCompliance(RowUInt));
         m_damping    = Convert.ToSingle(tmpEc.getDamping(RowUInt));
         m_forceRange = new RangeReal(tmpEc.getForceRange(RowUInt));
     }
 }
Esempio n. 2
0
 /// <summary>
 /// Construct given elementary constraint, row in the elementary constraint and (optional)
 /// a native instance to copy default values from.
 /// </summary>
 /// <param name="elementaryConstraint">Elementary constraint this row data belongs to.</param>
 /// <param name="row">Row index in the elementary constraint.</param>
 /// <param name="tmpEc">Temporary native instance to copy default values from.</param>
 public ElementaryConstraintRowData(ElementaryConstraint elementaryConstraint, int row, agx.ElementaryConstraint tmpEc = null)
 {
     m_elementaryConstraint = elementaryConstraint;
     m_row = row;
     if (tmpEc != null)
     {
         m_compliance = Convert.ToSingle(tmpEc.getCompliance(RowUInt));
         // AGX Dynamics damping is optimized for 60 Hz simulations. Assuming
         // a fixed update of 50 Hz in Unity we scale the damping by 60 / 50 = 1.2
         // to transform the damping to 50 Hz.
         m_damping    = 1.2f * Convert.ToSingle(tmpEc.getDamping(RowUInt));
         m_forceRange = new RangeReal(tmpEc.getForceRange(RowUInt));
     }
 }