lim.cpp 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. // This file is part of libigl, a simple c++ geometry processing library.
  2. //
  3. // Copyright (C) 2014 Christian Schüller <schuellchr@gmail.com>
  4. //
  5. // This Source Code Form is subject to the terms of the Mozilla Public License
  6. // v. 2.0. If a copy of the MPL was not distributed with this file, You can
  7. // obtain one at http://mozilla.org/MPL/2.0/.
  8. #include "lim.h"
  9. #include <LIMSolverInterface.h>
  10. IGL_INLINE int igl::lim::lim(
  11. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  12. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  13. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  14. const Eigen::SparseMatrix<double>& constraintMatrix,
  15. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  16. int energyType,
  17. double tolerance,
  18. int maxIteration,
  19. bool findLocalMinima)
  20. {
  21. return ComputeLIM(
  22. vertices,
  23. initialVertices,
  24. elements,
  25. constraintMatrix,
  26. constraintTargets,
  27. energyType,
  28. tolerance,
  29. maxIteration,
  30. findLocalMinima
  31. );
  32. }
  33. IGL_INLINE int igl::lim(
  34. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  35. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  36. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  37. const Eigen::SparseMatrix<double>& constraintMatrix,
  38. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  39. int energyType,
  40. double tolerance,
  41. int maxIteration,
  42. bool findLocalMinima,
  43. bool enableOuput,
  44. bool enableBarriers,
  45. bool enableAlphaUpdate,
  46. double beta,
  47. double eps)
  48. {
  49. return ComputeLIM(
  50. vertices,
  51. initialVertices,
  52. elements,
  53. constraintMatrix,
  54. constraintTargets,
  55. energyType,
  56. tolerance,
  57. maxIteration,
  58. findLocalMinima,
  59. enableOuput,
  60. enableBarriers,
  61. enableAlphaUpdate,
  62. beta,
  63. eps
  64. );
  65. }
  66. IGL_INLINE int igl::lim(
  67. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  68. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  69. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  70. const std::vector<int>& borderVertices,
  71. const Eigen::Matrix<double,Eigen::Dynamic,1>& gradients,
  72. const Eigen::SparseMatrix<double>& constraintMatrix,
  73. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  74. int energyType,
  75. double tolerance,
  76. int maxIteration,
  77. bool findLocalMinima)
  78. {
  79. return ComputeLIM(
  80. vertices,
  81. initialVertices,
  82. elements,
  83. borderVertices,
  84. gradients,
  85. constraintMatrix,
  86. constraintTargets,
  87. energyType,
  88. tolerance,
  89. maxIteration,
  90. findLocalMinima
  91. );
  92. }
  93. IGL_INLINE int igl::lim(
  94. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  95. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  96. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  97. const std::vector<int>& borderVertices,
  98. const Eigen::Matrix<double,Eigen::Dynamic,1>& gradients,
  99. const Eigen::SparseMatrix<double>& constraintMatrix,
  100. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  101. int energyType,
  102. double tolerance,
  103. int maxIteration,
  104. bool findLocalMinima,
  105. bool enableOuput,
  106. bool enableBarriers,
  107. bool enableAlphaUpdate,
  108. double beta,
  109. double eps)
  110. {
  111. return ComputeLIM(
  112. vertices,
  113. initialVertices,
  114. elements,
  115. borderVertices,
  116. gradients,
  117. constraintMatrix,
  118. constraintTargets,
  119. energyType,
  120. tolerance,
  121. maxIteration,
  122. findLocalMinima,
  123. enableOuput,
  124. enableBarriers,
  125. enableAlphaUpdate,
  126. beta,
  127. eps);
  128. }
  129. #ifdef IGL_STATIC_LIBRARY
  130. // Explicit template specialization
  131. #endif