всё равно будет большая куча, потому что сотни видов данный это уже проблема и ни ООП, ни ФП эту проблему не решают
adamos@AsfodelNext:/media/work/src/cocos2d-x-4.0/cocos/3d$ ls
Android.mk CCBundle3D.h CCPlane.h
CC3DProgramInfo.cpp CCBundleReader.cpp CCRay.cpp
CC3DProgramInfo.h CCBundleReader.h CCRay.h
CCAABB.cpp CCFrustum.cpp CCSkeleton3D.cpp
CCAABB.h CCFrustum.h CCSkeleton3D.h
CCAnimate3D.cpp CCMesh.cpp CCSkybox.cpp
CCAnimate3D.h CCMesh.h CCSkybox.h
CCAnimation3D.cpp CCMeshSkin.cpp CCSprite3D.cpp
CCAnimation3D.h CCMeshSkin.h CCSprite3D.h
CCAnimationCurve.h CCMeshVertexIndexData.cpp CCSprite3DMaterial.cpp
CCAnimationCurve.inl CCMeshVertexIndexData.h CCSprite3DMaterial.h
CCAttachNode.cpp CCMotionStreak3D.cpp CCTerrain.cpp
CCAttachNode.h CCMotionStreak3D.h CCTerrain.h
CCBillBoard.cpp CCOBB.cpp CCVertexAttribBinding.cpp
CCBillBoard.h CCOBB.h CCVertexAttribBinding.h
CCBundle3D.cpp CCObjLoader.cpp CMakeLists.txt
CCBundle3DData.cpp CCObjLoader.h cocos3d.h
CCBundle3DData.h CCPlane.cpp