Browse Source

halfplane blobtree

master
gjj 5 months ago
parent
commit
dc3a52f51f
  1. 6
      CMakeLists.txt
  2. 3
      algoim/organizer/primitive.hpp
  3. 8
      gjj/primitiveDebug.hpp

6
CMakeLists.txt

@ -18,9 +18,9 @@ endif()
aux_source_directory(algoim algoim_SOURCES)
add_executable(algoim examples/examples_quad_multipoly.cpp ${algoim_SOURCES})
target_include_directories(algoim PRIVATE ${LAPACKE_INCLUDE_DIR})
target_link_libraries(algoim PRIVATE ${LAPACKE_LIB} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
# add_executable(algoim examples/examples_quad_multipoly.cpp ${algoim_SOURCES})
# target_include_directories(algoim PRIVATE ${LAPACKE_INCLUDE_DIR})
# target_link_libraries(algoim PRIVATE ${LAPACKE_LIB} ${LAPACK_LIBRARIES} ${BLAS_LIBRARIES})
add_executable(loader examples/example_loader.cpp ${algoim_SOURCES})
target_include_directories(loader PRIVATE ${LAPACKE_INCLUDE_DIR})

3
algoim/organizer/primitive.hpp

@ -786,6 +786,9 @@ void makeHalfPlane(const HalfPlaneDesc& halfPlaneDesc, VisiblePrimitiveRep& visi
tensor.m(uvector3(1, 0, 0)) = halfPlaneDesc.normal(0);
tensor.m(uvector3(0, 1, 0)) = halfPlaneDesc.normal(1);
tensor.m(uvector3(0, 0, 1)) = halfPlaneDesc.normal(2);
// subBlobTree
visiblePrimitive.subBlobTree.clear();
buildNearBalancedBlobTree(visiblePrimitive.subBlobTree, 1);
}
void makeMesh(const MeshDesc& mesh, VisiblePrimitiveRep& visiblePrimitive)

8
gjj/primitiveDebug.hpp

@ -414,7 +414,7 @@ void testDeCasteljau()
auto phiDesc = std::make_shared<SphereDesc>(SphereDesc(0.8, uvector3(0), 1.));
tensor3 tensor(nullptr, 3), tensor01(nullptr, 3), tensorBernstein(nullptr, 3), transformedTensorBernstein(nullptr, 3);
algoim_spark_alloc(real, tensor, tensor01, tensorBernstein, transformedTensorBernstein);
VisiblePrimitiveRep visiblePrimitiveRep{{tensor}, AABB{}, BlobTree()};
VisiblePrimitiveRep visiblePrimitiveRep{{tensor}, {}, AABB{}, BlobTree()};
makeSphere(*phiDesc, visiblePrimitiveRep);
uvector3 xmax = 1, xmin = -1, range = xmax - xmin;
organizer::detail::powerTransformation(range, xmin, tensor, tensor01);
@ -442,7 +442,7 @@ void testSubDivideWithDeCasteljau()
auto phiDesc = std::make_shared<SphereDesc>(SphereDesc(0.7, uvector3(0.8), 1.));
tensor3 tensor(nullptr, 3), tensor01(nullptr, 3), tensorBernstein(nullptr, 3), transformedTensorBernstein(nullptr, 3);
algoim_spark_alloc(real, tensor, tensor01, tensorBernstein, transformedTensorBernstein);
VisiblePrimitiveRep visiblePrimitiveRep{{tensor}, AABB{}, BlobTree()};
VisiblePrimitiveRep visiblePrimitiveRep{{tensor}, {}, AABB{}, BlobTree()};
makeSphere(*phiDesc, visiblePrimitiveRep);
uvector3 xmin = uvector3(-1., -1.3, -1.6), xmax = uvector3(1.6, 1.6, 2.3), range = xmax - xmin;
organizer::detail::powerTransformation(range, xmin, tensor, tensor01);
@ -558,7 +558,7 @@ void testTensorInverse()
tensor3 tensor(nullptr, 1 + faceCnt);
algoimSparkAllocHeapVector(sparkStackPtrs, tensors);
algoim_spark_alloc(real, tensor);
VisiblePrimitiveRep visiblePrimitiveRep{tensors, AABB(), organizer::BlobTree()};
VisiblePrimitiveRep visiblePrimitiveRep{tensors, {}, AABB(), organizer::BlobTree()};
organizer::detail::compositePower(visiblePrimitiveRep.tensors, 0, 0, 1, tensor);
makeMesh(*phiDesc, visiblePrimitiveRep);
uvector3 testX(0.5, 0.7, 0.2);
@ -576,7 +576,7 @@ void testRotation()
auto desc = std::make_shared<SphereDesc>(SphereDesc(0.1, uvector3(0, 0., 0.)));
tensor3 power(nullptr, 3);
algoim_spark_alloc(real, power);
VisiblePrimitiveRep visiblePrimitiveRep{{power}, AABB{}, BlobTree()};
VisiblePrimitiveRep visiblePrimitiveRep{{power}, {}, AABB{}, BlobTree()};
makeSphere(*desc, visiblePrimitiveRep);
uvector3 testX(0.5, 0.7, 0.2);
real evalX = evalPower(power, testX);

Loading…
Cancel
Save