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; }
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; }
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; }
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; }