lim.cpp 3.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  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. using namespace igl::lim;
  11. IGL_INLINE State lim(
  12. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  13. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  14. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  15. const Eigen::SparseMatrix<double>& constraintMatrix,
  16. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  17. Energy energyType,
  18. double tolerance,
  19. int maxIteration,
  20. bool findLocalMinima)
  21. {
  22. return (State)ComputeLIM(
  23. vertices,
  24. initialVertices,
  25. elements,
  26. constraintMatrix,
  27. constraintTargets,
  28. (EnergyType)energyType,
  29. tolerance,
  30. maxIteration,
  31. findLocalMinima
  32. );
  33. }
  34. IGL_INLINE State igl::lim::lim(
  35. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  36. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  37. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  38. const Eigen::SparseMatrix<double>& constraintMatrix,
  39. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  40. Energy energyType,
  41. double tolerance,
  42. int maxIteration,
  43. bool findLocalMinima,
  44. bool enableOuput,
  45. bool enableBarriers,
  46. bool enableAlphaUpdate,
  47. double beta,
  48. double eps)
  49. {
  50. return (State)ComputeLIM(
  51. vertices,
  52. initialVertices,
  53. elements,
  54. constraintMatrix,
  55. constraintTargets,
  56. (EnergyType)energyType,
  57. tolerance,
  58. maxIteration,
  59. findLocalMinima,
  60. enableOuput,
  61. enableBarriers,
  62. enableAlphaUpdate,
  63. beta,
  64. eps
  65. );
  66. }
  67. IGL_INLINE State igl::lim::lim(
  68. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  69. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  70. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  71. const std::vector<int>& borderVertices,
  72. const Eigen::Matrix<double,Eigen::Dynamic,1>& gradients,
  73. const Eigen::SparseMatrix<double>& constraintMatrix,
  74. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  75. Energy energyType,
  76. double tolerance,
  77. int maxIteration,
  78. bool findLocalMinima)
  79. {
  80. return (State)ComputeLIM(
  81. vertices,
  82. initialVertices,
  83. elements,
  84. borderVertices,
  85. gradients,
  86. constraintMatrix,
  87. constraintTargets,
  88. (EnergyType)energyType,
  89. tolerance,
  90. maxIteration,
  91. findLocalMinima
  92. );
  93. }
  94. IGL_INLINE State igl::lim::lim(
  95. Eigen::Matrix<double,Eigen::Dynamic,3>& vertices,
  96. const Eigen::Matrix<double,Eigen::Dynamic,3>& initialVertices,
  97. const Eigen::Matrix<int,Eigen::Dynamic,Eigen::Dynamic>& elements,
  98. const std::vector<int>& borderVertices,
  99. const Eigen::Matrix<double,Eigen::Dynamic,1>& gradients,
  100. const Eigen::SparseMatrix<double>& constraintMatrix,
  101. const Eigen::Matrix<double,Eigen::Dynamic,1>& constraintTargets,
  102. Energy energyType,
  103. double tolerance,
  104. int maxIteration,
  105. bool findLocalMinima,
  106. bool enableOuput,
  107. bool enableBarriers,
  108. bool enableAlphaUpdate,
  109. double beta,
  110. double eps)
  111. {
  112. return (State)ComputeLIM(
  113. vertices,
  114. initialVertices,
  115. elements,
  116. borderVertices,
  117. gradients,
  118. constraintMatrix,
  119. constraintTargets,
  120. (EnergyType)energyType,
  121. tolerance,
  122. maxIteration,
  123. findLocalMinima,
  124. enableOuput,
  125. enableBarriers,
  126. enableAlphaUpdate,
  127. beta,
  128. eps);
  129. }
  130. #ifdef IGL_STATIC_LIBRARY
  131. // Explicit template specialization
  132. #endif