public void initLineMin( Matrix4f kToOrigin, Matrix4f kFromOrigin, float rigid, float dim, double[] startPoint, double[] pt, int ptLength, double[] unitDirections, double unit_tolerance, double fMinDist, double bracketA, double functionA, double bracketB, double functionB, double bracketC, double functionC) { m_fUnitTolerance = (float) unit_tolerance; m_kToOrigin = convertTo4D(kToOrigin); m_kFromOrigin = convertTo4D(kFromOrigin); m_fRigid = rigid; m_fDim = dim; for (int i = 0; i < startPoint.length; i++) { m_afStartPoint[i] = (float) startPoint[i]; } for (int i = 0; i < unitDirections.length; i++) { m_afUnitDirections[i] = (float) unitDirections[i]; } for (int i = 0; i < pt.length; i++) { m_afPt[i] = (float) pt[i]; } m_fPtLength = ptLength; m_fMinDist = (float) fMinDist; if (m_kImageLineMinDual != null) { m_kImageLineMinDual.updateParameters( m_kToOrigin, m_kFromOrigin, m_fRigid, m_fDim, m_afStartPoint, m_afPt, m_fPtLength, m_afUnitDirections, m_fUnitTolerance, m_fMinDist); } if (m_kCalcTransform != null) { m_kCalcTransform.updateParameters( m_kToOrigin, m_kFromOrigin, m_fRigid, m_fDim, m_afStartPoint, m_afPt, m_fPtLength, m_afUnitDirections, m_fUnitTolerance, m_fMinDist); } if (m_kImageLineMinPass2a != null) { m_kImageLineMinPass2a.setMinDist(m_fMinDist); } int index = 0; m_afBracket[index++] = (float) bracketA; m_afBracket[index++] = (float) functionA; m_afBracket[index++] = -1f; m_afBracket[index++] = 0f; m_afBracket[index++] = (float) bracketB; m_afBracket[index++] = (float) functionB; m_afBracket[index++] = 0f; m_afBracket[index++] = 0f; m_afBracket[index++] = (float) bracketC; m_afBracket[index++] = (float) functionC; m_afBracket[index++] = 0f; m_afBracket[index++] = 0f; if (m_kBracketOut != null) { if (m_kBracketOut.GetTarget(0) != null) { if (m_kBracketOut.GetTarget(0).GetImage() != null) { m_kBracketOut.GetTarget(0).GetImage().SetData(m_afBracket, 1, 3); m_kBracketOut.GetTarget(0).Reload(true); } } } }