source typo fixes pt6

This commit is contained in:
Kunda
2017-03-06 15:48:31 -05:00
committed by Yorik van Havre
parent ec5f19ac4b
commit 3017173c9a
44 changed files with 112 additions and 112 deletions

View File

@@ -41,7 +41,7 @@ public:
Item();
~Item() {};
/// Meta descriptons
/// Meta descriptions
App::PropertyMap Meta;
/** @name methods override feature */

View File

@@ -54,7 +54,7 @@ Product::Product() {
// license stuff
ADD_PROPERTY_TYPE(License,("CC BY 3.0"),0,App::Prop_None,"License string of the Item");
ADD_PROPERTY_TYPE(LicenseURL,("http://creativecommons.org/licenses/by/3.0/"),0,App::Prop_None,"URL to the license text/contract");
// color and apperance
// color and appearance
ADD_PROPERTY(Color,(1.0,1.0,1.0,1.0)); // set transparent -> not used
ADD_PROPERTY(Visibility,(true));

View File

@@ -52,7 +52,7 @@ public:
App::PropertyString Id;
/// unique identifier of the Item
App::PropertyUUID Uid;
/// material descriptons
/// material descriptions
App::PropertyMap Material;
/** License string
@@ -60,7 +60,7 @@ public:
* for the Creative Commons license suit.
*/
App::PropertyString License;
/// License descripton/contract URL
/// License description/contract URL
App::PropertyString LicenseURL;
//@}

View File

@@ -87,8 +87,8 @@ typedef boost::adjacency_list_traits<boost::listS, boost::listS, boost::undirect
* @brief A type to be used as identifier for vertices and edges
*
* Vertices and edges need to be identified in a stable(safe/load), unique(over multiple clusters) and
* comparable manner. The bgl vertex and edge discriptors don't fullfill this need as they have a direct
* relation to the graphs storage. Therefore they change value on moving entitiys to diffrent clusters or
* comparable manner. The bgl vertex and edge discriptors don't fulfill this need as they have a direct
* relation to the graphs storage. Therefore they change value on moving entitiys to different clusters or
* clone actions. This class is used to overcome this problem.
**/
typedef int universalID;
@@ -146,7 +146,7 @@ struct IDgen {
};
/**
* @brief Exception thrown from the graph at any occuring error
* @brief Exception thrown from the graph at any occurring error
**/
struct cluster_error : virtual boost::exception {};
@@ -168,7 +168,7 @@ typedef boost::shared_ptr<IDgen> IDpointer;
typedef details::list_traits::vertex_descriptor LocalVertex;
/**
* @brief Indentifier for local edge
* @brief Identifier for local edge
*
* The boost graph library works with identifiers for edges which directly relate to there storage.
* Therefore they can be used only in the relevant cluster, they are local. These are the descriptors
@@ -210,9 +210,9 @@ struct GlobalEdge {
/**
* @brief A graph that can be stacked in a tree-like manner without loosing it connections
* @brief A graph that can be stacked in a tree-like manner without losing it connections
*
* This is basicly a boost adjacency_list with single linked lists 'listS' as storage for vertices and
* This is basically a boost adjacency_list with single linked lists 'listS' as storage for vertices and
* edges. The edges are undirected. This allows to use all boost graph algorithms and provides therefore
* an comprehensive way for analysing and manipulating its content. It further extends the class with the
* possibility to cluster its content and to add properties and objects to all entitys. For more
@@ -405,7 +405,7 @@ public:
void copyInto(boost::shared_ptr<ClusterGraph> into, Functor& functor) const;
/**
* @brief Compare by adress, not by content
* @brief Compare by address, not by content
* @param other the cluster to compare with
* @return bool if this is the same cluster in memory
**/
@@ -413,7 +413,7 @@ public:
bool operator== (const T& other) const;
/**
* @brief Compare by adress, not by content
* @brief Compare by address, not by content
* @param other the cluster to compare with
* @return bool if this is the not same cluster in memory
**/
@@ -421,7 +421,7 @@ public:
bool operator!= (const T& other) const;
/**
* @brief Set diffrent behaviour for changed markers
* @brief Set different behaviour for changed markers
*
* Some methods of the ClusterGraph set it's changed_prop to true. Thats sensible, as they change
* the graph. However, there are situations where you want to use the methods but don't want the change
@@ -462,7 +462,7 @@ public:
* @brief Creates a new subcluster
*
* As clusters can be stacked in a tree like manner, this function can be used to create new
* children. It automaticly adds it to the subcluster list and adds it to the graph. The new
* children. It automatically adds it to the subcluster list and adds it to the graph. The new
* subcluster is fully defined by its object and the vertex descriptor which is it's position
* in the current cluster.
*
@@ -473,7 +473,7 @@ public:
/**
* @brief Returns the parent cluster
*
* In the stacked cluster hirarchy most clusters have a parent whcih can be accessed with this function.
* In the stacked cluster hirarchy most clusters have a parent which can be accessed with this function.
* However, the toplevel cluster dos nothave a parent and a empty shared_ptr is returned.
*
* @return :shared_ptr< ClusterGraph > the parent cluster or empty pointer
@@ -569,12 +569,12 @@ public:
LocalVertex getClusterVertex(boost::shared_ptr<ClusterGraph> g);
/**
* @brief Convinience function for \ref removeCluster
* @brief Convenience function for \ref removeCluster
**/
template<typename Functor>
void removeCluster(boost::shared_ptr<ClusterGraph> g, Functor& f);
/**
* @brief Convinience function for \ref removeCluster
* @brief Convenience function for \ref removeCluster
**/
void removeCluster(boost::shared_ptr<ClusterGraph> g);
/**
@@ -673,7 +673,7 @@ public:
* Adds an edge between vertices which are not nesseccarily in this local cluster and have therefore to be
* identified with global descriptors. The only condition for source and target vertex is that both must be
* in the local cluster or any of its subclusters. If thats not the case, the function will fail. On success
* a new GlobalEdge will be created, but not neccessarily a local one. If the vertices are in different cluster
* a new GlobalEdge will be created, but not necessarily a local one. If the vertices are in different cluster
* which are already connected the global edge will be added to this connecting local edge. Thats the one returned
* in the seqence. Note that it's possible that the local edge belongs to another subcluster and therefore can't be
* used in the local cluster. This case is indicated by the scope return value.
@@ -885,7 +885,7 @@ public:
std::pair< object_iterator<Obj>, object_iterator<Obj> > getObjects(LocalEdge k);
/**
* @brief Applys the functor to each occurence of an object
* @brief Applys the functor to each occurrence of an object
*
* Each valid object of the given type is extractet and passed to the function object. Vertices
* and edges are searched for valid object pointers, it happens in this order. When a recursive
@@ -967,7 +967,7 @@ public:
/**
* @brief Move a vertex to a subcluster
*
* Overloaded convinience function which fetches the local descriptor for the cluster reference and calls
* Overloaded convenience function which fetches the local descriptor for the cluster reference and calls
* the full parameter equivalent. Both cluster and vertex must be in the local cluster.
*
* @param v the LocalVertex to be moved
@@ -979,7 +979,7 @@ public:
/**
* @brief Move a vertex to a subcluster
*
* Overloaded convinience function which fetches the the cluster reference for the local descriptor and calls
* Overloaded convenience function which fetches the the cluster reference for the local descriptor and calls
* the full parameter equivalent. Both cluster and vertex must be in the local cluster.
*
* @param v the LocalVertex to be moved
@@ -1014,7 +1014,7 @@ public:
* stands for all edges which use the moved vertex: global descriptors stay the same, but they are moved to new
* local edges. Note that this function is the inverse of moveToSubcluster, and doing Pseudocode:
* moveToParent(moveToSubcluster(v)) does nothing (only the local descriptor of the moved vertex is
* diffrent afterwards).
* different afterwards).
*
* @param v Local vertex which should be moved to the parents cluster
* @return LocalVertex the local descriptor of the moved vertex, valid in the parent cluster only.
@@ -1036,9 +1036,9 @@ protected:
/* Searches the global vertex in all local vertices of this graph, and returns the local
* one which holds the global vertex. If not successfull the local vertex returned will be
* one which holds the global vertex. If not successful the local vertex returned will be
* invalid and the bool parameter will be false. If recursive = true, all subclusters will
* be seached too, however, if found there the retourned local vertex will be the vertex
* be searched too, however, if found there the returned local vertex will be the vertex
* representing the toplevel cluster holding the global vertex in the initial graph.
* */
std::pair<LocalVertex, bool> getContainingVertex(GlobalVertex id, bool recursive = true);
@@ -1049,7 +1049,7 @@ protected:
fusion::vector<LocalVertex, boost::shared_ptr<ClusterGraph>, bool> getContainingVertexGraph(GlobalVertex id);
/* Searches the global edge in all local edges of this graph, and returns the local
* one which holds the global edge. If not successfull the local edge returned will be
* one which holds the global edge. If not successful the local edge returned will be
* invalid and the bool parameter will be false.
* */
std::pair<LocalEdge, bool> getContainingEdge(GlobalEdge id);

View File

@@ -149,7 +149,7 @@ protected:
virtual void disable() = 0;
virtual placeholder* clone() = 0;
//some runtime type infos are needed, as we cant access the contents with arbitrary functors
//some runtime type infos are needed, as we can't access the contents with arbitrary functors
virtual std::vector<boost::any> getGenericEquations() = 0;
virtual std::vector<boost::any> getGenericConstraints() = 0;
virtual std::vector<const std::type_info*> getEquationTypes() = 0;

View File

@@ -104,7 +104,7 @@ struct constraint_sequence : public seq {
std::cout<<"pretty: "<<__PRETTY_FUNCTION__<<std::endl;
};
//dont allow expression equation stacking: the compile time impact is huge if we want to allow
//don't allow expression equation stacking: the compile time impact is huge if we want to allow
//text parsing
/*
//an equation gets added to this sequence
@@ -176,11 +176,11 @@ struct Equation : public EQ {
};
//assign complete equation (we need to override the operator= in the derived class anyway as it
//is automaticly created by the compiler, so we use a different name here to avoid duplicate
//is automatically created by the compiler, so we use a different name here to avoid duplicate
//operator= warning on msvc)
Derived& assign(const Derived& eq);
//dont allow expression equation stacking: the compile time impact is huge if we want to allow
//don't allow expression equation stacking: the compile time impact is huge if we want to allow
//text parsing
/*
//an equation gets added to this equation

View File

@@ -197,7 +197,7 @@ struct geometry_clone_traits {
namespace details {
// the parameter a geometr needs in a mapped equation system need to be managed seperate, as
// the parameter a geometr needs in a mapped equation system need to be managed separate, as
// we may want to access the same parameter space from different geometries (if they are linked)
// this is done by the parameter space class
template<typename Kernel>

View File

@@ -259,7 +259,7 @@ template< typename edge_prop, typename vertex_prop, typename cluster_prop, typen
template<typename Functor>
void ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::copyInto(boost::shared_ptr<ClusterGraph> into, Functor& functor) const {
//lists does not provide vertex index, so we have to build our own (cant use the internal
//lists does not provide vertex index, so we have to build our own (can't use the internal
//vertex_index_property as we would need to reset the indices and that's not possible in const graph)
typedef std::map<LocalVertex, int> IndexMap;
IndexMap mapIndex;
@@ -272,7 +272,7 @@ void ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::copyInto(boost
//first copy all vertices and edges, but be aware that the objects in the new graph
//are also copys only and point to the old graph. there is a bug in older boost version
//(<1.5 i belive) that breaks vertex_all propety map for bundled properties, so we
//(<1.5 i believe) that breaks vertex_all propety map for bundled properties, so we
//have to create our own copie functors
into->clear();
vertex_copier<Graph> vc(*this, *into);
@@ -581,7 +581,7 @@ ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::addEdge(GlobalVerte
if(!(d1 && d2))
return fusion::make_vector(LocalEdge(), GlobalEdge(), false, false);
//if both vertices are in a subcluster this one must do the job as we cant access the local edge from here
//if both vertices are in a subcluster this one must do the job as we can't access the local edge from here
if(v1 == v2 && isCluster(v1)) {
fusion::vector<LocalEdge, GlobalEdge, bool, bool> res = getVertexCluster(v1)->addEdge(source, target);
fusion::at_c<3> (res) = false;
@@ -1186,7 +1186,7 @@ ClusterGraph<edge_prop, vertex_prop, cluster_prop, objects>::apply_to_bundle(Glo
fusion::vector<LocalVertex, boost::shared_ptr<ClusterGraph>, bool> res = getContainingVertexGraph(k);
if(!fusion::at_c<2> (res)) {
//TODO: Throw (propeties return reference, but cant init a reference temporarily)
//TODO: Throw (propeties return reference, but can't init a reference temporarily)
}
return fusion::at_c<1> (res)->template apply_to_bundle<functor> (k, f);

View File

@@ -79,7 +79,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::Calculater::ope
if(!val.enabled)
return;
//if we are not one of the accessed types we dont need to be recalculated
//if we are not one of the accessed types we don't need to be recalculated
if((access==rotation && val.access!=rotation)
|| (access == general && val.access != general)) {
@@ -110,7 +110,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::Calculater::ope
val.m_residual(0) = val.m_eq.calculate(first->m_parameter, second->m_parameter);
//now see which way we should calculate the gradient (may be diffrent for both geometries)
//now see which way we should calculate the gradient (may be different for both geometries)
if(first->m_parameterCount) {
if(first->getClusterMode()) {
//when the cluster is fixed no maps are set as no parameters exist.
@@ -142,7 +142,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::Calculater::ope
val.m_diff_second_rot(i) = val.m_eq.calculateGradientSecond(first->m_parameter,
second->m_parameter, second->m_diffparam.col(i));
}
//and the translation seperated
//and the translation separated
for(int i=0; i<3; i++) {
val.m_diff_second(i) = val.m_eq.calculateGradientSecond(first->m_parameter,
second->m_parameter, second->m_diffparam.col(i+3));
@@ -250,7 +250,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::LGZ::operator()
//LGZ exists for rotations only
for(int i=0; i<3; i++) {
//only treat if the gradient realy is zero
//only treat if the gradient really is zero
if(Kernel::isSame(val.m_diff_first_rot(i), 0, 1e-7)) {
//to get the approximated second derivative we need the slightly moved geometrie
@@ -277,7 +277,7 @@ void Constraint<Sys, Dim>::holder<ConstraintVector, tag1, tag2>::LGZ::operator()
for(int i=0; i<3; i++) {
//only treat if the gradient realy is zero
//only treat if the gradient really is zero
if(Kernel::isSame(val.m_diff_second_rot(i), 0, 1e-7)) {
//to get the approximated second derivative we need the slightly moved geometrie

View File

@@ -137,7 +137,7 @@ Derived& Equation<Derived, Option, id, a>::assign(const Derived& eq) {
option_copy<options> oc(values);
fusion::for_each(eq.values, oc);
//the assigned eqution can be set back to default for convinience in further usage
//the assigned eqution can be set back to default for convenience in further usage
const_cast<Derived*>(&eq)->setDefault();
return *static_cast<Derived*>(this);
@@ -182,7 +182,7 @@ Equation<Derived, Option, id, a>::operator &(T& val) {
};
*/
//convinience stream functions for debugging
//convenience stream functions for debugging
template <typename charT, typename traits>
struct print_pair {
std::basic_ostream<charT,traits>* stream;

View File

@@ -216,7 +216,7 @@ void Geometry<Kernel, Dim, TagList>::finishCalculation() {
BOOST_LOG_SEV(log, information) << "Finish cluster calculation";
#endif
}
//TODO:non cluster paramter scaling
//TODO:non cluster parameter scaling
else {
m_global = m_parameter;
normalize();

View File

@@ -271,7 +271,7 @@ int Dogleg<Kernel>::solve(typename Kernel::MappedEquationSystem& sys, Functor& r
rescale();
sys.recalculate();
}
//it can also happen that the differentials get too small, however, we cant check for that
//it can also happen that the differentials get too small, however, we can't check for that
else if(iter>1 && (counter>50)) {
rescale();
sys.recalculate();

View File

@@ -46,7 +46,7 @@
namespace mpl = boost::mpl;
namespace fusion = boost::fusion;
/* Preprocessor implementation of emit signal. As we need many overloads with diffrent number of
/* Preprocessor implementation of emit signal. As we need many overloads with different number of
* templated parameters we use boost preprocessor to do the hard repetive work. The definition and
* implementation are definded first as they need to be known before usage
* */
@@ -112,7 +112,7 @@ struct SignalOwner {
/**
* @brief Enable or disable signal emittion
*
* If you want to supress all signals emitted by a object you can do this by calling this function.
* If you want to suppress all signals emitted by a object you can do this by calling this function.
* All calls to emitSignal() will be blocked until signals aer reenabled by using this function with
* onoff = true. Note that signals are not queued, if emitting is disabled all signals are lost.
*
@@ -167,7 +167,7 @@ struct Object : public PropertyOwner<typename details::properties_by_object<type
*
* Returns a new shared_ptr for the Drived type with the same properties as the initial one. If
* the new pointer should be used in a new system the parameter \param newSys needs to be that
* new system. Overload this function if you have datamembers in any derived class wich are not
* new system. Overload this function if you have datamembers in any derived class which are not
* copyconstructable.
* @tparam Prop property type which should be accessed
* @return Prop::type& a reference to the properties actual value.

View File

@@ -51,12 +51,12 @@ namespace dcm {
*
* @brief Concept and handling of properties for generic data storage and type extension.
*
* Properties are a basic building block of the dcm and fullfill two essential tasks: First, build a
* Properties are a basic building block of the dcm and fulfill two essential tasks: First, build a
* infrastructure for storing data in any kind of object and second, make this data universally accessible.
* Universally accessible means in this context, that it shall be possible to retrieve data only by
* knowing some kind of identifier. No data type specific get/set functions or access to class members
* should be needed to access the stored values. The usage of identifiers allows to design interfaces
* for properties in a type interchangable way. Therefore no restrictions are imposed on the interface,
* for properties in a type interchangeable way. Therefore no restrictions are imposed on the interface,
* no matter what or how much data is stored.
*
* The connection of data type and identifier is achieved through the property structs, which all follow
@@ -70,7 +70,7 @@ namespace dcm {
* of all data-holding entitys with new data types, propertys store their own purpose. Thats
* done by extending the property struct with a second typedef which is named kind and which specifies of which
* kind the property is. That means, that this typedef defines when the property shall be used and for which
* context it is designed for. Dependend on the propertys kind, it will be added to diffrent places inside the dcm.
* context it is designed for. Dependend on the propertys kind, it will be added to different places inside the dcm.
* A property of kind @ref vertex_property will added to vertices, a property of kind @ref object_property to all
* objects and so on.
*
@@ -514,7 +514,7 @@ struct empty_prop {
* @brief Add a type to clusters
*
* Allows to specify special types to ClusterGraphs and make a it possibe to distuingish between
* diffrent purposes. The cluster types need to be int.
* different purposes. The cluster types need to be int.
**/
struct type_prop {
//states the type of a cluster

View File

@@ -46,7 +46,7 @@ namespace fusion = boost::fusion;
namespace dcm {
struct No_Identifier {}; //struct to show that no identifier shall be used
struct Unspecified_Identifier {}; //struct to show that it dosen't matter which identifier type is used
struct Unspecified_Identifier {}; //struct to show that it doesn't matter which identifier type is used
struct solved {}; //signal emitted when solving is done
namespace details {
@@ -267,7 +267,7 @@ public:
typename boost::disable_if< boost::is_same< typename mpl::find<typename Kernel::PropertySequence, Option>::type,
typename mpl::end<typename Kernel::PropertySequence>::type >, void >::type setOption(typename Option::type value);
//convinience function
//convenience function
template<typename Option>
typename Option::type& option();

View File

@@ -390,7 +390,7 @@ struct Distance::type< Kernel, tag::line3D, tag::line3D > {
Vector3 c, n1, n2, nxn;
//if the lines are parallel we need to fall back to point-line distance
//to do this efficently we just hold a point-line distance equation and use it instead
//to do this efficiently we just hold a point-line distance equation and use it instead
Distance::type<Kernel, tag::point3D, tag::line3D> pl_eqn;
#ifdef USE_LOGGING
@@ -467,7 +467,7 @@ struct Distance::type< Kernel, tag::line3D, tag::line3D > {
Scalar diff = (-dline1.template head<3>().dot(nxn)+c.dot(nxn_diff))*nxn_n;
diff -= c.dot(nxn)*nxn.dot(nxn_diff)/nxn_n;
//absoulute value requires diffrent differentation for diffrent results
//absoulute value requires different differentation for different results
if(cdn <= 0)
diff *= -1;
@@ -493,7 +493,7 @@ struct Distance::type< Kernel, tag::line3D, tag::line3D > {
Scalar diff = (dline2.template head<3>().dot(nxn)+c.dot(nxn_diff))*nxn_n;
diff -= c.dot(nxn)*nxn.dot(nxn_diff)/nxn_n;
//absoulute value requires diffrent differentation for diffrent results
//absoulute value requires different differentation for different results
if(cdn <= 0)
diff *= -1;

View File

@@ -428,7 +428,7 @@ typename ClusterMath<Sys>::Scalar ClusterMath<Sys>::calculateClusterScale() {
//three points on a line need to be treaded as multiple points
}
//more than 3 points dont have a exakt solution. we search for a midpoint from which all points
//more than 3 points don't have a exact solution. we search for a midpoint from which all points
//are at least MAXFAKTOR*scale away, but not closer than MINFAKTOR*scale
//get the bonding box to get the center of points
@@ -618,7 +618,7 @@ void ClusterMath<Sys>::applyClusterScale(Scalar scale, bool isFixed) {
#ifdef USE_LOGGING
BOOST_LOG(log) << "sstrans scale: "<<ssTrans.scaling().factor();
BOOST_LOG(log) << "finish transform scale: "<<m_transform.scaling().factor();
//we may want to access the scale points for debuging (I mean you, freecad assembly debug!), so
//we may want to access the scale points for debugging (I mean you, freecad assembly debug!), so
//it is important to transform them too to ensure the points are in the same coordinate system
typename Vec::iterator it;
for(it=m_points.begin(); it!=m_points.end(); it++) {

View File

@@ -237,7 +237,7 @@ void SystemSolver<Sys>::solveCluster(boost::shared_ptr<Cluster> cluster, Sys& sy
int params=0, constraints=0;
typename Kernel::number_type scale = 1;
//get the ammount of parameters and constraint equations we need
//get the amount of parameters and constraint equations we need
typedef typename boost::graph_traits<Cluster>::vertex_iterator iter;
std::pair<iter, iter> it = boost::vertices(*cluster);

View File

@@ -140,7 +140,7 @@ struct Module3D {
template<typename T>
void set(const T& geometry, Identifier id);
//somehow the base class set funtion is not found
//somehow the base class set function is not found
template<typename T>
void set(const T& geometry);

View File

@@ -392,7 +392,7 @@ struct ModuleShape3D {
template<typename T>
void set(const T& geometry, ID id);
//somehow the base class set funtion is not found
//somehow the base class set function is not found
template<typename T>
void set(const T& geometry);
@@ -638,7 +638,7 @@ template<typename Derived>
void ModuleShape3D<Typelist, ID>::type<Sys>::Shape3D_base<Derived>::remove(boost::shared_ptr<Geometry3D> g) {
//before we delete this shape by calling the system remove function, we need to remove
//this geometry as this would be deleted again by the system call and we would go into infinit recoursion
//this geometry as this would be deleted again by the system call and we would go into infinite recursion
//get the vector object where the geometry is part of
typename GeometryVector::const_iterator it;
@@ -659,7 +659,7 @@ template<typename Derived>
void ModuleShape3D<Typelist, ID>::type<Sys>::Shape3D_base<Derived>::remove(boost::shared_ptr<Derived> g) {
//before we delete this shape by calling the system remove function, we need to remove
//this geometry as this would be deleted again by the system call and we would go into infinit recoursion
//this geometry as this would be deleted again by the system call and we would go into infinite recursion
//get the vector object where the geometry is part of
typename ShapeVector::const_iterator it;
@@ -680,7 +680,7 @@ template<typename Derived>
void ModuleShape3D<Typelist, ID>::type<Sys>::Shape3D_base<Derived>::remove(boost::shared_ptr<Constraint3D> g) {
//before we delete this shape by calling the system remove function, we need to remove
//this geometry as this would be deleted again by the system call and we would go into infinit recoursion
//this geometry as this would be deleted again by the system call and we would go into infinite recursion
//get the vector object where the geometry is part of
typename ConstraintVector::const_iterator it;

View File

@@ -99,7 +99,7 @@ public:
void draw();
private:
//we need two seperate visual representations, as both constraint parts have different
//we need two separate visual representations, as both constraint parts have different
//placements.
ViewProviderConstraintInternal internal_vp;