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