internal static int LoadObjectVector(HObjectVector outVector, IntPtr vectorHandle) { int dimension; EngineAPI.HCkE(EngineAPI.GetObjectVectorDimension(vectorHandle, out dimension)); int length; EngineAPI.HCkE(EngineAPI.GetObjectVectorLength(vectorHandle, out length)); if (dimension == 1) { for (int index = length - 1; index >= 0; --index) { IntPtr key; EngineAPI.HCkE(EngineAPI.GetObjectVectorObject(vectorHandle, index, out key)); outVector[index].O = new HObject(key, false); } } else { for (int index = length - 1; index >= 0; --index) { IntPtr sub_vector_handle; EngineAPI.HCkE(EngineAPI.GetObjectVectorVector(vectorHandle, index, out sub_vector_handle)); EngineAPI.HCkE(EngineAPI.LoadObjectVector(outVector[index], sub_vector_handle)); EngineAPI.HCkE(EngineAPI.DestroyObjectVector(sub_vector_handle)); } } return(2); }
internal static int StoreObjectVector(HObjectVector inVector, IntPtr vectorHandle) { int dimension = inVector.Dimension; int length = inVector.Length; if (dimension == 1) { for (int index = length - 1; index >= 0; --index) { EngineAPI.HCkE(EngineAPI.SetObjectVectorObject(vectorHandle, index, inVector[index].O.Key)); } } else { for (int index = length - 1; index >= 0; --index) { IntPtr vectorHandle1; EngineAPI.HCkE(EngineAPI.CreateObjectVector(inVector[index], out vectorHandle1)); EngineAPI.HCkE(EngineAPI.SetObjectVectorVector(vectorHandle, index, vectorHandle1)); EngineAPI.HCkE(EngineAPI.DestroyObjectVector(vectorHandle1)); } } GC.KeepAlive((object)inVector); return(2); }
/// <summary>Sets input control parameter for procedure call</summary> public void SetInputIconicParamVector(string name, HObjectVector vector) { IntPtr vectorHandle; HDevProcedureCall.HCkE(EngineAPI.CreateObjectVector(vector, out vectorHandle)); HDevProcedureCall.HCkE(EngineAPI.SetInputIconicParamVector(this.call, name, vectorHandle)); GC.KeepAlive((object)this); HDevProcedureCall.HCkE(EngineAPI.DestroyObjectVector(vectorHandle)); }
/// <summary>Create copy of object vector</summary> public HObjectVector(HObjectVector vector) : base((HVector)vector) { if (this.mDimension > 0) { return; } this.mObject = vector.mObject.CopyObj(1, -1); }
/// <summary>Sets the value of a global iconic variable</summary> public void SetGlobalIconicVarVector(string name, HObjectVector vector) { IntPtr vectorHandle; HDevEngine.HCkE(EngineAPI.CreateObjectVector(vector, out vectorHandle)); HDevEngine.HCkE(EngineAPI.SetGlobalIconicVarVector(this.engine, name, vectorHandle)); GC.KeepAlive((object)this); HDevEngine.HCkE(EngineAPI.DestroyObjectVector(vectorHandle)); }
internal static int CreateObjectVector(HObjectVector inVector, out IntPtr vectorHandle) { IntPtr vector_handle; EngineAPI.HCkE(EngineAPI.CreateObjectVector(inVector.Dimension, out vector_handle)); EngineAPI.HCkE(EngineAPI.StoreObjectVector(inVector, vector_handle)); GC.KeepAlive((object)inVector); vectorHandle = vector_handle; return(2); }
internal static HObjectVector GetAndDestroyObjectVector(IntPtr vectorHandle) { int dimension; EngineAPI.HCkE(EngineAPI.GetObjectVectorDimension(vectorHandle, out dimension)); HObjectVector outVector = new HObjectVector(dimension); EngineAPI.HCkE(EngineAPI.LoadObjectVector(outVector, vectorHandle)); EngineAPI.HCkE(EngineAPI.DestroyObjectVector(vectorHandle)); return(outVector); }
public HObjectVector Insert(int index, HObjectVector vector, bool clone) { this.InsertImpl(index, (HVector)vector, clone); return(this); }
/// <summary> /// Create empty vector of specified dimension. In case of dimension /// 0 a leaf vector for an empty object is created /// </summary> public HObjectVector(int dimension) : base(dimension) { this.mObject = dimension <= 0 ? HObjectVector.GenEmptyObj() : (HObject)null; }
/// <summary>Insert vector at specified index</summary> public HObjectVector Insert(int index, HObjectVector vector) { this.InsertImpl(index, (HVector)vector, true); return(this); }
public HObjectVector Append(HObjectVector vector, bool clone) { return((HObjectVector)this.ConcatImpl((HVector)vector, true, clone)); }
public HObjectVector Concat(HObjectVector vector, bool clone) { return((HObjectVector)this.ConcatImpl((HVector)vector, false, clone)); }
/// <summary>Concatenate two vectors, creating new vector</summary> public HObjectVector Concat(HObjectVector vector) { return((HObjectVector)this.ConcatImpl((HVector)vector, false, true)); }
/// <summary> /// Returns true if vector has same dimension, lengths, and elements /// </summary> public bool VectorEqual(HObjectVector vector) { return(this.EqualsImpl((HVector)vector)); }