-
Notifications
You must be signed in to change notification settings - Fork 3
/
AnalysisUserData.h
81 lines (68 loc) · 2.16 KB
/
AnalysisUserData.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
// Copyright (c) 1993-2018 Robert McNeel & Associates. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
// AnalysisUserData.h
#pragma once
class CAnalysisUserData : public ON_UserData
{
ON_OBJECT_DECLARE(CAnalysisUserData);
public:
/*
Returns:
The ON_UserData uuid value used to set m_userdata_uuid
and passed to ON_Object::GetUserData().
*/
static ON_UUID Id();
/*
Description:
Get a pointer to CAnalysisUserData* from a mesh object.
Parameters:
mesh - [in]
Returns:
A pointer to CAnalysisUserData user data or NULL
if none is attached to the mesh.
*/
static
const class CAnalysisUserData* Get(const ON_Mesh*);
/*
Description:
Uses the information stored on the CAnalysisUserData
to set the values in the mesh's m_C[] array.
Parameters:
mesh - [in] If the mesh has CAnalysisUserData user
data attached and m_a.Count() = mesh->m_V.Count(), then
mesh->m_C[] is set
Returns:
True if successful. False if the mesh doesn't have
CAnalysisUserData user data or
CAnalysisUserData.m_a.Count() is not equal
to the mesh's vertex count.
*/
static
bool UpdateColors(ON_Mesh*);
/*
Description:
Calculates the color that corresponds to an analysis parameter.
Parameters:
a - [in] analysis parameter
Returns
color
*/
ON_Color Color(double a) const;
CAnalysisUserData();
~CAnalysisUserData();
CAnalysisUserData(const CAnalysisUserData&);
CAnalysisUserData& operator=(const CAnalysisUserData&);
bool GetDescription(ON_wString& description) override;
bool Archive() const override;
bool Write(ON_BinaryArchive& archive) const override;
bool Read(ON_BinaryArchive& archive) override;
// analysis parameters - one for each mesh vertex
ON_SimpleArray<double> m_a;
// minimum and maximum values in the m_a[] array.
ON_Interval m_minmax;
// m_redblue[0] is the analysis value that corresponds to red.
// m_redblue[1] is the analysis value that corresponds to blue.
// See the code for CAnalysisUserData::Color()
// for more details.
ON_Interval m_redblue;
};