libigl v2.5.0
Loading...
Searching...
No Matches
fast_find_intersections.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) 2022 Vladimir S. FONOV <vladimir.fonov@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#pragma once
9#ifndef FAST_FIND_MESH_INTERSECT_H
10#define FAST_FIND_MESH_INTERSECT_H
11
12#include "igl_inline.h"
13#include "AABB.h"
14#include <Eigen/Core>
15
16namespace igl {
29 template <
30 typename DerivedV1,
31 typename DerivedF1,
32 typename DerivedV2,
33 typename DerivedF2,
34 typename DerivedI,
35 typename DerivedE>
37 const Eigen::MatrixBase<DerivedV1>& V1,
38 const Eigen::MatrixBase<DerivedF1>& F1,
39 const Eigen::MatrixBase<DerivedV2>& V2,
40 const Eigen::MatrixBase<DerivedF2>& F2,
41 Eigen::PlainObjectBase<DerivedI>& intersect_pairs,
42 Eigen::PlainObjectBase<DerivedE>& edges );
45 template <
46 typename DerivedV1,
47 typename DerivedF1,
48 typename DerivedV2,
49 typename DerivedF2,
50 typename DerivedI,
51 typename DerivedE>
53 const AABB<DerivedV1,3> & tree,
54 const Eigen::MatrixBase<DerivedV1>& V1,
55 const Eigen::MatrixBase<DerivedF1>& F1,
56 const Eigen::MatrixBase<DerivedV2>& V2,
57 const Eigen::MatrixBase<DerivedF2>& F2,
58 Eigen::PlainObjectBase<DerivedI>& intersect_pairs,
59 Eigen::PlainObjectBase<DerivedE>& edges );
60};
61
62#ifndef IGL_STATIC_LIBRARY
63# include "fast_find_intersections.cpp"
64#endif
65
66#endif
Implementation of semi-general purpose axis-aligned bounding box hierarchy.
Definition AABB.h:30
#define IGL_INLINE
Definition igl_inline.h:15
Definition AABB.h:17
void edges(const Eigen::MatrixBase< DerivedF > &F, Eigen::PlainObjectBase< DerivedE > &E)
Constructs a list of unique edges represented in a given mesh (V,F)
void fast_find_intersections(const Eigen::MatrixBase< DerivedV1 > &V1, const Eigen::MatrixBase< DerivedF1 > &F1, const Eigen::MatrixBase< DerivedV2 > &V2, const Eigen::MatrixBase< DerivedF2 > &F2, Eigen::PlainObjectBase< DerivedI > &intersect_pairs, Eigen::PlainObjectBase< DerivedE > &edges)
Identify triangles where two meshes interesect using AABBTree and tri_tri_intersection_test_3d.