HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
EUC_Object.C
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2024
3  * Side Effects Software Inc. All rights reserved.
4  *
5  * Redistribution and use of Houdini Development Kit samples in source and
6  * binary forms, with or without modification, are permitted provided that the
7  * following conditions are met:
8  * 1. Redistributions of source code must retain the above copyright notice,
9  * this list of conditions and the following disclaimer.
10  * 2. The name of Side Effects Software may not be used to endorse or
11  * promote products derived from this software without specific prior
12  * written permission.
13  *
14  * THIS SOFTWARE IS PROVIDED BY SIDE EFFECTS SOFTWARE `AS IS' AND ANY EXPRESS
15  * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
16  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
17  * NO EVENT SHALL SIDE EFFECTS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT,
18  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
20  * OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
21  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
22  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
23  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  *
25  *----------------------------------------------------------------------------
26  * Defines the atomic objects defined in euclidean geometry,
27  * the circle, the line, and the point
28  */
29 
30 #include "EUC_Object.h"
31 
32 using namespace HDK_Sample;
33 
34 //
35 // EUC_Object
36 //
38 {
39  myCd = 1;
40  myVisible = true;
41 }
42 
44 {
45 }
46 
47 void
48 EUC_Object::setLook(bool visible, const UT_Vector3 &cd)
49 {
50  myVisible = visible;
51  myCd = cd;
52 }
53 
54 //
55 // EUC_Point
56 //
58 {
59  myPos = 0;
60 }
61 
63 {
64  myPos = pos;
65 }
66 
68 {
69 }
70 
71 //
72 // EUC_Line
73 //
75 {
76  myPts[0] = 0;
77  myPts[1] = 0;
78 }
79 
81 {
82 }
83 
84 //
85 // EUC_Circle
86 //
88 {
89 }
90 
92 {
93 }
94 
95 float
97 {
98  UT_Vector2 diff;
99 
100  diff = myPts[0] - myPts[1];
101  return diff.length();
102 }
UT_Vector2 myPts[2]
Definition: EUC_Object.h:89
float getRadius() const
Definition: EUC_Object.C:96
~EUC_Line() override
Definition: EUC_Object.C:80
constexpr SYS_FORCE_INLINE T length() const noexcept
Definition: UT_Vector2.h:294
~EUC_Point() override
Definition: EUC_Object.C:67
void setLook(bool visible, const UT_Vector3 &cd)
Definition: EUC_Object.C:48
~EUC_Circle() override
Definition: EUC_Object.C:91