Пример #1
0
STDMETHODIMP CVisComplexObj::get_polygonStipple(VARIANT *pVal)
{
    double *data = getPolygonStipple();
    double *newdata = CopyDoubleArrayStruct(data);
	if (newdata)
		for (int i=0; i<32; ++i)
			newdata[i] = ((unsigned int *)data)[i];
    VariantFromDoubleArray(newdata, pVal);
    FreeDoubleArray(newdata);
	return S_OK;
}
Пример #2
0
STDMETHODIMP CVisComplexObj::get_indices(VARIANT *pVal)
{
    double *data = getIndices();
    double *newdata = CopyDoubleArrayStruct(data);
	if (newdata)
	{
		int len = GetLength(data);
		for (int i=0; i<len; ++i)
			newdata[i] = ((unsigned int *)data)[i];
    }
	VariantFromDoubleArray(newdata, pVal);
    FreeDoubleArray(newdata);
	return S_OK;
}
Пример #3
0
STDMETHODIMP CVisComplexObj::put_vertices(VARIANT newVal)
{
	double *data;
	HRESULT result = VariantToDoubleArray(&data, &newVal);
	logToFile((f, "putVertices: %d\n", result));
	if (result) return E_INVALIDARG;
    if (data != NULL)
    {
        if (GetDim(data) != 2) return E_INVALIDARG;
        if (GetLength(data, 0) != 2 && GetLength(data, 0) != 3) return E_INVALIDARG;
    }
	setVertices(data);
    FreeDoubleArray(scrVertices);
    scrVertices = CopyDoubleArrayStruct(getVertices());
    updateScrVertices();
	return S_OK;
}
Пример #4
0
STDMETHODIMP CVComplexShape::SetVertices(VARIANT newVal, long iLogID)
{
	double *data;
	HRESULT result = VariantToDoubleArray(&data, &newVal);
	if (result) return E_INVALIDARG;
    if (data != NULL)
    {
        if (GetDim(data) < 2) return E_INVALIDARG;
        if (GetLength(data, 0) != 2 && GetLength(data, 0) != 3) return E_INVALIDARG;
    }
	setArray(aiVertices,data);
    FreeDoubleArray(scrVertices);
    scrVertices = CopyDoubleArrayStruct(m_getVertices());
    updateScrVertices();

    m_RequestUpdate(iLogID);
	return S_OK;
}