FineKernelToolKit: FK/Base.h ソースファイル

FineKernelToolKit 4.3.0

読み取り中…
検索中…
一致する文字列を見つけられません
Base.h
[詳解]
1#if !defined(__FK_BASE_HEADER__)
2#define __FK_BASE_HEADER__
3
4#if defined(_MINGW_) && defined(hypot)
5#undef hypot
6#endif
7
8#include <cstdio>
9#include <string>
10#include <cstdlib>
11#include <cstring>
12#include <ctime>
13#include <cmath>
14#include <fstream>
15#include <iostream>
16#include <vector>
17#include <tuple>
18#include <memory>
19
20#if defined(WIN32)
21
22#pragma warning(disable : 4786)
23//#define snprintf _snprintf
24//#define vsnprintf _vsnprintf
25
26#endif // !WIN32 || _CYGWIN_GCC_
27
28#define FK_UNUSED(x) (void)(x)
29
31namespace FK {
32
33#if !defined(FK_DOXYGEN_USER_PROCESS)
34 constexpr int FK_MAJOR_VERSION = 4;
35 constexpr int FK_MINOR_VERSION = 2;
36 constexpr int FK_SUBMINOR_VERSION = 13;
37
38 constexpr int _FK_UNDEFINED_DEFINE_ = -1;
39 constexpr int FK_UNDEFINED = _FK_UNDEFINED_DEFINE_;
40#endif
41
43 enum class fk_Type {
44 BASEOBJECT,
45 MATRIXADMIN,
46 MODEL,
47 DISPLAYLINK,
48 SCENE,
49 SHAPE,
50 POLYGON,
51 LINE,
52 POLYLINE,
53 POINT,
54 CIRCLE,
55 SPHERE,
56 BLOCK,
57 CLOSEDLINE,
58 PRISM,
59 CAPSULE,
60 CONE,
61 INDEXFACESET,
62 LIGHT,
63 CURVE,
64 BEZCURVE,
65 RBEZCURVE,
66 BSPLCURVE,
67 SURFACE,
68 BEZSURFACE,
69 GREGORY,
70 IMAGE,
71 FRAMEBUFFER,
72 TEXCOORD,
73 TEXTURE,
74 RECTTEXTURE,
75 TRITEXTURE,
76 MESHTEXTURE,
77 IFSTEXTURE,
78 ARTEXTURE,
79 UNICHAR,
80 UNISTR,
81 TEXTIMAGE,
82 COLOR,
83 MATERIAL,
84 PALETTE,
85 PLANE,
86 WINDOW,
87 PICKDATA,
88 PROJECTBASE,
89 PERSPECTIVE,
90 FRUSTUM,
91 ORTHO,
92 VERTEX,
93 HALF,
94 EDGE,
95 LOOP,
96 SOLID,
97 SHAPEVIEWER,
98 PARTICLE,
99 PARTICLESET,
100 GRAPH,
101 GRAPHNODE,
102 GRAPHEDGE,
103 CSV,
104 RAY,
105 PHYSICSWORLD,
106 PHYSICSBOX,
107 PHYSICSSPHERE,
108 P2PCONST,
109 HINGECONST,
110 FIXEDCONST,
111 SLIDERCONST,
112 };
113
115
120 class fk_BaseObject {
121
122 public:
124
127 fk_BaseObject(fk_Type type = fk_Type::BASEOBJECT);
128
130
134 fk_Type getObjectType(void) const;
135
136#if !defined(FK_DOXYGEN_USER_PROCESS)
137 void SetObjectType(const fk_Type type);
138#endif
139
140 private:
141 fk_Type ObjectType;
142
143 };
144
145#if defined(FK_DEF_STD_NAMESPACE)
146 using namespace std;
147#endif
148
149#if defined(FK_DEF_SIZETYPE)
150 using _st = std::vector<int>::size_type;
151#endif
152
153#if !defined(FK_DOXYGEN_USER_PROCESS)
154 class fk_Noncopyable {
155 private:
156 void operator =(const fk_Noncopyable&) {};
157 fk_Noncopyable(const fk_Noncopyable&) {};
158
159 public:
160 fk_Noncopyable(void) {};
161 };
162#endif
163
164}
165
166#endif /* !__FK_BASE_HEADER__ */
167
168/****************************************************************************
169 *
170 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
171 *
172 * Redistribution and use in source and binary forms,
173 * with or without modification, are permitted provided that the
174 * following conditions are met:
175 *
176 * - Redistributions of source code must retain the above
177 * copyright notice, this list of conditions and the
178 * following disclaimer.
179 *
180 * - Redistributions in binary form must reproduce the above
181 * copyright notice, this list of conditions and the
182 * following disclaimer in the documentation and/or
183 * other materials provided with the distribution.
184 *
185 * - Neither the name of the copyright holders nor the names
186 * of its contributors may be used to endorse or promote
187 * products derived from this software without specific
188 * prior written permission.
189 *
190 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
191 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
192 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
193 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
194 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
195 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
196 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
197 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
198 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
199 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
200 * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
201 * POSSIBILITY OF SUCH DAMAGE.
202 *
203 ****************************************************************************/
204/****************************************************************************
205 *
206 * Copyright (c) 1999-2024, Fine Kernel Project, All rights reserved.
207 *
208 * 本ソフトウェアおよびソースコードのライセンスは、基本的に
209 * 「修正 BSD ライセンス」に従います。以下にその詳細を記します。
210 *
211 * ソースコード形式かバイナリ形式か、変更するかしないかを問わず、
212 * 以下の条件を満たす場合に限り、再頒布および使用が許可されます。
213 *
214 * - ソースコードを再頒布する場合、上記の著作権表示、本条件一覧、
215 * および下記免責条項を含めること。
216 *
217 * - バイナリ形式で再頒布する場合、頒布物に付属のドキュメント等の
218 * 資料に、上記の著作権表示、本条件一覧、および下記免責条項を
219 * 含めること。
220 *
221 * - 書面による特別の許可なしに、本ソフトウェアから派生した製品の
222 * 宣伝または販売促進に、本ソフトウェアの著作権者の名前または
223 * コントリビューターの名前を使用してはならない。
224 *
225 * 本ソフトウェアは、著作権者およびコントリビューターによって「現
226 * 状のまま」提供されており、明示黙示を問わず、商業的な使用可能性、
227 * および特定の目的に対する適合性に関す暗黙の保証も含め、またそれ
228 * に限定されない、いかなる保証もないものとします。著作権者もコン
229 * トリビューターも、事由のいかんを問わず、損害発生の原因いかんを
230 * 問わず、かつ責任の根拠が契約であるか厳格責任であるか(過失その
231 * 他の)不法行為であるかを問わず、仮にそのような損害が発生する可
232 * 能性を知らされていたとしても、本ソフトウェアの使用によって発生
233 * した(代替品または代用サービスの調達、使用の喪失、データの喪失、
234 * 利益の喪失、業務の中断も含め、またそれに限定されない)直接損害、
235 * 間接損害、偶発的な損害、特別損害、懲罰的損害、または結果損害に
236 * ついて、一切責任を負わないものとします。
237 *
238 ****************************************************************************/
FK::fk_BaseObject::fk_BaseObject
fk_BaseObject(fk_Type type=fk_Type::BASEOBJECT)
コンストラクタ
FK::fk_BaseObject::getObjectType
fk_Type getObjectType(void) const
タイプ取得関数
FK
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
FK::fk_Type
fk_Type
オブジェクトインスタンスのタイプを表す列挙型
Definition Base.h:43
FK::fk_Type::MATRIXADMIN
@ MATRIXADMIN
fk_MatrixAdmin 型
Definition Base.h:45
FK::fk_Type::CURVE
@ CURVE
fk_Curve 型
Definition Base.h:63
FK::fk_Type::COLOR
@ COLOR
fk_Color 型
Definition Base.h:82
FK::fk_Type::DISPLAYLINK
@ DISPLAYLINK
fk_DisplayLink 型
Definition Base.h:47
FK::fk_Type::PROJECTBASE
@ PROJECTBASE
fk_ProjectBase 型
Definition Base.h:88
FK::fk_Type::CIRCLE
@ CIRCLE
fk_Circle 型
Definition Base.h:54
FK::fk_Type::VERTEX
@ VERTEX
fk_Vertex 型
Definition Base.h:92
FK::fk_Type::FRUSTUM
@ FRUSTUM
fk_Frustum 型
Definition Base.h:90
FK::fk_Type::LINE
@ LINE
fk_Line 型
Definition Base.h:51
FK::fk_Type::BASEOBJECT
@ BASEOBJECT
fk_BaseObject 型
Definition Base.h:44
FK::fk_Type::BEZCURVE
@ BEZCURVE
fk_BezCurve 型
Definition Base.h:64
FK::fk_Type::IMAGE
@ IMAGE
fk_Image 型
Definition Base.h:70
FK::fk_Type::TRITEXTURE
@ TRITEXTURE
fk_TriTexture 型
Definition Base.h:75
FK::fk_Type::PRISM
@ PRISM
fk_Prism 型
Definition Base.h:58
FK::fk_Type::PHYSICSBOX
@ PHYSICSBOX
fk_PhysicsBox 型
Definition Base.h:106
FK::fk_Type::BSPLCURVE
@ BSPLCURVE
fk_BSplCurve 型
Definition Base.h:66
FK::fk_Type::SURFACE
@ SURFACE
fk_Surface 型
Definition Base.h:67
FK::fk_Type::TEXTIMAGE
@ TEXTIMAGE
fk_TextImage 型
Definition Base.h:81
FK::fk_Type::TEXTURE
@ TEXTURE
fk_Texture 型
Definition Base.h:73
FK::fk_Type::MESHTEXTURE
@ MESHTEXTURE
fk_MeshTexture 型
Definition Base.h:76
FK::fk_Type::BEZSURFACE
@ BEZSURFACE
fk_BezSurface 型
Definition Base.h:68
FK::fk_Type::BLOCK
@ BLOCK
fk_Block 型
Definition Base.h:56
FK::fk_Type::PHYSICSWORLD
@ PHYSICSWORLD
fk_PhysicsWorld 型
Definition Base.h:105
FK::fk_Type::PALETTE
@ PALETTE
fk_Palette 型
Definition Base.h:84
FK::fk_Type::PARTICLE
@ PARTICLE
fk_Particle 型
Definition Base.h:98
FK::fk_Type::HINGECONST
@ HINGECONST
fk_PhysicsHingeConstraint 型
Definition Base.h:109
FK::fk_Type::EDGE
@ EDGE
fk_Edge 型
Definition Base.h:94
FK::fk_Type::RBEZCURVE
@ RBEZCURVE
fk_RBezCurve 型
Definition Base.h:65
FK::fk_Type::CAPSULE
@ CAPSULE
fk_Capsule 型
Definition Base.h:59
FK::fk_Type::SPHERE
@ SPHERE
fk_Sphere 型
Definition Base.h:55
FK::fk_Type::WINDOW
@ WINDOW
fk_Window 型
Definition Base.h:86
FK::fk_Type::RAY
@ RAY
fk_Ray 型
Definition Base.h:104
FK::fk_Type::MODEL
@ MODEL
fk_Model 型
Definition Base.h:46
FK::fk_Type::HALF
@ HALF
fk_Half 型
Definition Base.h:93
FK::fk_Type::LOOP
@ LOOP
fk_Loop 型
Definition Base.h:95
FK::fk_Type::ORTHO
@ ORTHO
fk_Ortho 型
Definition Base.h:91
FK::fk_Type::FIXEDCONST
@ FIXEDCONST
fk_PhysicsFixedConstraint 型
Definition Base.h:110
FK::fk_Type::GREGORY
@ GREGORY
fk_Gregory 型
Definition Base.h:69
FK::fk_Type::PICKDATA
@ PICKDATA
fk_PickData 型
Definition Base.h:87
FK::fk_Type::FRAMEBUFFER
@ FRAMEBUFFER
fk_FrameBuffer 型
Definition Base.h:71
FK::fk_Type::PLANE
@ PLANE
fk_Plane 型
Definition Base.h:85
FK::fk_Type::POINT
@ POINT
fk_Point 型
Definition Base.h:53
FK::fk_Type::CLOSEDLINE
@ CLOSEDLINE
fk_Closedline 型
Definition Base.h:57
FK::fk_Type::CONE
@ CONE
fk_Cone 型
Definition Base.h:60
FK::fk_Type::MATERIAL
@ MATERIAL
fk_Material 型
Definition Base.h:83
FK::fk_Type::CSV
@ CSV
fk_CSV 型
Definition Base.h:103
FK::fk_Type::IFSTEXTURE
@ IFSTEXTURE
fk_IFSTexture 型
Definition Base.h:77
FK::fk_Type::RECTTEXTURE
@ RECTTEXTURE
fk_RectTexture 型
Definition Base.h:74
FK::fk_Type::SOLID
@ SOLID
fk_Solid 型
Definition Base.h:96
FK::fk_Type::PERSPECTIVE
@ PERSPECTIVE
fk_Perspective 型
Definition Base.h:89
FK::fk_Type::UNISTR
@ UNISTR
fk_UniStr 型
Definition Base.h:80
FK::fk_Type::ARTEXTURE
@ ARTEXTURE
fk_ARTexture 型
Definition Base.h:78
FK::fk_Type::GRAPHNODE
@ GRAPHNODE
fk_GraphNode 型
Definition Base.h:101
FK::fk_Type::UNICHAR
@ UNICHAR
fk_UniChar 型
Definition Base.h:79
FK::fk_Type::SHAPEVIEWER
@ SHAPEVIEWER
fk_ShapeViewer 型
Definition Base.h:97
FK::fk_Type::GRAPH
@ GRAPH
fk_Graph 型
Definition Base.h:100
FK::fk_Type::PARTICLESET
@ PARTICLESET
fk_ParticleSet 型
Definition Base.h:99
FK::fk_Type::TEXCOORD
@ TEXCOORD
fk_TexCoord 型
Definition Base.h:72
FK::fk_Type::SLIDERCONST
@ SLIDERCONST
fk_PhysicsSliderConstraint 型
Definition Base.h:111
FK::fk_Type::PHYSICSSPHERE
@ PHYSICSSPHERE
fk_PhysicsSphere 型
Definition Base.h:107
FK::fk_Type::POLYLINE
@ POLYLINE
fk_Polyline 型
Definition Base.h:52
FK::fk_Type::GRAPHEDGE
@ GRAPHEDGE
fk_GraphEdge 型
Definition Base.h:102
FK::fk_Type::POLYGON
@ POLYGON
fk_Polygon 型
Definition Base.h:50
FK::fk_Type::SCENE
@ SCENE
fk_Scene 型
Definition Base.h:48
FK::fk_Type::P2PCONST
@ P2PCONST
fk_PhysicsP2PConstraint 型
Definition Base.h:108
FK::fk_Type::SHAPE
@ SHAPE
fk_Shape 型
Definition Base.h:49
FK::fk_Type::LIGHT
@ LIGHT
fk_Light 型
Definition Base.h:62
FK::fk_Type::INDEXFACESET
@ INDEXFACESET
fk_IndexFaceSet 型
Definition Base.h:61