3 #include "BlockEngine/BlockCoordinate.h" 4 #include "BlockEngine/BlockDirection.h" 17 BMaxNode(
BMaxParser* pParser, int16 x_, int16 y_, int16 z_, int32 template_id_, int32 block_data_);
28 inline uint64 GetIndex()
30 return (uint64)x + ((uint64)z << 16) + ((uint64)y << 32);
32 virtual DWORD GetColor();
36 virtual void SetColor(DWORD val);
43 virtual void SetBoneIndex(
int nIndex);
50 virtual bool isSolid();
58 void QueryNeighborBlockData(
BMaxNode** pBlockData,
int nFrom ,
int nTo );
60 uint32 CalculateCubeAO(
BMaxNode** neighborBlocks);
62 int32_t GetAvgVertexLight(int32_t v1, int32_t v2, int32_t v3, int32_t v4);
64 void SetFaceVisible(
int nIndex);
65 void SetFaceUsed(
int nIndex);
66 bool IsFaceNotUse(
int nIndex);
79 FaceStatus m_facesStatus[6];
virtual int TessellateBlock(BlockModel *tessellatedModel)
Definition: BMaxNode.cpp:269
virtual int GetBoneIndex()
return the index of first bone, return -1 if no bone is binded to this node
Definition: BMaxNode.cpp:67
BMaxNode * GetNeighbour(BlockDirection::Side nSize)
get neighbor block by side id
Definition: BMaxNode.cpp:77
different physics engine has different winding order.
Definition: EventBinding.h:32
Definition: BlockModel.h:172
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
bool HasBoneWeight()
if there are any bone associated with this node at the moment.
Definition: BMaxNode.cpp:62
base class for a block in bmax model
Definition: BMaxNode.h:14
void SetBlockModel(BlockModel *pModel)
set block model weak reference.
Definition: BMaxNode.cpp:52
Block Max file format parser.
Definition: BMaxParser.h:27
virtual BMaxFrameNode * ToBoneNode()
get the bone node interface if it is
Definition: BMaxNode.cpp:57
bone node in bmax
Definition: BMaxFrameNode.h:9