public <V3, M4, C, N, Q> V3 getWrappedBitangent(int vertex,
            AiWrapperProvider<V3, M4, C, N, Q> wrapperProvider) {
        
        if (!hasTangentsAndBitangents()) {
            throw new IllegalStateException("mesh has no bitangents");
        }
        
        checkVertexIndexBounds(vertex);
        
        return wrapperProvider.wrapVector3f(m_bitangents, 
                vertex * 3 * SIZEOF_FLOAT, 3);
    }
public < V3 , M4 , C , N , Q > V3 getWrappedBitangent ( int vertex , AiWrapperProvider < V3 , M4 , C , N , Q > wrapperProvider ) { if ( ! hasTangentsAndBitangents ( ) ) { throw new IllegalStateException ( "mesh has no bitangents" ) ; } checkVertexIndexBounds ( vertex ) ; return wrapperProvider . wrapVector3f ( m_bitangents , vertex * 3 * SIZEOF_FLOAT , 3 ) ; }
Returns the vertex bitangent as 3-dimensional vector.<p>

This method is part of the wrapped API (see {@link AiWrapperProvider}
for details on wrappers).<p>

The built-in behavior is to return a {@link AiVector}.

@param vertex the vertex index
@param wrapperProvider the wrapper provider (used for type inference)
@return the bitangent wrapped as object