MQMaterial class manages a material.
Basic | |
DeleteThis | Delete this material class |
GetUniqueID | Get an unique ID of this material |
Clone | Duplicate a material |
Attributes | |
GetName | Get a name |
GetSelected | Get a selection status of a material |
GetShader | Get a shader type |
GetVertexColor | Get a type of a vertex color |
GetDoubleSided | Get single or double sided faces. |
GetColor | Get a base color |
GetAlpha | Get a transparency |
GetDiffuse | Get a diffuse value |
GetAmbient | Get an ambient value |
GetAmbientColor | Get an ambient color |
GetEmission | Get an emission value |
GetEmissionColor | Get an emission color |
GetSpecular | Get a specular value |
GetSpecularColor | Get a specular color |
GetPower | Get a power of a specular |
GetReflection | Get a reflection |
GetRefraction | Get a refraction |
SetName | Set a name |
SetSelected | Set a selection status of a material |
SetShader | Set a shader type |
SetVertexColor | Set a type of a vertex color |
SetDoubleSided | Set single or double sided faces |
SetColor | Set a base color |
SetAlpha | Set a transparency |
SetDiffuse | Set a diffuse value |
SetAmbient | Set an ambient value |
SetAmbientColor | Set an ambient color |
SetEmission | Set an emission value |
SetEmissionColor | Set an emission color |
SetSpecular | Set a specular value |
SetSpecularColor | Set a specular color |
SetPower | Set a power of a specular |
SetReflection | Set a reflection |
SetRefraction | Set a refraction |
Mappings | |
GetTextureName | Get a filename of a texture mapping |
GetAlphaName | Get a filename of an alpha mapping |
GetBumpName | Get a filename of a bump mapping |
GetTextureUVChannel | Get an UV channel used by a texture mapping |
GetAlphaUVChannel | Get an UV channel used by an alpha mapping |
GetBumpUVChannel | Get an UV channel used by a bump mapping |
GetMappingType | Get a projection type for a mapping |
GetMappingPosition | Get a projection position for a mapping |
GetMappingScaling | Get a projection scaling for a mapping |
GetMappingAngle | Get a projection angle for a mapping |
GetMappingFilter | Get a filter type for a mapping |
GetWrapModeU | Get a wrapping mode for an U axis of a mapping |
GetWrapModeV | Get a wrapping mode for a V axis of a mapping |
GetWrapTransform | Get the coordinate transformation parameters of the mapping |
SetTextureName | Set a filename of a texture mapping |
SetAlphaName | Set a filename of an alpha mapping |
SetBumpName | Set a filename of a bump mapping |
SetTextureUVChannel | Set an UV channel used by a texture mapping |
SetAlphaUVChannel | Set an UV channel used by an alpha mapping |
SetBumpUVChannel | Set an UV channel used by a bump mapping |
SetMappingType | Set a projection type for a mapping |
SetMappingPosition | Set a projection position for a mapping |
SetMappingScaling | Set a projection scaling for a mapping |
SetMappingAngle | Set a projection angle for a mapping |
SetMappingFilter | Set a filter type for a mapping |
SetWrapModeU | Set a wrapping mode for an U axis of a mapping |
SetWrapModeV | Set a wrapping mode for a V axis of a mapping |
SetWrapTransform | Set the coordinate transformation parameters of the mapping |
Shader parameters | |
GetShaderName | Get a shader's name |
SetShaderName | Set a shader's name |
GetShaderParameterNum | Get a number of shader parameters |
GetShaderParameterName | Get a shader parameter's name |
GetShaderParameterValueType | Get a value type of a shader parameter |
GetShaderParameterArraySize | Get an array size of a shader parameter |
GetShaderParameterBoolValue | Get a bool value in a shader parameter |
GetShaderParameterIntValue | Get an int value in a shader parameter |
GetShaderParameterFloatValue | Get a float value in a shader parameter |
GetShaderParameterColorValue | Get a color in a shader parameter |
SetShaderParameterBoolValue | Set a bool value in a shader parameter |
SetShaderParameterIntValue | Set an int value in a shader parameter |
SetShaderParameterFloatValue | Set a float value in a shader parameter |
SetShaderParameterColorValue | Set a color in a shader parameter |
GetShaderMappingNum | Get a number of shader mappings |
GetShaderMappingName | Get a shader mapping's name |
GetShaderMappingFilename | Get a filename in a shader mapping |
SetShaderMappingFilename | Set a filename in a shader mapping |
GetShaderMappingUVChannel | Get an UV channel used by a shader mapping |
SetShaderMappingUVChannel | Set an UV channel used by a shader mapping |
Shader node | |
GetMainShaderNode | Get a main shader node |
GetSubShaderNodeNum | Get a number of sub shader nodes |
GetSubShaderNodeID | Get a sub shader node's ID |
GetSubShaderNode | Get a sub shader node |
User data | |
AllocUserData | Allocate an user data |
FreeUserData | Free an user data |
GetUserData | Get an user data |
GetUserDataPart | Get an user data partially |
SetUserData | Set an user data |
SetUserDataPart | Set an user data partially |
void MQMaterial::DeleteThis(void);
It deletes a material class.
This function is available for the material registered in a document. You must use MQDocument::DeleteMaterial() to delete a material that is not registered to any documents.
UINT MQMaterial::GetUniqueID(void);
(new in Rev2.40)
It gets an unique ID of the material.
An unique ID is assigned when the material is registered to the document by MQDocument::AddMaterial(). The Clone() function does not duplicate an unique ID.
If you want to save the unique IDs, you have to set a flag in MQStationPlugin::OnSaveDocument().
MQMaterial MQMaterial::Clone(void);
It duplicates this material class.
void MQMaterial::GetName(char *buffer, int size);
void MQMaterial::GetNameW(wchar_t *buffer, int size);
std::string MQMaterial::GetName();
std::wstring MQMaterial::GetNameW();
The function with arguments stores this material's name to 'buffer'. And, the function without argument returns the name as ANSI or Wide string.
BOOL MQMaterial::GetSelected();
(new in Rev3.10)
it gets a selection status of the material.
This selection indicates a status for multiple selections on the material panel. A current material can be obtained by MQDocument::GetCurrentMaterialIndex().
int MQMaterial::GetShader(void);
(new in Rev2.30)
It gets a type of a shader of the material.
int MQMaterial::GetVertexColor(void);
(new in Rev2.30)
It gets a type of a vertex color.
BOOL MQMaterial::GetDoubleSided(void);
(new in Rev3.10)
It gets whether to show single or double sided faces.
MQColor MQMaterial::GetColor(void);
It gets a base color of this material.
float MQMaterial::GetAlpha(void);
float MQMaterial::GetDiffuse(void);
It gets an alpha value (transparency) or a diffuse value.
It returns from 0 to 1.
float MQMaterial::GetAmbient(void);
float MQMaterial::GetEmission(void);
float MQMaterial::GetSpecular(void);
It gets an ambient, an emission or a specular value.
It returns from 0 to 1.
MQColor MQMaterial::GetAmbientColor(void);
MQColor MQMaterial::GetEmissionColor(void);
MQColor MQMaterial::GetSpecularColor(void);
It gets an ambient, an emission or a specular color.
Each value in returned color is from 0 to 1.
(in Rev4.20)
When the attribute has a color, this function returns a monochrome value. It will be still available in the future version, but it is recommended to replace with GetAmbientColor(), GetEmissionColor() and GetSpecularColor() if possible.
float MQMaterial::GetPower(void);
It gets a power of a specular.
It returns from 0 to 100.
float MQMaterial::GetReflection(void);
(new in Rev4.00)
It returns a reflection of the material.
The return value is from 0 to 1.
float MQMaterial::GetRefraction(void);
(new in Rev4.00)
It returns a reflection of the material.
void MQMaterial::GetTextureName(char *buffer, int size);
void MQMaterial::GetTextureNameW(wchar_t *buffer, int size);
void MQMaterial::GetAlphaName(char *buffer, int size);
void MQMaterial::GetAlphaNameW(wchar_t *buffer, int size);
void MQMaterial::GetBumpName(char *buffer, int size);
void MQMaterial::GetBumpNameW(wchar_t *buffer, int size);
std::string MQMaterial::GetTextureName();
std::wstring void MQMaterial::GetTextureNameW();
std::string MQMaterial::GetAlphaName();
std::wstring MQMaterial::GetAlphaNameW();
std::string MQMaterial::GetBumpName();
std::wstring MQMaterial::GetBumpNameW();
It stores a filename of a texture mapping, an alpha mapping and a bump mapping to the 'buffer', or returns it. The 'filename' is usually a relative path, and it is an absolute path in case that the filename is originally set as an absolute path.
UINT MQMaterial::GetTextureUVChannel();
UINT MQMaterial::GetAlphaUVChannel();
UINT MQMaterial::GetBumpUVChannel();
(new in Rev4.85)
It gets an UV channel used by a texture/alpha/bump mapping.
Use MQDocument::GetUVChannelName() to get a name of an UV channel.
You can use MQDocument::FindMappingFile()
to convert a returned relative path to an absolute path.
int MQMaterial::GetMappingType(void);
(new in Rev2.30)
It gets a type of a projection for a mapping.
MQPoint MQMaterial::GetMappingPosition(void);
(new in Rev2.30)
It gets a projection position for a mapping.
MQPoint MQMaterial::GetMappingScaling(void);
(new in Rev2.30)
It gets a projection scaling rate for a mapping.
MQAngle MQMaterial::GetMappingAngle(void);
(new in Rev2.30)
It gets a projection angle for a mapping.
int MQMaterial::GetMappingFilter(void);
(new in Rev4.70)
It gets a type of a filter for a mapping.
int MQMaterial::GetWrapModeU(void);
(new in Rev4.70)
It gets a wrapping mode for an U axis of a mapping.
int MQMaterial::GetWrapModeV(void);
(new in Rev4.70)
It gets a wrapping mode for a V axis of a mapping.
bool MQMaterial::GetWrapTransform(MQCoordinate& scale, float& rotate, MQCoordinate& translate);
(new in Rev4.87)
Gets the coordinate transformation parameters for the mapping.
void MQMaterial::SetName(const char *name);
void MQMaterial::SetName(const wchar_t *name);
It sets the material's name.
void MQMaterial::SetSelected(BOOL flag);
(new in Rev3.10)
it sets a selection status of the material.
This selection indicates a status for multiple selections on the material panel. A current material can be set by MQDocument::SetCurrentMaterialIndex().
void MQMaterial::SetShader(int shader);
(new in Rev2.30)
It sets a type of a shader.
void MQMaterial::SetVertexColor(int value);
(new in Rev2.30)
It sets a type of a vertex color.
void MQMaterial::SetDoubleSided(BOOL value);
(new in Rev3.10)
It sets whether to show single or double sided faces.
void MQMaterial::SetColor(MQColor color);
It sets a base color of the material.
void MQMaterial::SetAlpha(float value);
void MQMaterial::SetDiffuse(float value);
It sets an alpha value (transparency) and a diffuse value.
The 'value' must be from 0 to 1.
void MQMaterial::SetAmbient(float value);
void MQMaterial::SetEmission(float value);
void MQMaterial::SetSpecular(float value);
It sets an ambient value, an emission value and a specular value.
The 'value' must be from 0 to 1.
(in Rev4.20)
All RGB components are filled with 'value'. This function will be still available in the future version, but it is recommended to replace with SetAmbientColor(), SetEmissionColor() and SetSpecularColor() if possible.
void MQMaterial::SetAmbientColor(MQColor color);
void MQMaterial::SetEmissionColor(MQColor color);
void MQMaterial::SetSpecularColor(MQColor color);
It sets an ambient, an emission color or a specular color.
Each component in 'color' must be from 0 to 1.
void MQMaterial::SetPower(float value);
It sets a power of a specular.
The 'value' must be from 0 to 100.
void MQMaterial::SetReflection(float value);
(new in Rev4.00)
It sets a reflection of the material.
The value is from 0 to 1.
void MQMaterial::SetRefraction(float value);
(new in Rev4.00)
It sets a refraction of the material.
void MQMaterial::SetTextureName(const char *name);
void MQMaterial::SetTextureName(const wchar_t *name);
void MQMaterial::SetAlphaName(const char *name);
void MQMaterial::SetAlphaName(const wchar_t *name);
void MQMaterial::SetBumpName(const char *name);
void MQMaterial::SetBumpName(const wchar_t *name);
It assigns a texture mapping, an alpha mapping and a bump mapping with the specified filename. The name can be both a relative path and an absolute path.
void MQMaterial::SetTextureUVChannel(UINT channel);
void MQMaterial::SetAlphaUVChannel(UINT channel);
void MQMaterial::SetBumpUVChannel(UINT channel);
(new in Rev4.85)
It sets an UV channel used by a texture/alpha/bump mapping.
Use MQDocument::GetUVChannelID() to get an UV channel ID.
void MQMaterial::SetMappingType(int type);
(new in Rev2.30)
It sets a type of a projection for a mapping.
void MQMaterial::SetMappingPosition(MQPoint pos);
(new in Rev2.30)
It sets a projection position for a mapping.
void MQMaterial::SetMappingScaling(MQPoint scale);
(new in Rev2.30)
It sets a projection scaling for a mapping.
void MQMaterial::SetMappingAngle(MQAngle angle);
(new in Rev2.30)
It sets a projection angle for a mapping.
void MQMaterial::SetMappingFilter(int type);
(new in Rev4.70)
It sets a type of a filter for a mapping.
void MQMaterial::SetWrapModeU(int type);
(new in Rev4.70)
It sets a wrapping mode for an U axis of a mapping.
void MQMaterial::SetWrapModeV(int type);
(new in Rev4.70)
It sets a wrapping mode for a V axis of a mapping.
void MQMaterial::SetWrapTransform(MQCoordinate scale, float rotate, MQCoordinate translate);
(new in Rev4.87)
Set the coordinate transformation parameters for mapping.
int MQMaterial::GetShaderName(char *buffer, int buffer_size);
std::string MQMaterial::GetShaderName(void);
(new in Rev4.33)
It returns a HLSL shader's name.
bool MQMaterial::SetShaderName(const char *name);
(new in Rev4.33)
It specifies a HLSL shader's name. When an invalid name is specified, false will be returned.
int MQMaterial::GetShaderParameterNum(void);
(new in Rev4.33)
It returns a number of parameters in a shader.
This method is equal to GetMainShaderNode()->GetParameterNum().
int MQMaterial::GetShaderParameterName(int index, char *buffer, int buffer_size);
std::string MQMaterial::GetShaderParameterName(int index);
(new in Rev4.33)
It returns a parameter's name in a shader.
This method is equal to GetMainShaderNode()->GetParameterName().
int MQMaterial::GetShaderParameterValueType(int index);
int MQMaterial::GetShaderParameterValueType(const char *name);
(new in Rev4.33)
It returns a type of values in a shader parameter specified by an index or a name.
This method is equal to GetMainShaderNode()->GetParameterValueType().
int MQMaterial::GetShaderParameterArraySize(int index);
int MQMaterial::GetShaderParameterArraySize(const char *name);
(new in Rev4.33)
It returns a number of an array in a shader parameter specified by an index or a name.
This method is equal to GetMainShaderNode()->GetParameterArraySize().
bool MQMaterial::GetShaderParameterBoolValue(int index, int array_index);
bool MQMaterial::GetShaderParameterBoolValue(const char *name, int array_index);
int MQMaterial::GetShaderParameterIntValue(int index, int array_index);
int MQMaterial::GetShaderParameterIntValue(const char *name, int array_index);
float MQMaterial::GetShaderParameterFloatValue(int index, int array_index);
float MQMaterial::GetShaderParameterFloatValue(const char *name, int array_index);
MQColorRGBA MQMaterial::GetShaderParameterColorValue(int index, int array_index);
MQColorRGBA MQMaterial::GetShaderParameterColorValue(const char *name, int array_index);
(new in Rev4.33)
It returns a value as bool, int, float or color value in a shader parameter specified by an index or a name.
This method is equal to GetMainShaderNode()->GetParameter****Value().
void MQMaterial::SetShaderParameterBoolValue(int index, int array_index, bool value);
void MQMaterial::SetShaderParameterBoolValue(const char *name, int array_index, bool value);
void MQMaterial::SetShaderParameterIntValue(int index, int array_index, int value);
void MQMaterial::SetShaderParameterIntValue(const char *name, int array_index, int value);
void MQMaterial::SetShaderParameterFloatValue(int index, int array_index, float value);
void MQMaterial::SetShaderParameterFloatValue(const char *name, int array_index, float value);
void MQMaterial::SetShaderParameterColorValue(int index, int array_index, MQColorRGBA color);
void MQMaterial::SetShaderParameterColorValue(const char *name, int array_index, MQColorRGBA color);
(new in Rev4.33)
It specifies a value as bool, int, float or color value in a shader parameter specified by an index or a name.
This method is equal to GetMainShaderNode()->SetParameter****Value().
int MQMaterial::GetShaderMappingNum(void);
(new in Rev4.33)
It returns a number of mappings in a shader.
This method is equal to GetMainShaderNode()->GetMappingNum().
int MQMaterial::GetShaderMappingName(int index, char *buffer, int buffer_size);
std::string MQMaterial::GetShaderMappingName(int index);
(new in Rev4.33)
It returns a mapping's name in a shader.
This method is equal to GetMainShaderNode()->GetMappingName().
int MQMaterial::GetShaderMappingFilename(int index, char *buffer, int buffer_size);
int MQMaterial::GetShaderMappingFilename(const char *name, char *buffer, int buffer_size);
int MQMaterial::GetShaderMappingFilename(int index, wchar_t *buffer, int buffer_size);
int MQMaterial::GetShaderMappingFilename(const char *name, wchar_t *buffer, int buffer_size);
std::string MQMaterial::GetShaderMappingFilename(int index);
std::string MQMaterial::GetShaderMappingFilename(const char *name);
std::wstring MQMaterial::GetShaderMappingFilenameW(int index);
std::wstring MQMaterial::GetShaderMappingFilenameW(const char *name);
(new in Rev4.33)
It returns a filename for a mapping in a shader.
This method is equal to GetMainShaderNode()->GetMappingFilename().
void MQMaterial::SetShaderMappingFilename(int index, char *buffer);
void MQMaterial::SetShaderMappingFilename(const char *name, char *buffer);
void MQMaterial::SetShaderMappingFilename(int index, wchar_t *buffer);
void MQMaterial::SetShaderMappingFilename(const char *name, wchar_t *buffer);
(new in Rev4.33)
It specifies a filename for a mapping in a shader.
This method is equal to GetMainShaderNode()->SetMappingFilename().
UINT MQMaterial::GetShaderMappingUVChannel(int index);
UINT MQMaterial::GetShaderMappingUVChannel(const char *name);
(new in Rev4.85)
It returns an UV channel used by a mapping in a shader.
Use MQDocument::GetUVChannelName() to get an UV channel' name from an UV channnel ID.
This method is equal to GetMainShaderNode()->GetMappingUVChannel()と.
void MQMaterial::SetShaderMappingUVChannel(int index, UINT channel);
void MQMaterial::SetShaderMappingUVChannel(const char *name, UINT channel);
(new in Rev4.85)
It specifies an UV channel used by a mapping in a shader.
Use MQDocument::GetUVChannelID() to get an UV channel ID.
This method is equal to GetMainShaderNode()->SetMappingUVChannel().
MQShaderNode MQMaterial::GetMainShaderNode();
(new in Rev4.50)
It returns a main shader node.
A main shader exists when MQMATERIAL_SHADER_HLSL is specified in SetShader() and a valid shader name is specified in SetShaderName(). Otherwise, it returns NULL.
int MQMaterial::GetSubShaderNodeNum();
(new in Rev4.50)
It returns a number of sub shader nodes.
std::string MQMaterial::GetSubShaderNodeID(int index);
(new in Rev4.50)
It returns a shader node's ID.
MQShaderNode MQMaterial::GetSubShaderNode(int index);
MQShaderNode MQMaterial::GetSubShaderNode(const char *id);
(new in Rev4.50)
It returns a sub shader node by an index of an ID.
BOOL MQMaterial::AllocUserData(int userdata_id);
(new in Rev3.10)
It allocates a memory area for an user data in the material.
It uses an user data ID created by MQDocument::CreateMaterialUserData() for 'userdata_id'.
When an user data that is already allocated is specified, this function will return TRUE without performing anything.
Please do not allocate an user data until it is actually needed because it is necessary for a memory.
void MQMaterial::FreeUserData(int userdata_id);
(new in Rev3.10)
It frees a memory area for an user data allocated by MQMaterial::AllocUserData().
Please free it immediately when it is not necessary any longer. A memory will be wasted if it continues allocating carelessly.
BOOL MQMaterial::GetUserData(int userdata_id, void *buffer);
(new in Rev3.10)
It gets an user data for a material.
A size of buffer must be equal to or larger than a size specified in MQDocument::CreateMaterialUserData().
It will return FALSE when you specify an user data that has not been allocated yet. And the buffer are filled with 0 when you specify an user data that has not been set yet by MQMaterial::SetUserData().
BOOL MQMaterial::GetUserDataPart(int userdata_id, int offset, int copy_bytes, void *buffer);
(new in Rev3.10)
It partially gets an user data for a material.
An area begins from the offset is stored to the buffer.
A size of buffer must be equal to or larger than copy_bytes. A whole user data, that is, a number of bytes specified in MQDocument::CreateMaterialUserData() is copied when 0 is specified for copy_bytes.
It will return FALSE when you specify an user data that has not been allocated yet. And the buffer are filled with 0 when you specify an user data that has not been set yet by MQMaterial::SetUserData().
BOOL MQMaterial::SetUserData(int userdata_id, const void *buffer);
(new in Rev3.10)
It sets an user data with the buffer.
A size of buffer must be equal to or larger than a size specified in MQDocument::CreateMaterialUserData().
It will return FALSE when you specify an user data that has not been allocated yet.
BOOL MQMaterial::SetUserDataPart(int userdata_id, int offset, int copy_bytes, const void *buffer);
(new in Rev3.10)
It partially sets an user data for a material.
A data in the buffer is copied to an area begins from the offset.
A size of buffer must be equal to or larger than copy_bytes. A whole user data, that is, a number of bytes specified in MQDocument::CreateMaterialUserData() is copied when 0 is specified for copy_bytes.
It will return FALSE when you specify an user data that has not been allocated yet.