[gs-longan](../README.md) / Material

# Class: Material

## Hierarchy

- `AssetBase`

  ↳ **`Material`**

## Implements

- `IShaderProperties`
- `IShaderStates`

## Table of contents

### Constructors

- [constructor](Material.md#constructor)

### Properties

- [\_worldModellingMatrix](Material.md#_worldmodellingmatrix)
- [fina](Material.md#fina)
- [init](Material.md#init)
- [originJson](Material.md#originjson)
- [typeName](Material.md#typename)

### Accessors

- [defines](Material.md#defines)
- [fillMode](Material.md#fillmode)
- [name](Material.md#name)
- [pointSize](Material.md#pointsize)
- [pointsCloud](Material.md#pointscloud)
- [properties](Material.md#properties)
- [shader](Material.md#shader)
- [viewer](Material.md#viewer)
- [visible](Material.md#visible)

### Methods

- [\_executeFina](Material.md#_executefina)
- [\_executeInit](Material.md#_executeinit)
- [bindForSubMesh](Material.md#bindforsubmesh)
- [deserialize](Material.md#deserialize)
- [draw](Material.md#draw)
- [serialize](Material.md#serialize)
- [setShader](Material.md#setshader)

## Constructors

### constructor

• **new Material**(`viewer?`): [`Material`](Material.md)

#### Parameters

| Name | Type |
| :------ | :------ |
| `viewer?` | [`Viewer`](Viewer.md) |

#### Returns

[`Material`](Material.md)

#### Overrides

AssetBase.constructor

## Properties

### \_worldModellingMatrix

• **\_worldModellingMatrix**: `Float32Array` = `null`

主要用于构件的位置变换.

___

### fina

• **fina**: [`List`](List.md)\<(`viewer`: [`Viewer`](Viewer.md), `args`: [`EventArgs`](EventArgs.md)) => `void`\>

#### Inherited from

AssetBase.fina

___

### init

• **init**: [`List`](List.md)\<(`viewer`: [`Viewer`](Viewer.md), `args`: [`EventArgs`](EventArgs.md)) => `void`\>

#### Inherited from

AssetBase.init

___

### originJson

• **originJson**: `any` = `null`

___

### typeName

• **typeName**: `string` = `"Longan::Assets::Material"`

#### Overrides

AssetBase.typeName

## Accessors

### defines

• `get` **defines**(): [`MaterialDefines`](MaterialDefines.md)

#### Returns

[`MaterialDefines`](MaterialDefines.md)

• `set` **defines**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | [`MaterialDefines`](MaterialDefines.md) |

#### Returns

`void`

___

### fillMode

• `get` **fillMode**(): `number`

获取材质的几何填充方式。

#### Returns

`number`

• `set` **fillMode**(`value`): `void`

获取材质的几何填充方式。

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `number` |

#### Returns

`void`

___

### name

• `get` **name**(): `string`

#### Returns

`string`

#### Inherited from

AssetBase.name

• `set` **name**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `string` |

#### Returns

`void`

#### Inherited from

AssetBase.name

___

### pointSize

• `get` **pointSize**(): `number`

获取绘制点的大小。

#### Returns

`number`

• `set` **pointSize**(`value`): `void`

设置绘制点的大小。

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `number` |

#### Returns

`void`

___

### pointsCloud

• `get` **pointsCloud**(): `boolean`

获取是否为点云绘制模式。

#### Returns

`boolean`

• `set` **pointsCloud**(`value`): `void`

设置是否为点云绘制模式。

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `boolean` |

#### Returns

`void`

___

### properties

• `get` **properties**(): `PropertyCollection`

#### Returns

`PropertyCollection`

#### Implementation of

IShaderProperties.properties

• `set` **properties**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `PropertyCollection` |

#### Returns

`void`

#### Implementation of

IShaderProperties.properties

___

### shader

• `get` **shader**(): [`Shader`](Shader.md)

#### Returns

[`Shader`](Shader.md)

• `set` **shader**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | [`Shader`](Shader.md) |

#### Returns

`void`

___

### viewer

• `get` **viewer**(): [`Viewer`](Viewer.md)

#### Returns

[`Viewer`](Viewer.md)

#### Implementation of

IShaderProperties.viewer

#### Inherited from

AssetBase.viewer

___

### visible

• `get` **visible**(): `boolean`

#### Returns

`boolean`

• `set` **visible**(`value`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `value` | `boolean` |

#### Returns

`void`

## Methods

### \_executeFina

▸ **_executeFina**(`viewer`, `args`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `viewer` | [`Viewer`](Viewer.md) |
| `args` | [`EventArgs`](EventArgs.md) |

#### Returns

`void`

#### Inherited from

AssetBase.\_executeFina

___

### \_executeInit

▸ **_executeInit**(`viewer`, `args`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `viewer` | [`Viewer`](Viewer.md) |
| `args` | [`EventArgs`](EventArgs.md) |

#### Returns

`void`

#### Inherited from

AssetBase.\_executeInit

___

### bindForSubMesh

▸ **bindForSubMesh**(`mesh`, `submesh`): `void`

Binds the submesh data.

#### Parameters

| Name | Type | Description |
| :------ | :------ | :------ |
| `mesh` | [`Mesh`](../interfaces/Mesh.md) | The BJS mesh. |
| `submesh` | [`SubMesh`](SubMesh.md) | - |

#### Returns

`void`

___

### deserialize

▸ **deserialize**(`obj`, `pm?`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `obj` | `any` |
| `pm?` | [`IPersistenceManager`](../interfaces/Interface.IPersistenceManager.md) |

#### Returns

`void`

#### Overrides

AssetBase.deserialize

___

### draw

▸ **draw**(`geometry`, `submesh`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `geometry` | [`Geometry`](../interfaces/Interface.Geometry.md) |
| `submesh` | [`SubMesh`](SubMesh.md) |

#### Returns

`void`

___

### serialize

▸ **serialize**(`pm?`): `any`

#### Parameters

| Name | Type |
| :------ | :------ |
| `pm?` | [`IPersistenceManager`](../interfaces/Interface.IPersistenceManager.md) |

#### Returns

`any`

#### Overrides

AssetBase.serialize

___

### setShader

▸ **setShader**(`shader`): `void`

#### Parameters

| Name | Type |
| :------ | :------ |
| `shader` | [`Shader`](Shader.md) |

#### Returns

`void`
