Aray bro! your hint, hit the G-SPOT ( Graphic Spot )
Here’s the complete PNTTB Vertex type that is compatible with “CreateTangentFrames” even with your own namespace.
//
/// <summary>
/// ZGDK:Vertex structure: PNTTB : Position, Normal, TextureUV, Tangent, BiNormal.
/// </summary>
public struct VertexPNTTB
{
#region F I E L D S
//!!
//!
/// <summary>
/// Vertex position.
/// </summary>
public XF.Vector3 Position;
/// <summary>
/// Vertex normal.
/// </summary>
public XF.Vector3 Normal;
/// <summary>
/// Vertex to texture coordinates.
/// </summary>
public XF.Vector2 TextureUV;
/// <summary>
/// Vertex tangent.
/// </summary>
public XF.Vector3 Tangent;
/// <summary>
/// Vertex Binormal
/// </summary>
public XF.Vector3 BiNormal;
//!
//!!
#endregion F I E L D S
#region C O N S T R U C T O R
//!!
//!
/// <summary>
/// ZGDK:Vertex Type: Position, Normal, TextureUV, Tanget, BiNormal
/// </summary>
/// <param name="pos">Vertex position</param>
/// <param name="normal">Vertex normal</param>
/// <param name="textureUV">Texture UV</param>
/// <param name="tangent">Vertex tangent</param>
/// <param name="biNormal">Vetext BiNormal</param>
public VertexPNTTB( XF.Vector3 pos, XF.Vector3 normal, XF.Vector2 textureUV, XF.Vector3 tangent, XF.Vector3 biNormal )
{
Position = pos;
Normal = normal;
TextureUV = textureUV;
Tangent = tangent;
BiNormal = biNormal;
}
//!
//!!
#endregion C O N S T R U C T O R
#region S T A T I C P R O P E R T I E S
//!!
//!
/// <summary>
/// Vertex declaration
/// </summary>
public static readonly XFG.VertexDeclaration VertexDeclaration = new XFG.VertexDeclaration
(
new XFG.VertexElement( 0, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Position, 0),
new XFG.VertexElement(12, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Normal, 0),
new XFG.VertexElement(24, XFG.VertexElementFormat.Vector2, XFG.VertexElementUsage.TextureCoordinate, 0),
new XFG.VertexElement(32, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Tangent, 0),
new XFG.VertexElement(44, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Binormal, 0)
);
/// <summary>
/// Vertex elements
/// </summary>
public static XFG.VertexElement[] VertexElements = new XFG.VertexElement[5]
{
new XFG.VertexElement( 0, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Position, 0),
new XFG.VertexElement( 12, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Normal, 0),
new XFG.VertexElement( 24, XFG.VertexElementFormat.Vector2, XFG.VertexElementUsage.TextureCoordinate, 0),
new XFG.VertexElement( 32, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Tangent, 0),
new XFG.VertexElement( 44, XFG.VertexElementFormat.Vector3, XFG.VertexElementUsage.Binormal, 0)
};
/// <summary>
/// Vertex type size
/// </summary>
public static readonly int Size = sizeof(float) * (3 + 3 + 2 + 3 + 3);
//!
//!!
#endregion S T A T I C P R O P E R T I E S
}//EndStruct
Ah… now even every model group has a vetex perfect bounding box ^_^y
Thanks for the hint Will ^_^y