|  | Polygon Crucher SDK - Documentation
    Documentation | 
CMaterialMap handles material texture map. More...
CMaterialMap handles material texture map.
CMaterialMap refers to a bitmap file and optionnaly an alpha bitmap file. This material map has a type given by CMaterialMap::GetType and can be relative to the material diffuse, normap map, transparency...
The material map defines also a projection type, get by CMaterialMap::GetProjection. MAPPROJ_UVW requires a CUVWChannel whereas the other value means that map is projected and the UV values are computed depending on the corresponding projection. 
#include <MaterialMap.h>
 
  
| Public Types | |
| enum | MaterialMapSize { MATERIALMAP_ANY_SIZE = -1 , MATERIALMAP_DEFAULT_SIZE = 0 } | 
| enum | MapChannelFlags { MAPCHANNEL_UNSPECIFIED = (unsigned int) - 1 , MAPCHANNEL_NONE = 0 , MAPCHANNEL_FIRST_CHANNEL_FOUND = 0x01 } | 
| typedef enum CMaterialMap::MaterialMapSize | MaterialMapSize | 
| typedef enum CMaterialMap::MapChannelFlags | MapChannelFlags | 
|  Public Types inherited from C3DKeyframable | |
| enum | TimeStamp { INVALID_TIME = -1 } | 
| enum | KeyframeFlags { KEYFRAME_NONE = 0x00 , KEYFRAME_REPLACE_KEY = 0x01 , KEYFRAME_DONT_EVALUATE = 0x02 } | 
| typedef enum C3DKeyframable::TimeStamp | TimeStamp | 
|  Public Types inherited from C3DAnimatable | |
| enum | FindKey { KEYFRAME_PREV = 0x01 , KEYFRAME_NEXT = 0x02 , KEYFRAME_SAME = 0x04 } | 
| Public Member Functions | |
| virtual void | Serialize (CXArchive &ar) | 
| C3DMaterial * | GetMaterial () const | 
| Return the material to which the map is attached. | |
| C3DScene * | GetScene () const | 
| Return scene to which the map belong to (from C3DMaterials) | |
| CXString | GetBitmapPath (bool alpha, bool fullPath=false) const | 
| fullPath = true ensure that we have no relative path, otherwise the path might be relative to the scene filepath. Alpha = true, means that we return the alpha filename | |
| CXString | AdjustPath (CXString filename, const CXString &newTargetPath=CXString(), bool allowRelative=true) const | 
| Adjust a single filename and make it relative to newTargetPath if provided or the scene path otherwise. | |
| void | AdjustPaths (const CXString &targetPath, bool relativePathAllowed) | 
| Make all internal filenames used by materials relative to provided path. | |
| bool | BitmapFileExists (bool alpha=false) | 
| Check if the bitmap file exists. | |
| fileuint | GetFileSize (bool alpha=false) | 
| The file size of the source bitmap which might differ from the size of the requested bitmap. | |
| bool | HasAlpha () | 
| Check if the map bitmap file has an alpha channel (if MAPPROP_DISABLE_ALPHA not set) | |
| bool | operator== (CMaterialMap &refMap) const | 
| CMaterialMap & | operator= (CMaterialMap &refmap) | 
| CCustomData & | GetCustomData () | 
| const CCustomData & | GetCustomData () const | 
| void | SetFlag (MAP_PROPERTIES flag, bool set) | 
| bool | IsFlagSet (MAP_PROPERTIES flag) const | 
| void | SetType (MapType reftype) | 
| MapType | GetType () const | 
| void | SetProjection (MapProjection reftype) | 
| MapProjection | GetProjection () const | 
| void | SetAlphaFileName (const CXString &filename, const CXString &newReferencePath=CXString()) | 
| operator If newReferencePath is provided, the filename will be make relative to that directory if possible | |
| void | SetFileName (const CXString &filename) | 
| void | SetHPBRotation (unsigned int time, const C3DVector &hpbvector) | 
| void | ResetTransformation () | 
| void | SetScale (unsigned int time, const C3DVector &vect) | 
| void | Scale (unsigned int time, const C3DVector &vect) | 
| void | SetTranslation (unsigned int time, const C3DVector &vect) | 
| void | Translate (unsigned int time, const C3DVector &vect) | 
| void | SetRotation (unsigned int time, const CQuaternion &quat) | 
| void | Rotate (unsigned int time, const CQuaternion &quat) | 
| void | SetTile (unsigned int time, const C3DVector &vect) | 
| void | SetMatrix (unsigned int time, const C4x4Matrix &matrix) | 
| void | SetAxis (MapAxis axis) | 
| void | SetChannelID (ChannelID uvwChannelID, bool front=true, unsigned int channelFlags=MAPCHANNEL_UNSPECIFIED) | 
| Handle the channel id of the material map. The corresponding channel is an UVW_CHANNEL. | |
| ChannelID | GetChannelID (bool front=true, unsigned int *channelFlags=NULL) const | 
| Return the material map channel ID, as set in SetChannelID (the flag MAPPROP_USE_FRONT_CHANNEL_WHEN_BACK_MISSING is not taken into account). Can also return CHANNELID_FIRST_CHANNEL_FOUND. GetUVWChannelID should be used as an helper to get the final channel ID to use for a given object. | |
| void | ChangeChannelID (CHashMap< CChannelInfo, const CChannelInfo &, CChannelInfo > &channelMap) | 
| Remap the materialmap channel ID to the new channelID provided by the map. | |
| void | GetFileName (CXString &filename) const | 
| This returns the raw image filename as it is stored in the map, when reading a file. The path can be relative, absolute... Use GetBitmapPath resolves absolute / relative path and potentially fixe texture location changes. | |
| void | GetAlphaFileName (CXString &filename) const | 
| Same as GetFileName, but for the alpha image. | |
| void | GetScale (unsigned int time, C3DVector &vect) const | 
| void | GetTranslation (unsigned int time, C3DVector &vect) const | 
| void | GetHPBRotation (unsigned int time, C3DVector &vect) const | 
| void | GetRotation (unsigned int time, CQuaternion &vect) const | 
| void | GetMatrix (unsigned int time, C4x4Matrix &vect) const | 
| void | GetTile (unsigned int time, C3DVector &vect) const | 
| MapAxis | GetAxis () const | 
| void | SwapCoordinates (unsigned int swapmode) | 
|  Public Member Functions inherited from C3DKeyframable | |
| int | AddKey (int time, C3DKeyframe *newkey) | 
| Return -1 if fails or keyframe number. | |
| int | AddKey (int time, const C3DKeyframe &newkey) | 
| Return keyframe number. | |
| int | DeleteKey (int time, longuint classid=KEYFRAME_NULLID) | 
| If time = INVALID_TIME, then all key of classid are deleted or all keys are deleted if classid = KEYFRAME_NULLID. | |
| void | DeleteAllKeys () | 
| C3DKeyframe * | CreateKey (int time, longuint classid, unsigned int flags=KEYFRAME_NONE) | 
| Create key of the given classid. flags is one or more KeyframeFlags. | |
| C3DKeyframe * | GetKeyByIndex (unsigned int index, int *time=NULL, longuint classid=KEYFRAME_NULLID) | 
| This invalidate the cache, and can lead to slower computation. | |
| const C3DKeyframe * | GetConstKeyByIndex (unsigned int index, int *time=NULL, longuint classid=KEYFRAME_NULLID) const | 
| int | GetKeyNbr (longuint classid=KEYFRAME_NULLID) const | 
| bool | Evaluate (int time, C3DKeyframe &findkey) const | 
| This method evaluate the key at the given time. Same but slower that the following method that return a pointer. | |
| const C3DKeyframe * | Evaluate (int time, longuint classid) const | 
| This method evaluate the key at the given time. This is the fastest method. The key content cannot be changed. | |
| int | CopyKeys (const C3DKeyframable *srckeys, longuint classid=KEYFRAME_NULLID, CTimeRange range=CTimeRange(0, CTimeRange::MAX_TIME)) | 
| Copy key of the given classid in the given time range. | |
| bool | operator== (const C3DKeyframable &refkeys) const | 
| bool | operator= (const C3DKeyframable &key) | 
| virtual void | OnKeyframesChanged (longuint classID) const | 
| virtual CTimeRange | GetTimeRange (longuint classid=KEYFRAME_NULLID) const | 
| virtual const C3DKeyframe * | GetConstKey (int time, unsigned int findKeyFlag, longuint classid=KEYFRAME_NULLID, int *findKeyTime=NULL) const | 
| Retrieve a keyframe at / before or after the specified time depending on findKeyFlag. | |
|  Public Member Functions inherited from C3DAnimatable | |
| int | GetKeyTime (int time, unsigned int pos, longuint classid=KEYFRAME_NULLID) | 
| Static Public Member Functions | |
| static CXString | GetMapName (MapType type) | 
| Friends | |
| class | C3DMaterial | 
| class | CMaterialMapCache | 
Reimplemented from C3DKeyframable.
| void CMaterialMap::SetChannelID | ( | ChannelID | uvwChannelID, | 
| bool | front = true, | ||
| unsigned int | channelFlags = MAPCHANNEL_UNSPECIFIED | ||
| ) | 
Handle the channel id of the material map. The corresponding channel is an UVW_CHANNEL.
The material might define a back channel ID for double sided face that have both side the same material with different UVs If no back channel is define, then front / back side share the same UV and GetChannelID return frontChannelID for front / back side