libigl v2.5.0
Loading...
Searching...
No Matches
trim_with_solid.h
Go to the documentation of this file.
1// This file is part of libigl, a simple c++ geometry processing library.
2//
3// Copyright (C) 2016 Alec Jacobson <alecjacobson@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#ifndef IGL_COPYLEFT_CGAL_TRIM_WITH_SOLID_H
9#define IGL_COPYLEFT_CGAL_TRIM_WITH_SOLID_H
10
11#include "../../igl_inline.h"
12#include <Eigen/Core>
13
14namespace igl
15{
16 namespace copyleft
17 {
18 namespace cgal
19 {
61 template <
62 typename DerivedVA,
63 typename DerivedFA,
64 typename DerivedVB,
65 typename DerivedFB,
66 typename DerivedV,
67 typename DerivedF,
68 typename DerivedD,
69 typename DerivedJ>
71 const Eigen::PlainObjectBase<DerivedVA> & VA,
72 const Eigen::PlainObjectBase<DerivedFA> & FA,
73 const Eigen::PlainObjectBase<DerivedVB> & VB,
74 const Eigen::PlainObjectBase<DerivedFB> & FB,
75 Eigen::PlainObjectBase<DerivedV> & Vd,
76 Eigen::PlainObjectBase<DerivedF> & F,
77 Eigen::PlainObjectBase<DerivedD> & D,
78 Eigen::PlainObjectBase<DerivedJ> & J);
83 template <
84 typename DerivedVA,
85 typename DerivedFA,
86 typename DerivedVB,
87 typename DerivedFB,
88 typename DerivedV,
89 typename DerivedF,
90 typename DerivedD,
91 typename DerivedJ>
93 const Eigen::PlainObjectBase<DerivedVA> & VA,
94 const Eigen::PlainObjectBase<DerivedFA> & FA,
95 const Eigen::PlainObjectBase<DerivedVB> & VB,
96 const Eigen::PlainObjectBase<DerivedFB> & FB,
97 const TrimWithSolidMethod method,
98 Eigen::PlainObjectBase<DerivedV> & Vd,
99 Eigen::PlainObjectBase<DerivedF> & F,
100 Eigen::PlainObjectBase<DerivedD> & D,
101 Eigen::PlainObjectBase<DerivedJ> & J);
102 }
103 }
104}
105
106#ifndef IGL_STATIC_LIBRARY
107# include "trim_with_solid.cpp"
108#endif
109#endif
#define IGL_INLINE
Definition igl_inline.h:15
TrimWithSolidMethod
Definition trim_with_solid.h:21
@ RESOLVE_BOTH_AND_RESTORE_THEN_CHECK_EACH_PATCH
Merge A and B into the same mesh and resolve all self-itnersections.
Definition trim_with_solid.h:43
@ CHECK_EACH_PATCH
Resolve intersections only between A and B, then separate into patches of connected faces — where con...
Definition trim_with_solid.h:31
@ CHECK_EACH_FACE
Resolve intersections only between A and B and then check whether every face in A is inside/outside o...
Definition trim_with_solid.h:24
void trim_with_solid(const Eigen::PlainObjectBase< DerivedVA > &VA, const Eigen::PlainObjectBase< DerivedFA > &FA, const Eigen::PlainObjectBase< DerivedVB > &VB, const Eigen::PlainObjectBase< DerivedFB > &FB, Eigen::PlainObjectBase< DerivedV > &Vd, Eigen::PlainObjectBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedD > &D, Eigen::PlainObjectBase< DerivedJ > &J)
Given an arbitrary mesh (VA,FA) and the boundary mesh (VB,FB) of a solid (as defined in [Zhou et al.
Definition AABB.h:17