QUAOAR STUDIO // Mobius API
poly_BaseDistanceField.h
1
//-----------------------------------------------------------------------------
2
// Created on: 23 March 2022
3
//-----------------------------------------------------------------------------
4
// Copyright (c) 2022-present, Sergey Slyadnev
5
// All rights reserved.
6
//
7
// Redistribution and use in source and binary forms, with or without
8
// modification, are permitted provided that the following conditions are met:
9
//
10
// * Redistributions of source code must retain the above copyright
11
// notice, this list of conditions and the following disclaimer.
12
// * Redistributions in binary form must reproduce the above copyright
13
// notice, this list of conditions and the following disclaimer in the
14
// documentation and/or other materials provided with the distribution.
15
// * Neither the name of Sergey Slyadnev nor the
16
// names of all contributors may be used to endorse or promote products
17
// derived from this software without specific prior written permission.
18
//
19
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20
// ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21
// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
// DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY
23
// DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
24
// (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
25
// LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
26
// ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
28
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
//-----------------------------------------------------------------------------
30
31
#ifndef poly_BaseDistanceField_HeaderFile
32
#define poly_BaseDistanceField_HeaderFile
33
34
// Poly includes
35
#include <mobius/poly_RealFunc.h>
36
#include <mobius/poly_SVO.h>
37
38
// Core includes
39
#include <mobius/core_IProgressNotifier.h>
40
#include <mobius/core_IPlotter.h>
41
42
namespace
mobius
{
43
47
class
poly_BaseDistanceField
:
public
poly_RealFunc
48
{
49
public
:
50
54
mobiusPoly_EXPORT
static
bool
55
IsIn
(
poly_SVO
* pNode);
56
60
mobiusPoly_EXPORT
static
bool
61
IsOut
(
poly_SVO
* pNode);
62
67
mobiusPoly_EXPORT
static
bool
68
IsZeroCrossing
(
poly_SVO
* pNode);
69
70
public
:
71
72
virtual
bool
73
Build(
const
double
minCellSize,
74
const
double
maxCellSize,
75
const
t_ptr<poly_RealFunc>& func) = 0;
76
77
virtual
poly_SVO
*
78
GetRoot() = 0;
79
80
};
81
82
}
83
84
#endif
mobius
Defines an exception class C1 that inherits an exception class C2.
Definition:
bspl_Decompose.h:41
mobius::poly_BaseDistanceField::IsOut
static mobiusPoly_EXPORT bool IsOut(poly_SVO *pNode)
mobius::poly_RealFunc
Definition:
poly_RealFunc.h:47
mobius::poly_SVO
Definition:
poly_SVO.h:49
mobius::poly_BaseDistanceField
Definition:
poly_BaseDistanceField.h:47
mobius::poly_BaseDistanceField::IsIn
static mobiusPoly_EXPORT bool IsIn(poly_SVO *pNode)
mobius::poly_BaseDistanceField::IsZeroCrossing
static mobiusPoly_EXPORT bool IsZeroCrossing(poly_SVO *pNode)
src
poly
fields
poly_BaseDistanceField.h