1#if !defined(__FK_INDEXFACE_HEADER__)
2#define __FK_INDEXFACE_HEADER__
5#include <FK/ParserBase.hh>
11 class fk_D3DXAnimation;
70#if !defined(FK_DOXYGEN_USER_PROCESS)
77 std::vector<GLuint> edgeIndex;
78 std::vector<GLuint> faceIndex;
79 std::vector< std::vector<int> > loopStack;
80 std::vector<int> modifyList;
81 std::shared_ptr<fk_D3DXAnimation> anim;
84 std::list<fk_IndexFaceSet *> cloneList;
88 bool edgeIndexFlg, faceIndexFlg;
89 std::vector<char> faceNormFlg;
90 std::vector<char> vertexNormFlg;
92 GLuint edgeIBO, faceIBO;
164 bool readVRMLFile(std::string fileName,
bool materialFlg =
true,
bool solidFlg =
true);
190 bool readSTLFile(std::string fileName,
bool solidFlg =
true,
double tolerance = 1.0e-08);
271 bool solidFlg =
true,
273 bool materialFlg =
false);
324 bool solidFlg =
true,
326 bool materialFlg =
false);
373 bool solidFlg =
true,
375 bool materialFlg =
false);
429 bool solidFlg =
true,
431 bool materialFlg =
false);
464 bool solidFlg =
true);
504 bool solidFlg =
true);
528 bool triFlg =
false);
555 std::vector<double> *time,
556 std::vector<fk_Vector> *pos,
558 bool triFlg =
false);
741 bool moveVPosition(
int vertexID,
double x,
double y,
double z,
int order = 0);
801 bool smoothMode =
false,
866 void makeIFSet(std::vector< std::vector<int> > *faceArray,
867 std::vector<fk_Vector> *posArray,
868 bool smoothMode =
false,
894 void makeIFSet(std::vector< std::vector<int> > *faceArray,
895 std::vector<fk_Vector> *posArray,
1271 double bottom,
double height,
bool smoothMode =
false);
1354 void makeCone(
int div,
double rad,
double height,
bool smoothMode =
true);
1473#if !defined(FK_DOXYGEN_USER_PROCESS)
1475 bool MakeMesh(std::vector<fk_Vector> *,
1476 std::vector< std::vector<int> > *,
bool =
true);
1479 fk_D3DXAnimation * GetAnimation(
void);
1481 void DataPrint(
void);
1483 void EdgeIBOSetup(
void);
1484 void FaceIBOSetup(
void);
1486 int getElemMaterialID(
int);
1487 bool setElemMaterialID(
int,
int);
1488 void ForceUpdateAttr(
void);
1490 fk_Vector getPNorm(
int faceID,
int order = 0);
1491 fk_Vector getVNorm(
int vertexID,
int order = 0);
1492 bool setPNorm(
int faceID,
const fk_Vector &norm,
int order = 0);
1493 bool setVNorm(
int vertexID,
const fk_Vector &norm,
int order = 0);
1495 void updateAttr(
void);
1497 std::vector<float> * GetVertexP(
void);
1498 std::vector<float> * GetNormP(
void);
1503 std::unique_ptr<Member> _m;
1505 void InitFaceNorm(
void);
1506 void InitVertexNorm(
void);
1508 void ModifyFaceNorm(
void);
1509 void ModifyVertexNorm(
void);
1511 void MakeFaceNorm(
int);
1513 void ResetFaceFlg(
void);
1517 void MakeLoopTable(
void);
1518 void MakeEdgeSet(std::vector< std::vector<int> > *);
1524 void MakeCapsuleVec(std::vector<fk_Vector> *,
int,
double,
double);
1525 void MakeCapsuleIFSet(std::vector< std::vector<int> > *,
int);
シェーダー内 attribute 変数用ベクトル管理クラス
Definition FVecArray.h:31
単精度浮動小数点型3次元ベクトルを管理するクラス
Definition Vector.h:760
インデックスフェースセットによる任意形状を生成、管理するクラス
Definition IndexFace.h:68
void setCircleScale(double scale)
円形状拡大縮小関数
int getPosSize(void)
頂点数参照関数
bool readMQOFile(std::string fileName, std::string objName, int materialID, bool solidFlg=true, bool contFlg=true, bool materialFlg=false)
MQOファイル入力関数2
void setBVHMotion(fk_BVHBase *bvh)
BVHデータ設定関数
bool readMQOData(unsigned char *buffer, std::string objName, int materialID, bool solidFlg=true, bool contFlg=true, bool materialFlg=false)
MQOデータ入力関数2
void putSolid(fk_Solid *solid)
fk_Solid 出力関数
fk_Vector getPosVec(int vertexID)
頂点位置ベクトル参照関数
void makePolygon(std::vector< fk_Vector > *posArray)
多角形生成関数1
void setAnimationTime(double time)
アニメーション時間設定関数
void flush(void)
法線ベクトル強制計算関数
void cloneShape(fk_IndexFaceSet *ifs)
形状コピー関数
int getFaceSize(void)
面数参照関数
void setSphereDivide(int div)
球形状分割数設定関数
bool readD3DXFile(std::string fileName, std::string objName, bool solidFlg=true)
DirectX (D3DX) ファイル入力関数1
bool readMQOFile(std::string fileName, std::string objName, bool solidFlg=true, bool contFlg=true, bool materialFlg=false)
MQOファイル入力関数1
void setBlockScale(double scale, fk_Axis axis)
直方体軸方向拡大縮小関数
bool moveVPosition(int vertexID, const fk_Vector &pos, int order=0)
頂点移動関数1
bool readVRMLFile(std::string fileName, bool materialFlg=true, bool solidFlg=true)
VRML ファイル入力関数
bool setFaceNorm(int faceID, const fk_Vector &norm, int order=0)
面法線ベクトル設定関数
bool writeSTLFile(std::string fileName)
STL ファイル出力関数
void makeCapsule(int div, double len, double rad)
カプセル型形状生成関数
void setBlockSize(double x, double y, double z)
直方体辺長変更関数
bool readRDSFile(std::string fileName, bool solidFlg=true)
RDSファイル入力関数
void setConeRadius(double rad)
正多角錐(円錐)底面半径設定関数
bool writeVRMLFile(std::string fileName, fk_Material *material=nullptr, bool triFlg=false)
VRML ファイル出力関数1
virtual ~fk_IndexFaceSet()
デストラクタ
void makeCone(int div, double rad, double height, bool smoothMode=true)
正多角錐(円錐)形状生成関数
void setPrismTopRadius(double top)
正多角柱(円柱)上面半径設定関数
bool readDXFFile(std::string fileName, bool solidFlg=true)
DXFファイル入力関数
void setPrismBottomRadius(double bottom)
正多角柱(円柱)角数設定関数
int getEdgeSize(void)
稜線数参照関数
void setBlockSize(double length, fk_Axis axis)
直方体個別辺長設定関数
bool readMQOData(unsigned char *buffer, std::string objName, bool solidFlg=true, bool contFlg=true, bool materialFlg=false)
MQOデータ入力関数1
int getFaceData(int faceID, int vertexNum)
頂点 ID 参照関数
bool readHRCFile(std::string fileName)
HRCファイル入力関数
bool writeMQOFile(std::string fileName)
MQO ファイル出力関数
bool readSTLFile(std::string fileName, bool solidFlg=true, double tolerance=1.0e-08)
STL ファイル入力関数
bool writeVRMLFile(std::string fileName, std::vector< double > *time, std::vector< fk_Vector > *pos, fk_Material *material=nullptr, bool triFlg=false)
VRML ファイル出力関数2
void setCapsuleSize(double len, double rad)
カプセル型形状寸法設定関数
void setSphereScale(double scale)
球形状拡大縮小関数
void setPrismHeight(double height)
正多角柱(円柱)高さ設定関数
bool readD3DXFile(std::string fileName, std::string objName, int materialID, bool solidFlg=true)
DirectX (D3DX) ファイル入力関数2
bool writeDXFFile(std::string fileName, bool triFlg=false)
DXF ファイル出力関数
bool readSMFFile(std::string fileName)
SMFファイル入力関数
void makePrism(int div, double top, double bottom, double height, bool smoothMode=false)
正多角柱(円柱)形状生成関数
void makeCircle(int div, double rad)
円形状生成関数
fk_Vector getVertexNorm(int vertexID, int order=0)
頂点法線ベクトル取得関数
fk_IndexFaceSet(void)
コンストラクタ
void setBlockScale(double x, double y, double z)
直方体軸方向個別拡大縮小関数
std::vector< int > getFaceData(int faceID)
頂点 ID 配列参照関数
void makePolygon(int num, fk_Vector *posArray)
多角形生成関数2
void setBlockScale(double scale)
直方体全体拡大縮小関数
void makeIFSet(std::vector< std::vector< int > > *faceArray, std::vector< fk_Vector > *posArray, bool smoothMode=false, int order=0)
任意形状生成関数3
fk_Vector getFaceNorm(int faceID, int order=0)
面法線ベクトル取得関数
void makeIFSet(int faceNum, int polyNum, int *IFSet, int vertexNum, fk_Vector *posArray, bool smoothMode=false, int order=0)
任意形状生成関数1
bool moveVPosition(int vertexID, double x, double y, double z, int order=0)
頂点移動関数2
void setCircleDivide(int div)
円形状分割数設定関数
void setConeDivide(int div)
正多角錐(円錐)角数設定関数
void setPrismDivide(int div)
正多角柱(円柱)角数設定関数
void setConeHeight(double height)
正多角錐(円錐)高さ設定関数
bool moveVPosition(int vertexID, double *array, int order=0)
頂点移動関数3
void makeIFSet(std::vector< std::vector< int > > *faceArray, std::vector< fk_Vector > *posArray, int order)
任意形状生成関数4
void setCircleRadius(double rad)
円形状半径設定関数
void makeSphere(int div, double rad)
球形状生成関数
void setSphereRadius(double rad)
球形状半径設定関数
void makeIFSet(int faceNum, int polyNum, int *IFSet, int vertexNum, fk_Vector *posArray, int order)
任意形状生成関数2
void makeBlock(double x, double y, double z)
直方体生成関数
bool setVertexNorm(int vertexID, const fk_Vector &norm, int order=0)
頂点法線ベクトル設定関数
マテリアル(質感)を管理するクラス
Definition Material.h:40
ファイル入出力機能用抽象クラス
Definition ParserData.h:15
半稜線構造 (Half-Edge Structure) による任意形状を生成、管理するクラス
Definition Solid.h:66
3次元ベクトルを管理するクラス
Definition Vector.h:45
Fine Kernel Toolkit 名前空間
Definition Angle.h:6
fk_Axis
座標軸を表す列挙型
Definition Vector.h:16