function copyAttributeData(src,target,targetOffset=0){const itemSize=target.itemSize;if(src.isInterleavedBufferAttribute||src.array.constructor!==target.array.constructor){// use the component getters and setters if the array data cannot
// be copied directly
const vertexCount=src.count;for(let i=0;i<vertexCount;i++){for(let c=0;c<itemSize;c++){target.setComponent(i+targetOffset,c,src.getComponent(i,c));}}}else{// faster copy approach using typed array set function
target.array.set(src.array,targetOffset*itemSize);}target.needsUpdate=true;}// safely copies array contents to a potentially smaller array
Returns a new frustum with copied values from this instance.

@return {Frustum} A clone of this instance.