setxor.cpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #include "setxor.h"
  2. #include "setdiff.h"
  3. #include "setunion.h"
  4. #include "slice.h"
  5. #include <iostream>
  6. #include <igl/matlab_format.h>
  7. template <
  8. typename DerivedA,
  9. typename DerivedB,
  10. typename DerivedC,
  11. typename DerivedIA,
  12. typename DerivedIB>
  13. IGL_INLINE void igl::setxor(
  14. const Eigen::DenseBase<DerivedA> & A,
  15. const Eigen::DenseBase<DerivedB> & B,
  16. Eigen::PlainObjectBase<DerivedC> & C,
  17. Eigen::PlainObjectBase<DerivedIA> & IA,
  18. Eigen::PlainObjectBase<DerivedIB> & IB)
  19. {
  20. DerivedC AB,BA;
  21. DerivedIA IAB,IBA;
  22. setdiff(A,B,AB,IAB);
  23. std::cout<<igl::matlab_format(AB.transpose(),"AB")<<std::endl;
  24. std::cout<<igl::matlab_format(IAB.transpose().array()+1,"IAB")<<std::endl;
  25. setdiff(B,A,BA,IBA);
  26. std::cout<<igl::matlab_format(BA.transpose(),"BA")<<std::endl;
  27. std::cout<<igl::matlab_format(IBA.transpose().array()+1,"IBA")<<std::endl;
  28. setunion(AB,BA,C,IA,IB);
  29. std::cout<<igl::matlab_format(C.transpose(),"C")<<std::endl;
  30. std::cout<<igl::matlab_format(IA.transpose().array()+1,"IA")<<std::endl;
  31. std::cout<<igl::matlab_format(IB.transpose().array()+1,"IB")<<std::endl;
  32. slice(IAB,DerivedIA(IA),IA);
  33. slice(IBA,DerivedIB(IB),IB);
  34. std::cout<<igl::matlab_format(IA.transpose().array()+1,"IA")<<std::endl;
  35. std::cout<<igl::matlab_format(IB.transpose().array()+1,"IB")<<std::endl;
  36. }