/////////////////////////////////////////////////////////////////////////////// // Copyright (C) 2002-2025, Open Design Alliance (the "Alliance"). // All rights reserved. // // This software and its documentation and related materials are owned by // the Alliance. The software may only be incorporated into application // programs owned by members of the Alliance, subject to a signed // Membership Agreement and Supplemental Software License Agreement with the // Alliance. The structure and organization of this software are the valuable // trade secrets of the Alliance and its suppliers. The software is also // protected by copyright law and international treaty provisions. Application // programs incorporating this software must include the following statement // with their copyright notices: // // This application incorporates Open Design Alliance software pursuant to a license // agreement with Open Design Alliance. // Open Design Alliance Copyright (C) 2002-2025 by Open Design Alliance. // All rights reserved. // // By use of this software, its documentation or related materials, you // acknowledge and accept the above terms. /////////////////////////////////////////////////////////////////////////////// #include "FMCodeSnippetsStdAfx.h" #include "Modeler/FMMdlBody.h" #include "Modeler/FMMdlIterators.h" using namespace FacetModeler; /** */ Body scaledCube(const DeviationParams& devParams, double edgeLen) { Body cube = Body::box(OdGePoint3d::kOrigin, OdGeVector3d(edgeLen, edgeLen, edgeLen)); OdGeMatrix3d matrix; matrix.setToScaling(.5); cube.transform(matrix); return cube; } /** */ /** */ Body transCube(const DeviationParams& devParams, double edgeLen) { Body cube = Body::box(OdGePoint3d::kOrigin, OdGeVector3d(edgeLen, edgeLen, edgeLen)); OdGeMatrix3d matrix1, matrix2, matrix3, resMatrix; matrix1.setToScaling(.5); matrix2.setToRotation(OdaPI / 6, OdGeVector3d::kXAxis); matrix3.setToTranslation(OdGeVector3d(50.0, 50.0, 50.0)); resMatrix = resMatrix.setToProduct(matrix1, matrix2); resMatrix = resMatrix.setToProduct(resMatrix, matrix3); cube.transform(resMatrix); return cube; } /** */ void _FMDocTransform_func(OdEdCommandContext* pCmdCtx) { DeviationParams devParams; Body cube1 = scaledCube(devParams, 10.); Body cube2 = transCube(devParams, 10.); }