Share via


ProgressiveMesh.ProgressiveMesh Constructor ()

Creates a new instance of the ProgressiveMesh class.

Overload List

public ProgressiveMesh(ID3DXPMesh);
public ProgressiveMesh(IntPtr);
public ProgressiveMesh(Mesh, GraphicsStream, AttributeWeights, GraphicsStream, int, MeshFlags);
public ProgressiveMesh(Mesh, GraphicsStream, GraphicsStream, int, MeshFlags);
public ProgressiveMesh(Mesh, int[], AttributeWeights, int, MeshFlags);
public ProgressiveMesh(Mesh, int[], AttributeWeights, float[], int, MeshFlags);
public ProgressiveMesh(Mesh, int[], int, MeshFlags);
public ProgressiveMesh(Mesh, int[], float[], int, MeshFlags);

Remarks

This method generates a mesh in which the level of detail (LOD) can be adjusted from the current value to the param_Int32_minValue vertices or faces.

If the simplification process cannot reduce the mesh to param_Int32_minValue, the call still succeeds, because param_Int32_minValue is a desired minimum, not an absolute minimum.

If param_AttributeWeights_vertexAttributeWeights is omitted, the following values are assigned to the default AttributeWeights structure (C# code shown).

[C#]AttributeWeights aWeights;

aWeights.Position  = 1.0;
aWeights.Boundary =  1.0;
aWeights.Normal   =  1.0;
aWeights.Diffuse  =  0.0;
aWeights.Specular =  0.0;
aWeights.Tex[8]   =  {0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0};

This default structure is what most applications should use because it considers only geometric and normal adjustment. Only in special cases do the other member fields need to be modified.

Exceptions

CannotAttributeSortException

Attribute sort (D3DXMESHOPT_ATTRSORT) is not supported as an optimization technique.

InvalidCallException

The method call is invalid. For example, a method's parameter might contain an invalid value.

OutOfMemoryExceptionLeave Site

Microsoft Direct3D could not allocate sufficient memory to complete the call.