added everything
This commit is contained in:
92
lib/maxsdk70/include/IProjection_WorkingModelInfo.h
Executable file
92
lib/maxsdk70/include/IProjection_WorkingModelInfo.h
Executable file
@@ -0,0 +1,92 @@
|
||||
/*==============================================================================
|
||||
|
||||
file: IProjection_WorkingModelInfo.h
|
||||
|
||||
author: Daniel Levesque
|
||||
|
||||
created: 19 May 2004
|
||||
|
||||
description:
|
||||
|
||||
Definition of an interface that gives access to basic shade context information
|
||||
on the working model of a bake projection.
|
||||
|
||||
This interface is to be used along with the bake projection feature, which
|
||||
allows using high-res objects when baking maps for low-res objects.
|
||||
|
||||
modified:
|
||||
|
||||
|
||||
<EFBFBD> 2004 Autodesk
|
||||
==============================================================================*/
|
||||
|
||||
#ifndef _IPROJECTION_WORKINGMODELINFO_H_
|
||||
#define _IPROJECTION_WORKINGMODELINFO_H_
|
||||
|
||||
#include <BaseInterface.h>
|
||||
|
||||
class RenderInstance;
|
||||
class Point3;
|
||||
|
||||
//==============================================================================
|
||||
// class IProjection_WorkingModelInfo
|
||||
//
|
||||
// This interface provides access to some shade context information for the
|
||||
// working model.
|
||||
//
|
||||
// When a bake projection is done, all the information in the shade context
|
||||
// is overriden to represent the intersection point on the projected object.
|
||||
// If a bake render element still needs access to shade context information
|
||||
// from the original object (the working model), then this interface may be used.
|
||||
//
|
||||
// This interface should be queried from the shade context through GetInterface().
|
||||
// A NULL pointer will be returned if no projection was done.
|
||||
//==============================================================================
|
||||
class IProjection_WorkingModelInfo : public BaseInterface {
|
||||
|
||||
public:
|
||||
|
||||
// Query this interface on a shade context
|
||||
static IProjection_WorkingModelInfo* GetInterface(ShadeContext& shadeContext);
|
||||
|
||||
// Returns the render instance of the working model
|
||||
virtual RenderInstance* GetRenderInstance() = 0;
|
||||
// Returns the face number of that hit face
|
||||
virtual int GetFaceNumber() = 0;
|
||||
// Returns the original interpolated normal
|
||||
virtual const Point3& GetOrigNormal() = 0;
|
||||
// Returns the barycentric coordinates of the hit point
|
||||
virtual void GetBarycentricCoords(Point3& bary) = 0;
|
||||
virtual void GetBarycentricCoords(float& b0, float& b1, float& b2) = 0;
|
||||
// Returns whether the backface was hit
|
||||
virtual BOOL GetBackFace() = 0;
|
||||
// Returns the point that was hit, in camera space
|
||||
virtual const Point3& GetPoint() = 0;
|
||||
// Get the view direction, in camera space (equivalent to SContext::V())
|
||||
virtual const Point3& GetViewDir() = 0;
|
||||
// Get the original view direction, in camera space (equivalent to SContext::OrigView())
|
||||
virtual const Point3& GetOriginalViewDir() = 0;
|
||||
// Get the material number of the hit face
|
||||
virtual int GetMaterialNumber() = 0;
|
||||
// Get the bump basis vectors of the hit face (equivalent to SContext::BumpBasisVectors())
|
||||
virtual void BumpBasisVectors(Point3 dP[2], int axis, int channel) = 0;
|
||||
// Get the map basis vectors (aks bump basis vectors) interpolated at the current position
|
||||
virtual void TangentBasisVectors(Point3 dP[2], int mapChannel) = 0;
|
||||
|
||||
// -- from BaseInterface
|
||||
virtual Interface_ID GetID();
|
||||
};
|
||||
|
||||
#define IPROJECTION_WORKINGMODELINFO_INTERFACE_ID Interface_ID(0x79907259, 0xbf05948)
|
||||
|
||||
inline IProjection_WorkingModelInfo* IProjection_WorkingModelInfo::GetInterface(ShadeContext& shadeContext) {
|
||||
|
||||
return static_cast<IProjection_WorkingModelInfo*>(shadeContext.GetInterface(IPROJECTION_WORKINGMODELINFO_INTERFACE_ID));
|
||||
}
|
||||
|
||||
inline Interface_ID IProjection_WorkingModelInfo::GetID() {
|
||||
|
||||
return IPROJECTION_WORKINGMODELINFO_INTERFACE_ID;
|
||||
}
|
||||
|
||||
#endif
|
||||
Reference in New Issue
Block a user