ProjPatchOnSurface.hpp
1 /*----------------------------------------------------------------------------*\
2  *
3  * mimmo
4  *
5  * Optimad Engineering S.r.l. ("COMPANY") CONFIDENTIAL
6  * Copyright (c) 2015-2021 Optimad Engineering S.r.l., All Rights Reserved.
7  *
8  * --------------------------------------------------------------------------
9  *
10  * NOTICE: All information contained herein is, and remains the property
11  * of COMPANY. The intellectual and technical concepts contained herein are
12  * proprietary to COMPANY and may be covered by Italian and Foreign Patents,
13  * patents in process, and are protected by trade secret or copyright law.
14  * Dissemination of this information or reproduction of this material is
15  * strictly forbidden unless prior written permission is obtained from
16  * COMPANY. Access to the source code contained herein is hereby forbidden
17  * to anyone except current COMPANY employees, managers or contractors who
18  * have executed Confidentiality and Non-disclosure agreements explicitly
19  * covering such access.
20  *
21  * The copyright notice above does not evidence any actual or intended
22  * publication or disclosure of this source code, which includes information
23  * that is confidential and/or proprietary, and is a trade secret, of
24  * COMPANY. ANY REPRODUCTION, MODIFICATION, DISTRIBUTION, PUBLIC PERFORMANCE,
25  * OR PUBLIC DISPLAY OF OR THROUGH USE OF THIS SOURCE CODE WITHOUT THE
26  * EXPRESS WRITTEN CONSENT OF COMPANY IS STRICTLY PROHIBITED, AND IN
27  * VIOLATION OF APPLICABLE LAWS AND INTERNATIONAL TREATIES. THE RECEIPT OR
28  * POSSESSION OF THIS SOURCE CODE AND/OR RELATED INFORMATION DOES NOT CONVEY
29  * OR IMPLY ANY RIGHTS TO REPRODUCE, DISCLOSE OR DISTRIBUTE ITS CONTENTS, OR
30  * TO MANUFACTURE, USE, OR SELL ANYTHING THAT IT MAY DESCRIBE, IN WHOLE OR
31  * IN PART.
32  *
33 \*----------------------------------------------------------------------------*/
34 #ifndef __PROJPATCHONSURFACE_HPP__
35 #define __PROJPATCHONSURFACE_HPP__
36 
37 #include "ProjPrimitivesOnSurfaces.hpp"
38 
39 namespace mimmo{
40 
100 
101 protected:
105 public:
107  ProjPatchOnSurface(const bitpit::Config::Section & rootXML);
108  virtual ~ProjPatchOnSurface();
109 
110  ProjPatchOnSurface(const ProjPatchOnSurface & other);
112 
113  void clear();
114 
116 
117  bool isWorkingOnTarget();
118  void setWorkingOnTarget(bool);
119 
120  void absorbSectionXML(const bitpit::Config::Section & slotXML, std::string name="");
121  void flushSectionXML(bitpit::Config::Section & slotXML, std::string name="");
122 
123  void buildPorts();
124 
125 protected:
126  void projection();
127  void swap(ProjPatchOnSurface & x) noexcept;
128 
129 private:
130  //disabling inteface methods
131  int getProjElementTargetNCells(){return 0;};
132  void setProjElementTargetNCells(int nC){BITPIT_UNUSED(nC);};
133 
134 };
135 
136 REGISTER_PORT(M_GEOM2, MC_SCALAR, MD_MIMMO_, __PROJPATCHONSURFACE_HPP__)
137 
138 REGISTER(BaseManipulation, ProjPatchOnSurface, "mimmo.ProjPatchOnSurface")
139 
140 };
141 
142 #endif /* __PROJPATCHONSURFACE_HPP__ */
#define M_GEOM2
void flushSectionXML(bitpit::Config::Section &slotXML, std::string name="")
#define MC_SCALAR
void absorbSectionXML(const bitpit::Config::Section &slotXML, std::string name="")
void setPatch(MimmoSharedPointer< MimmoObject > geo)
#define REGISTER_PORT(Name, Container, Datatype, ManipBlock)
Class for projecting 1D/2D primitives on a target 3D surface mesh.
Executable block class capable of projecting a surface patch, 3DCurve or PointCloud on a 3D surface,...
MimmoSharedPointer< MimmoObject > m_cobj
#define MD_MIMMO_
MimmoSharedPointer is a custom implementation of shared pointer.
void swap(ProjPatchOnSurface &x) noexcept
ProjPatchOnSurface & operator=(ProjPatchOnSurface other)
#define REGISTER(Base, Derived, name)
Definition: factory.hpp:206