BKE_mball.h 2.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. /*
  2. * ***** BEGIN GPL LICENSE BLOCK *****
  3. *
  4. * This program is free software; you can redistribute it and/or
  5. * modify it under the terms of the GNU General Public License
  6. * as published by the Free Software Foundation; either version 2
  7. * of the License, or (at your option) any later version.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. *
  14. * You should have received a copy of the GNU General Public License
  15. * along with this program; if not, write to the Free Software Foundation,
  16. * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
  17. *
  18. * The Original Code is Copyright (C) 2001-2002 by NaN Holding BV.
  19. * All rights reserved.
  20. *
  21. * The Original Code is: all of this file.
  22. *
  23. * Contributor(s): none yet.
  24. *
  25. * ***** END GPL LICENSE BLOCK *****
  26. */
  27. #ifndef __BKE_MBALL_H__
  28. #define __BKE_MBALL_H__
  29. /** \file BKE_mball.h
  30. * \ingroup bke
  31. * \since March 2001
  32. * \author nzc
  33. */
  34. struct Main;
  35. struct MetaBall;
  36. struct Object;
  37. struct Scene;
  38. struct MetaElem;
  39. void BKE_mball_free(struct MetaBall *mb);
  40. void BKE_mball_init(struct MetaBall *mb);
  41. struct MetaBall *BKE_mball_add(struct Main *bmain, const char *name);
  42. struct MetaBall *BKE_mball_copy(struct Main *bmain, const struct MetaBall *mb);
  43. void BKE_mball_make_local(struct Main *bmain, struct MetaBall *mb, const bool lib_local);
  44. bool BKE_mball_is_basis_for(struct Object *ob1, struct Object *ob2);
  45. bool BKE_mball_is_basis(struct Object *ob);
  46. struct Object *BKE_mball_basis_find(struct Scene *scene, struct Object *ob);
  47. void BKE_mball_texspace_calc(struct Object *ob);
  48. float *BKE_mball_make_orco(struct Object *ob, struct ListBase *dispbase);
  49. void BKE_mball_properties_copy(struct Scene *scene, struct Object *active_object);
  50. bool BKE_mball_minmax(struct MetaBall *mb, float min[3], float max[3]);
  51. bool BKE_mball_minmax_ex(struct MetaBall *mb, float min[3], float max[3],
  52. float obmat[4][4], const short flag);
  53. bool BKE_mball_center_median(struct MetaBall *mb, float r_cent[3]);
  54. bool BKE_mball_center_bounds(struct MetaBall *mb, float r_cent[3]);
  55. void BKE_mball_transform(struct MetaBall *mb, float mat[4][4]);
  56. void BKE_mball_translate(struct MetaBall *mb, const float offset[3]);
  57. struct MetaElem *BKE_mball_element_add(struct MetaBall *mb, const int type);
  58. void BKE_mball_select_all(struct MetaBall *mb);
  59. void BKE_mball_deselect_all(struct MetaBall *mb);
  60. void BKE_mball_select_swap(struct MetaBall *mb);
  61. /* **** Depsgraph evaluation **** */
  62. struct EvaluationContext;
  63. void BKE_mball_eval_geometry(struct EvaluationContext *eval_ctx,
  64. struct MetaBall *mball);
  65. #endif